ダブルループを作成する方法を知りたいと思います。 私のコードでは、私は1000サンプル(各サンプルサイズ:25)の重回帰を行います 次に、null仮説を持つ1000個のサンプルのそれぞれのt検定値を作成します:sample = 'real' 。私は、モンテカルロシミュレーション(ベータ3 =回帰の第3の係数の値)から「実際の」ベータ3の値を知っています。 しかし、コードはこれまでのところ動作します。 サンプルサイズ50,100,250,500,1000(各サンプルサイズは1000回)について同じ手順を実行したいと思います。 ループでこの目標を実現する方法を教えてください。あなたが私を助けることができれば嬉しいです!ここに私のコードを見ることができます:ダブルループの作成方法は?
n <- 25
B <- 1000
beta3 <- 1.01901 #'real' beta3 value
t.test.values <- rep(NA, B)
for(rep in 1:B){
##data generation
d1 <- runif(25, 0, 1)
d2 <- rnorm(25, 0, 1)
d3 <- rchisq(25, 1, ncp=0)
x1 <- (1 + d1)
x2 <- (3 * d1 + 0.6 * d2)
x3 <- (2 * d1 + 0.6 * d3)
exi <- rchisq(25, 5, ncp = 0)
y <- beta0 + beta1*x1 + beta2*x2 + beta3*x3 + exi
## estimation
lmobj <- lm(y ~ x1 + x2 + x3)
## extraction
betaestim <- coefficients(lmobj)[2:4]
betavar <- vcov(lmobj)[2:4, 2:4]
## t-test
t.test.values[rep] <- (betaestim[3] - beta3)/sqrt((betavar)[9])
}
_4ヶ月_ 06JUL16に元の質問を投稿し、@bouncyballの回答を受け入れた後、あなたは17NOV16で大量にQを変更しました。変更を元に戻し、新しい質問を提出してください。 – Uwe