gpt4 book ai didi

r - OLS 回归因变量的测量误差?

转载 作者:行者123 更新时间:2023-12-05 03:18:08 27 4
gpt4 key购买 nike

我正在计算蒙特卡罗回归,以分析因变量中的测量误差对 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左右统一添加error .相反,您正在做的是平均添加 0.5y (即 me0.5 为中心),因此,您的估计截距的平均值是真实值 ( 0.2 ) 加上该平均值,导致估计截距分布的众数在 0.2+0.5 附近。 , 或 0.7 .

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

尝试:

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

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

关于r - OLS 回归因变量的测量误差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73841451/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com