1

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

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

我很难理解发生了什么。如果我使用 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

这是输出: 所需的图形输出

4

1 回答 1

2

当您进行回归分析时,如果值为 0,则值Intercept会显示值有多大。如果t 值为 37.8846,则表示如果值为 O ,则值为 37.8846。yxcylmpg Intercepmpgcyl

ggplot2绘图回归线仅显示cyl4 到 6 的值(因为没有其他值)。

如果你计算你的值的预测值mpgcyl4将得到 26.38142。这就是你在情节上看到的价值。

predict(lm.car,data.frame(cyl=4))
       1 
26.38142 
于 2013-03-14T18:40:04.877 回答