我必须在R中编写模拟研究。我有X1,...,X15~N(0,1)解释变量和Y~N(2 + 2 * X1 + 0.8 * X2-1.2 * X15, 1)我需要模拟n = 100的值并重复它为iter = 100次。然后,对于创建的每个线性模型,我必须使用stepAIC找到最佳子模型。我写了以下代码:
set.seed(1234)
sim <- function (sd) {
n <- 100
p <- 15
X <- matrix(rnorm(n * p), n, p)
mu <- 2 + 2*X[,1] + 0.8*X[,2] - 1.2*X[,15]
Y <- matrix(rnorm(100, mu,sd))
sim<-data.frame(Y,X)
r<- lm(Y~., data = sim)
library(MASS)
r0<-lm(Y~1, data=sim)
res<-stepAIC(r0,k=2,direction="forward", scope=list(lower=~1, upper=r))
return(res$coefficients)
}
sim(1)
oo1<- lapply(1:100, sim)
由于我是一名缺乏经验的R用户,我认为我做错了什么。这项研究的目的是找出是否在100个最佳子模型中(根据stepAIC),有模型可以找到真实的模型(Y = 2 + 2 * X1 + 0.8 * X2-1.2 * X15 + e) 。如果我做了错误的事情,我可以得到一些帮助/提示,以便正确实施吗?
答案 0 :(得分:0)
以下是您的代码的工作版本:
1 => 1
2 => 2
3 => 3
4 => 4
5 => 5
6 => 6
7 => 7
8 => 8
9 => 9
10 => 10
11 => 11
12 => 1
13 => 2
14 => 3