登录
首页精彩阅读R语言做简单的一元线性回归
R语言做简单的一元线性回归
2017-02-15
收藏

R语言做简单的一元线性回归

简单举一个例子

某商业银行2002年主要业务数据

如何将这些数据添加到R中?
> y<- c(0.9,1.1,4.8,3.2,7.8,2.7,1.6,12.5,1.0,2.6,0.3,4.0,0.8,3.5,10.2,3.0,0.2,0.4,1.0,6.8,11.6,1.6,1.2,7.2,3.2)
> x<-c(67.3,111.3,173.0,80.8,199.7,16.2,107.4,185.4,96.1,72.8,64.2,132.2,58.6,174.6,263.5,79.3,14.8,73.5,24.7,139.4,368.2,95.7,109.6,196.2,102.2)
> dfrm<- data.frame(y,x)
> summary(lm(y~ x))
y表示不良贷款,x表示各项贷款余额,单位:亿元

展示输出结果

Call:
lm(formula = y ~ x)

Residuals:
    Min      1Q  Median      3Q     Max
-2.2882 -1.5233 -0.1802  0.8935  6.3038

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.82952    0.72304  -1.147    0.263    
x            0.03789    0.00503   7.534 1.18e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.98 on 23 degrees of freedom
Multiple R-squared:  0.7116,    Adjusted R-squared:  0.6991
F-statistic: 56.75 on 1 and 23 DF,  p-value: 1.183e-07

我们来看一下,这些结果都是表示什么以及是怎么算出来的

Residuals:
    Min      1Q  Median      3Q     Max
-2.2882 -1.5233 -0.1802  0.8935  6.3038

表示的是残差统计量

那么什么是残差,也许有些人不太懂
用一个公式表示,也许你就懂了

ei=yi−yˆi
也就是说这25个残差中,最小的是-2.2882,最大的是6.3038,中位数及四分位数就是上面的几个了,那么有没有办法显示全部的残差咧

summary(lm(y~ x))$resid

输出的结果

        1          2          3          4          5          6
-0.8207932 -2.2881603 -0.9262637  0.9676283  1.0619476  2.9156264
         7          8          9         10         11         12
-1.6403709  6.3038419 -1.8121607  0.6707859 -1.3033196 -0.1801596
        13         14         15         16         17         18
-0.5911092 -2.2868952  1.0442653  0.8244704  0.4686790 -1.5557403
        19         20         21         22         23         24
 0.8935214  2.3469985 -1.5233105 -1.1970028 -2.1237393  0.5945791
        25
 0.1566816
我们继续分析

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.82952    0.72304  -1.147    0.263    
x            0.03789    0.00503   7.534 1.18e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

这里面的是一堆系数,都是什么咧?
标记为Estimate的列包含由最小二乘法计算得出的估计回归系数

yˆ=0.03789x−0.82952
标记为Std.Error的列表示估计的回归系数(截距和斜率)的标准误差
标记为t value 的列是t统计量,他们的计算方法就是回归系数除以回归系数的标准误差
标记为Pr( >| t | )的列是t统计量计算出来的值(应该是吧)

Residual standard error: 1.98 on 23 degrees of freedom
Multiple R-squared:  0.7116,    Adjusted R-squared:  0.6991
F-statistic: 56.75 on 1 and 23 DF,  p-value: 1.183e-07

第一句是表示残差的标准误差,23是自由度
第二句是表示判定系数,实际意义就是在不良贷款取值的变差中,有71.16%可以由不良贷款与贷款余额之间的线性关系来解释。后一个值是调整后的判断系数,计算公式为

R2a=1−(1−R2)(n−1n−k−1)

这里由于是一元线性回归,残差平方和的自由度为n-2(即k=1)
第三句表示的是F(1,23)分布的统计量是56.75。

数据分析咨询请扫描二维码

客服在线
立即咨询