R语言summary.lm信息进一步挖掘

本文详细探讨了R语言中使用lm函数进行线性回归分析的过程,包括残差分析、回归系数、R方、显著性检验和样本量确定等关键步骤。通过具体例子展示了如何计算RSS、SS回、TSS以及协方差矩阵中的元素。同时,解释了p值的含义和Adjusted R-squared与R-squared的区别。
摘要由CSDN通过智能技术生成

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
  1. 计算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
  1. 计算 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=1R2RSS, SS=TSSRSS

> 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,无须再平方)

  1. 样本量 n 的确定

    由总体的显著性检验,其检验统计量形式为 F ( p − 1 , n − p ) F_{(p-1,n-p)} F(p1,np),因此
    n=(p-1)+(n-p)+1=1+270+1=272

  2. 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.91434.0910.7296)2

> (10.7296/(5.914*34.09))^2
[1] 0.002832373
  1. p值与 ⋆ \star
    在这里插入图片描述

    p值的直观理解是拒绝原假设的 α \alpha α的下确界,p值越小,我们的 α \alpha α越可能大过p值,这时候我们就要拒绝原假设,但我们对回归方程的原假设都是某某为0,拒绝它即认为某某回归系数显著的不为0.
    最后一行的p值是对整体显著性检验的p值,p值很小我们认为该回归方程通过整体性检验。

  2. 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值