一、先看源代码
key <- c(1,2,3,4,5)
value <- c(14,36,45,70,105)
data1=data.frame(x=key,y=value) #数据存入数据框
lm.data1<-lm(y ~ x,data=data1)
summary(lm.data1) #输出拟合后信息
输入结果如下:
Call:
lm(formula = y ~ x, data = data1)
Residuals:
1 2 3 4 5
3.2 3.6 -9.0 -5.6 7.8
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -10.800 8.486 -1.273 0.29281
x 21.600 2.559 8.442 0.00349 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 8.091 on 3 degrees of freedom
Multiple R-squared: 0.9596, Adjusted R-squared: 0.9461
F-statistic: 71.27 on 1 and 3 DF, p-value: 0.003488
二、逐行分析
1~2行:当创建模型后,系统会使用call来调用lm创建模型。
从第四行开始是Summary的输出
4~5行是残差分析,也就是5个观测值与预测值之间的差额。
比如第一个根据y = a + bx = -10.8 + 21.6 * 1 = 10.8
y1预测=10.8 ;y1观测 = 14 :y1残差 = 14 - 10.8 = 3.2
以此类推
8~11行是各种系数(Coefficients)
Estimate:估值
Std. Error:标准误差
t value:T值
Pr(>|t|) :P值
Intercept:表示截距
x:影响因子/解释变量,也就是本示例中的key
Estimate的列:包含由普通最小二乘法计算出来的估计回归系数。
Std. Error的列:估计的回归系数的标准误差。
P值估计系数不显著的可能性,有较大P值的变量是可以从模型中移除的候选变量。
t 统计量和P值:从理论上说,如果一个变量的系数是0,那么该变量是无意义的,它对模型毫无贡献。然而,这里显示的系数只是估计,它们不会正好为0。因此,我们不禁会问:从统计的角度而言,真正的系数为0的可能性有多大?这是t统计量和P值的目的,在汇总中被标记为t value和Pr(>|t|)。
其中,我们可以直接通过P值与我们预设的0.05进行比较,来判定对应的解释变量的显著性,我们检验的原假设是:该系数显著为0;若P<0.05,则拒绝原假设,即对应的变量显著不为0。
13行:Signif. codes符号表示含义。星号越多越好。
表示跟α的比较值,***表示小于0.001;**表示小于0.01;*表示小于0.1
16行:Multiple R-squared和Adjusted R-squared
这两个值,即R平方,常称之为“拟合优度”和“修正的拟合优度”,指回归方程对样本的拟合程度几何,这里我们可以看到,修正的拟合优度=0.9461,表示拟合程度良好,这个值当然是越高越好。当然,提升拟合优度的方法很多,当达到某个程度,我们也就认为差不多了。具体还有很复杂的判定内容,有兴趣的可以看看:http://baike.baidu.com/view/657906.htm
17行:F-statistic
F-statistic,是我们常说的F统计量,也成为F检验,常常用于判断方程整体的显著性检验,其值越大越显著;其P值为p-value: < 2.2e-16,显然是<0.05的,可以认为方程在P=0.05的水平上还是通过显著性检验的。
三、简单总结
- T检验:检验解释变量的显著性;越大越好(本例中,T检验 = 8.442)(这句话理解的对吗???)
- R-squared:查看方程拟合程度;越大越好,极限为1(本例中,调整后R方 = 0.9461)
- F检验:是检验方程整体显著性;越小越好,极限为0(本例中,F-statistic = 0.003488)
- 如果是一元线性回归方程,T检验的值和F检验的检验效果是一样的,对应的值也是相同的。(0.00349 = 0.003488)