tetsunosukeのnotebook

tetsunosukeのメモです

Rで重回帰分析

今日は、見た目にわかりにくいけど...

下記のようなデータで重回帰分析を行います。
なお、a=駅からのバス時間、b=駅、バス停徒歩時間、c=築後年数、d=建物延べ面積, e=土地面積, f=価格を表しています。これらa〜eの要因によって、価格がどのくらいになるのが適正であるかを分析します。

> data
    a  b    c      d      e    f
1   0 16 10.0  75.00 221.87 4730
2   0 10  0.1  79.24 105.30 3850
3  10  3  1.0  94.63 174.21 4600
4  10  6 18.0 112.82 205.01 4730
5   0  5  1.0  72.46  94.90 4180
6   8  2 23.0  80.55 208.43 4350
7   0 20 10.0  99.31 171.95 3940
8   0 17 21.0  96.04 199.21 3670
9  10  4 10.0  80.14 130.27 3610
10  0 21 10.0  97.97 172.21 4050
11 10  5 31.0  84.66 168.30 3610
12 10  4 20.0  74.24 130.00 3800
13  0 22 14.0  88.60 146.64 3280
14 10  2 10.0  80.25 130.46 3850
15  0 20  9.0 100.85 165.12 3960

一旦、すべての変数に対して回帰分析を行います

> res <- lm(data$f ~ data$a+data$b+data$c+data$d+data$e)
> res

Call:
lm(formula = data$f ~ data$a + data$b + data$c + data$d + data$e)

Coefficients:
(Intercept)       data$a       data$b       data$c       data$d       data$e  
   2893.577      -34.816      -50.522      -30.923        5.244       10.734  

> summary(res)
(抜粋)
Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 2893.577    481.946   6.004 0.000202 ***
data$a       -34.816     29.735  -1.171 0.271714    
data$b       -50.522     19.544  -2.585 0.029450 *  
data$c       -30.923      9.429  -3.280 0.009535 ** 
data$d         5.244      7.332   0.715 0.492622    
data$e        10.734      2.129   5.043 0.000697 ***

回帰式が求められますが、Coefficientsの中で、アスタリスクがついているものとついていないものがあります。このアスタリスクは、|t|値が小さい大きい物についておらず、この要素は回帰式において影響を与えない項目と捉えることができます。

$b, $c, $eのみを残してみることにします

> res2 <- lm(data$f ~ data$b+data$c+data$e)
> res2
Coefficients:
(Intercept)       data$b       data$c       data$e  
    3007.75       -29.70       -36.32        10.97  

これが回帰式になります。

つまり、30007.25+ 徒歩時間*-29.70 + 築後年数*-36.32 + 土地面積*10.97 = 価格

となりました。

summaryも見てみますと

> summary(res2)

Call:
lm(formula = data$f ~ data$b + data$c + data$e)

Residuals:
    Min      1Q  Median      3Q     Max 
-344.75 -170.31    3.31  133.54  316.10 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 3007.753    265.058  11.348 2.06e-07 ***
data$b       -29.704      8.160  -3.640 0.003885 ** 
data$c       -36.316      8.017  -4.530 0.000858 ***
data$e        10.969      1.887   5.813 0.000117 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 225.7 on 11 degrees of freedom
Multiple R-squared: 0.7846,     Adjusted R-squared: 0.7259 
F-statistic: 13.36 on 3 and 11 DF,  p-value: 0.0005488 

アスタリスクが0のデータが無くなり、最適な回帰式が算出できたと言えます。