2017-05-21 5 views
0

私はXで、X15、 0.8 * X2-1.2 * X15,1)、n = 100の値をシミュレートし、iter = 100回繰り返す必要があります。次に、作成された各線形モデルに対して、stepAICを使用して最良のサブモデルを見つけなければなりません。私は次のコードを書いた: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

はあなたのコードの作業バージョンです:

library(MASS) 
set.seed(1234) 

sim <- function(sd, n, p) { 
    X <- matrix(rnorm(n * p), n, p) 
    mu <- 2 + 2*X[,1] + 0.8*X[,2] - 1.2*X[,p] 
    Y <- rnorm(n, mean=mu, sd=rep(sd,n)) 
    df <- data.frame(Y,X) 
    r <- lm(Y~., data=df) 
    r0 <- lm(Y~1, data=df) 
    res <- stepAIC(r0, k=2, direction="forward", 
      scope=list(lower=~1, upper=r), trace=F) 
    return(res$coefficients) 
} 

n <- 100 
p <- 15 
sim(1, n, p) 
oo1 <- lapply(1:100, sim, n, p) 
関連する問題