如何使用嵌套for循环使用截距和系数估计值填充列的值?

如何使用嵌套for循环使用截距和系数估计值填充列的值?,r,matrix,linear-regression,nested-loops,R,Matrix,Linear Regression,Nested Loops,我正在做一个抽样问题。我将使用5个不同的剩余标准误差值对误差项进行采样,在每个点上,我生成一个Y变量,然后使用生成的Y变量运行回归。已经给出了要使用的X值。假设X的给定值为 X = c(15,20,22,34,25) 要得到错误,我将使用公式 error =rchisq(n = 1, df = 25) 然后,为了生成Y,我使用这个方程 Y = b0 + b1*X + error b0=0.525,b1=1.2625 然后,我使用得到的Y,在X上运行Y的回归,然后保存从该回归中获得的截距和

我正在做一个抽样问题。我将使用5个不同的剩余标准误差值对误差项进行采样,在每个点上,我生成一个Y变量,然后使用生成的Y变量运行回归。已经给出了要使用的X值。假设X的给定值为

X = c(15,20,22,34,25)
要得到错误,我将使用公式

error =rchisq(n = 1, df = 25)
然后,为了生成Y,我使用这个方程

Y = b0 + b1*X + error 
b0=0.525,b1=1.2625

然后,我使用得到的Y,在X上运行Y的回归,然后保存从该回归中获得的截距和斜率。因此,对于通过使用不同的df值(比如15、20、25、30和35)进行5次采样而获得的每个误差值,我将运行100次模拟,以获得b0和b1的值,我希望将其保存在矩阵中,每列为通过使用从每个df获得的给定误差运行100次模拟而获得的每个系数

这就是我所做的。我首先创建了两个矩阵,每个矩阵分别保存截距和斜率的值,如下面的代码所示

dfs = seq(15,35,5)

dat = rep(NA,nsample*length(dfs))
beta0_sim  = matrix(data=dat, nrow=nsample, ncol=length(dfs))
beta1_sim  = matrix(data=dat, nrow=nsample, ncol=length(dfs))
然后我编写了这段代码以获得每个错误项(代码段中的Sig2),然后针对每个错误运行100次回归(n.sim=模拟次数=100),并将结果保存在矩阵中,如下所示

for (i in dfs){
  sig2 <- rchisq(n = 1, df = i)
  for (j in 1:n.sim){
    error <- rnorm(n = 1,mean = 0,sd = sqrt(sig2))
    Y = beta0 + beta1*X + error
    model <- lm(Y ~ X)
    beta0_sim[j,i] <- model$coefficients[1]
    beta1_sim[j,i] <- model$coefficients[2]
  }
}
for(dfs中的i){

sig2您的问题是dfs中的
i
意味着
i
将取值
[1]15 20 25 30 35
,因此
beta0_sim[j,i]
Error in `[<-`(`*tmp*`, j, i, value = model$coefficients[1]) : 
  subscript out of bounds