首先读取数据,可以是.csv文件或.xlsx文件,最好是前者。
> bike <- read.csv("day.csv")
利用散点图来确认一下:
> library(ggplot2)
> qplot(atemp,cnt,data=bike)
\\第1个参数是横轴,第2个参数是纵轴,第3个参数是数据框
接下来,在geom_smooth()函数中,可以把method参数指定为"lm"(线性模型)来绘制直线
> qplot(atemp,cnt,data=bike) + geom_smooth(method="lm")
实际上,计算回归直线时会使用lm()函数
> bike.lm <- lm(cnt~atemp,data=bike)
> bike.lm
Call:
lm(formula=cnt~atemp,data=bike)
Cofficients:
(Intercept) atemp
945.8 7501.8
\\第1个参数为“目标变量~解释变量”的形式,data参数中指定了数据框。显示后,会输出回归直线的截距(Intercept)和斜率(atemp)。
如果想看详细结果可以执行:
> summary(bike.lm)
Call:
lm(formula=cnt~atemp,data=bike)
Residulas:
Min 1Q Median 3Q Max
-4598.7 -1091.6 -91.8 1072.0 4383.7
Coefficients:
Estimate Std.Error t value Pr(>|t|)
(Intercept) 945.8 171.3 5.522 4.67e-08 ***
atemp 7501.8 341.5 21.965 <2e-16 ***
---
Signif.codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error : 1504 on 729 degrees of freedom
Multiple R-squared : 0.3982 , Adjusted R-squared : 0.3974
F-statistic: 482.5 on a and 729 DF , p-value : <2.2e-16
(1)Residuals按照最小值、第1四分位数、中位数、第3四分位数、最大值的顺序依次显示观测值yi和预测值yi^之差,即残差的分布。
(2)Coefficients是回归之下的回归系数(斜率、截距)相关信息。
(3)Estimate(估计值)是从数据中计算得到的系数的值。
(4)Std.Error是被称为标准误差的估计值的标准差。真正的回归系数会以60%~70%的准确度落在Estimate±Std.Error的范围内。
(5)Pr(>|t|)用于回归系数的检验,被称为P值,该值表示回归系数不为0有多大程度的可信度。如果该值小,则不为0的可信度会增加。小于0.05时显示一个*,小于0.01时显示**,依次类推。
(6)Multiple R-squared被称为决定系数,表示回归直线能在多大程度上解释观测值的偏差。决定系数在0到1之间取值,越接近1,回归直线的拟合程度越高,完全变成1时,则所有的观测值都排列在直线上。
(7)F-statistic是表示该回归直线整体的有效性的检验结果的值,在回归系数不为0时会有变大的趋势。如果p-value很小,将否定没有必要使用回归模型的假设。
\\要使用回归分析得到的回归系数计算预测值和残差,可以执行:
> bike.res <- residuals(bike.lm)
> bike.pred <- predict(bike.lm)
\\此外,我们再来绘制一下残差的散点图,以及预测值和观测值的散点图。
> qplot(bike.res,binwidth=500,color=I("black"),fill=I("grey"))
> qplot(bike.pred,bike$cnt)+geom_smooth(method="lm")
3969

被折叠的 条评论
为什么被折叠?



