如何使用stepAIC进行模拟研究

时间:2017-05-21 20:18:49

标签: r simulation linear-regression

我必须在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) 。如果我做了错误的事情,我可以得到一些帮助/提示,​​以便正确实施吗?

1 个答案:

答案 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