繁体   English   中英

OLS回归的因变量中的测量误差?

[英]Measurement error in the dependent variable of an OLS regression?

我正在计算蒙特卡罗回归以分析因变量中的测量误差对 OLS 估计的影响。 这方面的理论很清楚。 常数和斜率系数的估计平均应该是正确的。 但是,我的 R 代码会导致有偏差的常数但没有偏差的斜率系数。 我怀疑我在将测量误差添加到数据生成过程中时犯了一个错误?

b1=c()
b2=c()
x1 = rnorm(1000,mean=2,sd=1)
me=runif(1000,0,1)
graph<-data.frame(b1=b1,b2=b2)
for (i in 1:500){
  e = rnorm(1000,mean=0,sd=1)
  y=0.2+0.5*x1+e #true value
  y_o=y+me #observed value 
  c=lm(I(y_o)~I(x1)) 
  b1[i]=data.frame(c$coefficients)[1,1]
  b2[i]=data.frame(c$coefficients)[2,1]
}

plot5ab = ggplot(data=graph) +
  stat_density(aes(x=b1,fill="black"),colour="black",adjust=1.5, alpha=.05)+
  geom_histogram(aes(x=b1,y=..density..),fill = "black", alpha = 0.2,bins =50) +
  stat_density(aes(x=b2,fill="red"),adjust=1.5, alpha=.05,colour="black")+ 
  geom_histogram(aes(x=b2,y=..density..),fill = "red", alpha = 0.2,bins =50) +
  geom_vline(xintercept=0.2, linetype="dashed", color = "blue")+
  geom_vline(xintercept=0.5, linetype="dashed", color = "blue")+
  scale_fill_identity(name = NULL, 
                      labels = c(black = "Alpha", red = "Beta"
                      ),
                      guide = "legend")+
  theme_bw()+
  theme(legend.position = "bottom",
        axis.text.x     = element_text(angle = 90)) +
  labs(title = "Density of estimated parameters", subtitle = "R=500; Dashed blue lines = true parameters",
       y     = "Density",
       x     = "x")
plot5ab

您需要在y周围均匀地添加错误。 相反,您所做的是平均将0.5添加到y (即me0.5为中心),因此,您估计的截距的平均值是真值( 0.2 )加上这个平均值,导致估计截距的分布与模式在0.2+0.50.7左右。

相反,我相信您希望将测量误差定义为以零为中心。

尝试:

me = runif(1000, -.3, .3)

此外,应该将graph<-data.frame(b1=b1,b2=b2)添加到您的原始帖子中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM