提问人:george1994 提问时间:9/25/2022 最后编辑:george1994 更新时间:9/25/2022 访问量:69
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
答:
3赞
langtang
9/25/2022
#1
您需要在 周围均匀添加错误。相反,您正在做的是平均添加(即 以 ) 为中心,因此,估计截距的平均值是真值 () 加上此平均值,从而产生模数在 或 附近为估计截距的分布。y
0.5
y
me
0.5
0.2
0.2+0.5
0.7
相反,我认为您希望将测量误差定义为以零为中心。
尝试:
me = runif(1000, -.3, .3)
此外,应添加到您的原始帖子中。graph<-data.frame(b1=b1,b2=b2)
评论
Error in ggplot(data = graph) : object 'graph' not found