使用R plot()和qplot()的线性回归不同

时间:2013-07-07 07:42:36

标签: r ggplot2 linear-regression

如果我使用plot()在我的数据上使用lm(x~y)创建散点图,则会在500处截获,当我在qplot的相同数据上观察到stat_smooth(method=lm)时,截距在y轴上大约为1000。虽然斜率看起来与简单plot()上的斜率相似。我希望这是有道理的。我无法理解为什么不同。完整功能如下。任何帮助将不胜感激。

plot()

plot (my[[12]],my[[8]])
abline(lm(my[[12]]~my[[8]]),col="red")

qplot()

myGG<-qplot(x=my[[12]],y=my[[8]])                        # pretty scatterplot
myGG<-myGG + stat_smooth(fullrange=TRUE,method="lm")

1 个答案:

答案 0 :(得分:2)

在我看来,回归中的变量并不对应。在lm中,变量my[[12]] 依赖,在qplot变体中,独立变量。使用lm(my[[8]]~my[[12]]应该使其等效。

使用plotlm时混淆变量是一个常见的错误。请注意,要使轴正确,变量的顺序会在lmplot相比发生变化。

x <- rnorm(100)
y <- rnorm(100)
plot(x,y)
abline(lm(y ~x))

为了减少混淆,您可以使用plot中的公式界面。

plot(y ~ x)
abline(lm(y ~x))