ggplot之间“回归”的不同斜率(通过起诉geom_smooth(method =“lm”)和lm -function

时间:2018-03-01 12:20:27

标签: r

我正在使用数据集(Panel)。

使用此数据集,我会执行以下操作:

1)

ols <-lm(CapNormChange ~ Policychanges, data=Panel) summary(ols) 

plot(Panel$CapNormChange, Panel$Policychanges, 
      pch=19, xlab="CapNormChange", ylab="Policychanges") 
abline(lm(Panel$CapNormChange~Panel$Policychanges),lwd=3, col="blue")

和2)

p2 <- ggplot(data = Panel, mapping = aes(x = CapNormChange, y = Policychanges)) 
p2 + geom_point(alpha=0.3) + geom_smooth(method = "lm", se=F, color="orange")

我认为第一个图的胚芽平滑线和斜线的斜率是相同的,并且也对应于OLS回归中因变量(Policychanges)的参数。

但事实并非如此!相反,ggplot具有更高的拦截(我为不同的数据集测试了它)。我真的不明白这个,请问有人给点建议吗?

1 个答案:

答案 0 :(得分:2)

在1)中,您使用CapNormChange作为y变量,使用Policychanges作为x变量。它总是y ~ x。这与您在plot命令中执行的操作不匹配。在2)你反过来做。

OLS回归假设只有y值具有相关的错误。因此,交换x和y会改变拟合。如果您想从两者获得相同的结果,则需要orthogonal regression