【发布时间】:2016-05-06 16:00:37
【问题描述】:
目标说明:
有人可以帮我解决这个问题吗: 我试图对线性回归 beta0hat、beta1hat、R2、R2Adjusted 和 P 值的估计量进行蒙特卡罗研究,使用正常的随机变量改变样本大小(30,60,100)和方差(0.5,0.75,1)错误。 首先,我创建了与研究相关的每个长度的 3 个样本,我不想随机化。
X1 = sample(0:20,30,T)
X2 = sample(0:20,60,T)
X3 = sample(0:20,100,T)
出于主要目的,我在女巫中创建了这个蒙特卡洛函数,我试图将每个估计量的结果保存在一些适当的向量中,以生成直方图和 Y 轴上的 P 值相对于 R2 的图X 轴来验证估计器的行为,我更改变量并将正常随机设置为错误。
函数的参数: n = 样本大小,sig = 变化的方差,b0 = 真实 betahat0,b1 = 真实 betahat1,X = X 轴的样本
Monte.Carlo = function(n, sig, b0, b1,X){
Y = b0 + b1 * X + rnorm(n,0,sig)
smr = summary(lm(Y~X))
return(smr)
}
为了生成向量作为我在这项研究中的数据来分析估计器的行为,我使用了这样的函数复制:
object.1 = replicate(1000,Monte.Carlo(30,0.5,1.4,0.8,1,X1))
beta0_s0.5_n30 <-list(c(object.1[,1:1000][[4]] [1]))
beta1_s0.5_n30<- object.1[[4]] [2]
R2_s0.5_n30 <- object.1[[8]]
R2A_s0.5_n30 <- object.1[[9]]
valorP_s0.5_n30 <- object.1[[4]] [8]
但是在上面这几代人中我无法弄清楚。
object.1 存储了 1000 个回归摘要。
如何访问回归摘要的每个估计器的 1000 个输出,然后将其存储在适当的向量中,如列表列表,如上面命令行中的意图?
我们的目的是将其应用于几个对象,如下例所示,我已将方差更改为 0.75 并将样本大小更改为 60:
beta0_s0.75_n60 <- replicate(1000,Monte.Carlo(60,0.75,1.4,0.8,X2))
beta1_s0.75_n60<- replicate(1000,Monte.Carlo(60,0.75,1.4,0.8,X2))
R2_s0.75_n60 <- replicate(1000,Monte.Carlo(60,0.75,1.4,0.8,X2))
R2A_s0.75_n60 <- replicate(1000,Monte.Carlo(60,0.75,1.4,0.8,X2))
valorP_s0.75_n60 <- replicate(1000,Monte.Carlo(60,0.75,1.4,0.8,X2))
最后是生成 120 个图表,如本例所示,以比较结果:
hist(R2A_s0.5_n30,breaks=11)
hist(R2A_s0.75_n30,breaks=11)
hist(R2A_s1_n30,breaks=11)
hist(R2A_s0.5_n60,breaks=11)
hist(R2A_s0.75_n60,breaks=11)
hist(R2A_s1_n60,breaks=11)
hist(R2A_s0.5_n100,breaks=11)
hist(R2A_s0.75_n100,breaks=11)
hist(R2A_s1_n100,breaks=11)
如果有人可以提供帮助,我将不胜感激,我尝试了很多解决方案并查看了一些论坛,但根本没有任何区别。
对不起,我的英语语法错误。
非常感谢!
【问题讨论】:
-
您的代码不起作用@Drope。
object.1 = replicate(1000,Monte.Carlo(30,0.5,1.4,0.8,1,X1))行在Monte.Carlo函数中有六个参数,而原始函数只有五个。
标签: r list output regression montecarlo