R語言簡單(一元)線性迴歸分析
簡單舉一個例子
某商業銀行2002年主要業務數據
分行編號 | 不良貸款(億元) | 各項貸款餘額(億元) |
---|---|---|
1 | 0.9 | 67.3 |
2 | 1.1 | 111.3 |
3 | 4.8 | 173.0 |
4 | 3.2 | 80.8 |
5 | 7.8 | 199.7 |
6 | 2.7 | 16.2 |
7 | 1.6 | 107.4 |
8 | 12.5 | 185.4 |
9 | 1.0 | 96.1 |
10 | 2.6 | 72.8 |
11 | 0.3 | 64.2 |
12 | 4.0 | 132.2 |
13 | 0.8 | 58.6 |
14 | 3.5 | 174.6 |
15 | 10.2 | 263.5 |
16 | 3.0 | 79.3 |
17 | 0.2 | 14.8 |
18 | 0.4 | 73.5 |
19 | 1.0 | 24.7 |
20 | 6.8 | 139.4 |
21 | 11.6 | 368.2 |
22 | 1.6 | 95.7 |
23 | 1.2 | 109.6 |
24 | 7.2 | 196.2 |
25 | 3.2 | 102.2 |
如何將這些數據添加到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
表示的是殘差統計量
那麼什麼是殘差,也許有些人不太懂
用一個公式表示,也許你就懂了
也就是說這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的列包含由最小二乘法計算得出的估計迴歸係數
即
標記爲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%可以由不良貸款與貸款餘額之間的線性關係來解釋。後一個值是調整後的判斷係數,計算公式爲
這裏由於是一元線性迴歸,殘差平方和的自由度爲n-2(即k=1)
第三句表示的是F(1,23)分佈的統計量是56.75。