我希望从数据集中抽取1,000个随机样本,大小为50,并且显示每个模拟样本的E(xi^ui)= 0。我的代码在下面,我一直在尝试调试一段时间,但我无法弄清楚什么是错的。使用for循环中的随机样本
该数据集被称为“数据集”,它有两列:'y'和'x'。我想在x上回归y,得到残差,并表明它们与x不相关。
lm.fit <- NA
resid.lm.fit <- NA
correlation <- NA
for (i in 1:1000){
samp1 <- sample(dataset, size=50, replace=T)
lm.fit[i] <- lm(y ~ x, data=samp1)
resid.lm.fit[i]<-resid(lm.fit[i])
correlation[i] <- cor.test(resid.lm.fit[i],samp1$x)
}
我得到的错误是:
Error in resid.lm.fit[i] <- resid(lm.fit[i]) :
replacement has length zero
In addition: Warning message:
In lm.fit[i] <- lm(y ~ x, data = samp1) :
number of items to replace is not a multiple of replacement length
谢谢,这似乎工作!不过,现在我想知道如何处理关联列表中的1,000个结果。我想表明x和u对于每个模拟样本都没有关联,但是我怎样才能知道没有单独通过1,000个测试中的每一个呢? – hemingway2014 2014-10-19 22:47:54
你可以用'sapply(相关性,函数(x){x $ estimate})来提取相关性估计值' – nrussell 2014-10-19 23:57:05
是的,但我实际上需要提取p值小于0.05的那些。重点是要表明所有p值都大于此值(即,每个模拟样本中的相关性测试未能拒绝相关性大于0的零)。 – hemingway2014 2014-10-20 00:08:09