0
我想知道如何創建一個雙循環。 在我的代碼中,我對1000個樣本進行了多元迴歸(每個樣本大小:25) 然後,我爲1000個樣本中的每個樣本創建了t檢驗值,其中爲null假設:來自sample ='real'beta3值的beta3值。我知道蒙特卡洛模擬中的'真實'beta3值(beta 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])
}
_16月16日發佈您的原始問題並接受@bouncyball的答案後的四個月,您在17NOV16上大量更改了Q.請回復您的更改並提交一個新問題。 – Uwe