R语言summary.lm信息进一步挖掘
废话不多说,直接上例子
(由于summary出来的结果是有截断的,以下比较会有一定误差,要精确的话可以自己从model里面取出相应系数)
> data("faithful")
> y=faithful$waiting
> x=faithful$eruptions
> model=lm(y~x,faithful)
> summary(model)
Call:
lm(formula = y ~ x, data = faithful)
Residuals:
Min 1Q Median 3Q Max
-12.0796 -4.4831 0.2122 3.9246 15.9719
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 33.4744 1.1549 28.98 <2e-16 ***
x 10.7296 0.3148 34.09 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 5.914 on 270 degrees of freedom
Multiple R-squared: 0.8115, Adjusted R-squared: 0.8108
F-statistic: 1162 on 1 and 270 DF, p-value: < 2.2e-16
- 计算RSS
实际上Residual standard error 中的5.914为 σ ^ \hat\sigma σ^(注意没有平方)
由 RSS=(n-p) σ ^ 2 \hat\sigma^2 σ^2 知,RSS=(5.914)^2*270=·9443.387
> y_pre=predict(model)
> sum((y-y_pre)^2)
[1] 9443.387
> (5.914)^2*270
[1] 9443.357
-
计算 SS 回 \small{回} 回 和 TSS (SS 总 \small{总} 总)
由 R 2 = S S 回 T S S R^2=\frac{SS\small{回}}{TSS} R2=TSSSS回 和 T S S = S S 回 + R S S TSS=SS\small{回}+RSS TSS=SS回+RSS 得,
T S S = R S S 1 − R 2 , S S 回 = T S S − R S S TSS =\frac{RSS}{1-R^2},~SS\small{回}=TSS-RSS TSS=1−R2RSS, SS回=TSS−RSS
> sum((y-mean(y))^2)
[1] 50087.12
> RSS=sum((y-y_pre)^2)
> RSS/(1-0.8115)
[1] 50097.54
(注意不要写成 1-0.8115^2,本身就是 R 2 R^2 R2,无须再平方)
-
样本量 n 的确定
由总体的显著性检验,其检验统计量形式为 F ( p − 1 , n − p ) F_{(p-1,n-p)} F(p−1,n−p),因此
n=(p-1)+(n-p)+1=1+270+1=272 -
c i i : ( X T X ) − 1 = ( c i j ) p × p c_{ii}:(X^TX)^{-1}=(c_{ij})_{p\times p} cii:(XTX)−1=(cij)p×p 的计算
可以利用回归系数的标准误或 t值计算
我们有 C o v ( β ^ ) = σ ^ 2 ( X T X ) − 1 Cov(\hat\beta)=\hat\sigma^2(X^TX)^{-1} Cov(β^)=σ^2(XTX)−1,而 σ ^ \hat\sigma σ^我们是知道的,假如我们算 c 22 c_{22} c22
就有: c 22 = 0.314 8 2 / ( 5.91 4 2 ) c_{22}=0.3148^2/(5.914^2) c22=0.31482/(5.9142)
> x_temp=c(1:length(x))*0+1
> x_1=matrix(c(x_temp,x),ncol=2)#构造第一列全为1的X阵
> solve(t(x_1)%*%x_1)
[,1] [,2]
[1,] 0.038133338 -0.009879303
[2,] -0.009879303 0.002832545
> 0.3148^2/(5.914^2)
[1] 0.002833393
或者利用t值: t i = β ^ i c i i σ ^ t_i=\frac{\hat\beta_i}{\sqrt{c_{ii}}\hat\sigma} ti=ciiσ^β^i, c 22 = ( β ^ 2 σ ^ t i ) 2 = ( 10.7296 5.914 ∗ 34.09 ) 2 c_{22}=(\frac{\hat\beta_2}{\hat\sigma t_i})^2=(\frac{10.7296}{5.914*34.09})^2 c22=(σ^tiβ^2)2=(5.914∗34.0910.7296)2
> (10.7296/(5.914*34.09))^2
[1] 0.002832373
-
p值与 ⋆ \star ⋆
p值的直观理解是拒绝原假设的 α \alpha α的下确界,p值越小,我们的 α \alpha α越可能大过p值,这时候我们就要拒绝原假设,但我们对回归方程的原假设都是某某为0,拒绝它即认为某某回归系数显著的不为0.
最后一行的p值是对整体显著性检验的p值,p值很小我们认为该回归方程通过整体性检验。 -
Adjusted R-squared 会比 R-squared 略小
> TSS=sum((y-mean(y))^2)
> y_pre=predict.lm(model)
> RSS=sum((y-y_pre)^2)
> > 1-(RSS/270)/(TSS/271)
[1] 0.8107625