scatterplot ggplot2中的斜率和截距问题

时间:2013-03-14 14:57:01

标签: r ggplot2 lm

我正在使用mtcars数据集(mpg ~ cyl)绘制回归线(线性)。我使用mpgcyl运行了一个简单的线性模型并执行了摘要。

线性模型摘要的截距与图形表示不匹配。

我很难理解发生了什么。如果我使用R的基本绘图函数绘制散点图,我会得到与ggplot2相同的结果。我没有成功地改变了y轴刻度限制(0,40)。

这是我的代码

data(mtcars)
library(ggplot2)
p <- ggplot(mtcars, aes(x=cyl, y=mpg)) + geom_point(shape=1) # create graph
p + geom_smooth(method = lm, se=FALSE) # add line
lm.car <- lm(mpg ~ cyl) # create linear model
summary(lm.car) # summary

http://imageshack.us/photo/my-images/213/scatterplot.png/

这是线性模型输出

> summary(lm.car)

Call:
lm(formula = mpg ~ cyl)

Residuals:
    Min      1Q  Median      3Q     Max 
-4.9814 -2.1185  0.2217  1.0717  7.5186 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  37.8846     2.0738   18.27  < 2e-16

cyl          -2.8758     0.3224   -8.92 6.11e-10 

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 3.206 on 30 degrees of freedom
Multiple R-squared: 0.7262, Adjusted R-squared: 0.7171 
F-statistic: 79.56 on 1 and 30 DF,  p-value: 6.113e-10 

根据我使用的以下建议

data(mtcars)
library(ggplot2)
p <- ggplot(mtcars, aes(x=cyl, y=mpg)) + geom_point(shape=1) +
    xlim(0, 10)# create graph
p + geom_smooth(method = lm, se=FALSE) # add line

这是输出: desired graphical output

1 个答案:

答案 0 :(得分:2)

当您进行回归分析时,Intercept值会显示y值为0时x值的大小。cylmpg { {1}} t值37.8846表示如果Intercep值为O,则mpg将为37.8846。

cyl绘图回归线上,只显示ggplot2的值从4到6(因为没有其他值)。

如果您计算cyl mpg cyl的预测值,您将获得26.38142。这是你在剧情中看到的价值。

4