Rで回帰分析②ー重回帰分析, lm関数, 価格予測ー

Rでデータ解析と可視化

AをB、C、Dなどの複数の要因で予測したいという場合に、重回帰分析が用いられます。

例えば、住宅の価格(目的変数)を、町ごとの一人当たり犯罪率、1940年以前に建てられた持ち家の割合、ボストンの5つの雇用中心地までの距離の加重平均のデータ(説明変数)から予測してみます。

不動産鑑定士のイラスト お金の入った袋のイラスト「円マーク」




1. 重回帰分析

重回帰とは、1つの目的変数を複数の説明変数で予測するものです。
1つの目的変数を1つの説明変数で予測するものは、単回帰と呼び、以下のサイトで説明していますので、こちらも御覧頂けたらと思います。

Rで回帰分析① ー単回帰分析, lm関数, 残差プロット, Q-Qプロットー
車の運転速度が速いほど、ブレーキを踏んでから停止するまでに必要な距離は長くなる💡 これは日常の運転でも実感できる事象かと思います。 このような関係性をデータから数式で表現し、予測に活用できる手法である単回帰分析です。 ...

被説明変数 (応答変数, 従属変数, 目的変数) y: 説明される変数
説明変数 (独立変数, 予測変数) x: 説明する変数
説明変数がp個ある場合は、以下のモデル(線形重回帰モデル)になります。

yi=β0+β1xi1+β2Xi2+・・・+βpxip+ε

β1, β2,…βpを偏回帰係数、εi 誤差項といいます。

2. 重回帰分析をやってみよう(Bostonのデータセット使用)

今回使用するデータセットのBostonは、Housing Values in Suburbs of Boston(ボストン近郊の住宅価格)と、町ごとの一人当たり犯罪率、25,000平方フィート以上の区画に分類される住宅地の割合などの情報が含まれます。

library(MASS)
head(Boston) #1 Bostonデータセット
       crim    zn  indus  chas   nox       rm         age       dis     rad  tax     ptratio   black    lstat   medv
 1 0.00632 18  2.31    0       0.538    6.575     65.2   4.0900   1   296    15.3     396.90   4.98   24.0
 2 0.02731  0  7.07     0       0.469    6.421     78.9   4.9671   2   242    17.8     396.90   9.14   21.6
 3 0.02729  0  7.07    0        0.469    7.185     61.1   4.9671   2   242    17.8     392.83   4.03   34.7
 4 0.03237  0  2.18    0        0.458    6.998     45.8   6.0622   3   222    18.7     394.63   2.94   33.4
 5 0.06905  0  2.18    0        0.458    7.147     54.2   6.0622   3   222    18.7     396.90   5.33   36.2
 6 0.02985  0  2.18    0        0.458    6.430     58.7   6.0622   3   222    18.7     394.12   5.21   28.7
Boston_lm<-lm(medv~crim+zn+indus+chas+nox+rm+age+dis+rad+tax+ptratio+black+lstat, data=Boston) #2重回帰
summary(Boston_lm) #3

 Call:
 lm(formula = medv ~ crim + zn + indus + chas + nox + rm + age + 
     dis + rad + tax + ptratio + black + lstat, data = Boston)

 Residuals:
     Min      1Q  Median      3Q     Max 
 -15.595  -2.730  -0.518   1.777  26.199 

 Coefficients:
                     Estimate       Std.Error       t value    Pr(>|t|)    
 (Intercept)   3.646e+01   5.103e+00       7.144     3.28e-12 ***
 crim            -1.080e-01    3.286e-02      -3.287     0.001087 ** 
 zn                4.642e-02    1.373e-02       3.382     0.000778 ***
 indus           2.056e-02    6.150e-02       0.334     0.738288    
 chas           2.687e+00    8.616e-01       3.118     0.001925 ** 
 nox           -1.777e+01     3.820e+00     -4.651    4.25e-06 ***
 rm              3.810e+00     4.179e-01       9.116     < 2e-16 ***
 age             6.922e-04     1.321e-02       0.052     0.958229    
 dis            -1.476e+00     1.995e-01      -7.398     6.01e-13 ***
 rad              3.060e-01     6.635e-02       4.613     5.07e-06 ***
 tax             -1.233e-02     3.760e-03      -3.280     0.001112 ** 
 ptratio        -9.527e-01     1.308e-01      -7.283     1.31e-12 ***
 black           9.312e-03     2.686e-03       3.467     0.000573 ***
 lstat            -5.248e-01     5.072e-02    -10.347     < 2e-16 ***
 ---
 Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

 Residual standard error: 4.745 on 492 degrees of freedom
 Multiple R-squared:  0.7406,	Adjusted R-squared:  0.7338 
 F-statistic: 108.1 on 13 and 492 DF,  p-value: < 2.2e-16

#1  Bostonデータセット
crim:町ごとの一人当たり犯罪率
zn:25,000平方フィート以上の区画に分類される住宅地の割合
indus:町ごとの非小売業用地面積の割合
chas:チャールズリバーのダミー変数(川に面している場合は1、そうでない場合は0)
nox:窒素酸化物濃度(1千万分の1)。
rm:1住戸当たりの平均部屋数。
age:1940年以前に建てられた持ち家の割合。
dis:ボストンの5つの雇用中心地までの距離の加重平均
rad:放射状高速道路へのアクセスの指数
tax:1万ドルあたりの固定資産税の割合。
ptratio:町ごとの生徒と教師の比率
black:1000(Bk – 0.63)^2 ただし、Bkは町ごとの黒人の割合。
lstat:人口の下位ステータス(%)。
medv:持ち家の中央値(単位:千円)。

#2 重回帰

#3 重回帰の結果表示
lm(目的変数~説明変数1+説明変数2+説明変数3・・・, data= )
β0は3.646e+01 、crimの偏回帰係数は-1.080e-01 、znは4.642e-02、indusは2.056e-02、chasは2.687、noxは-1.777e+01 、rmは 3.810、ageは 6.922e-04、disは-1.476、radは3.060e-01 、taxは-1.233e-02 、ptratioは-9.527e-01、blackは9.312e-03、lstatは-5.248e-01で、medv(yi)は、以下のようなモデル式ができます。

yi=3.646e+01-1.080e-01xi1+4.642e-02xi2+2.056e-02xi3+ 2.687xi4-1.777e+01xi5+3.810xi6+6.922e-04xi7-1.476exi8+3.060e-01xi9-1.233e-02xi10-9.527e-01xi11+9.312e-03xi12-5.248e-01xi13

Multiple R-squared(決定係数): 0.7406
Adjusted R-squared(自由度調整済み決定係数 変数の数で補正): 0.7338

これらの決定係数は、0~1の間の値をとり、モデルがどの程度yを説明できているかを示す指標になります。
p-value(p値): < 2.2e-16 で、0.05以下であるため、xがyを説明する力が十分であると結論できました。
CoefficientsにおけるPr(>|t|)は、モデル式における各因子の係数のp値を示します。
例えば、indusは0.738288、ageは0.958229であり、p>0.05で信頼できる係数では無いことがわかりました。
このように複数の因子から予測する際に、全ての因子を用いずとも、当てはまりの良い因子選択を行い、モデル式を作成する方法もあります。

これを変数選択と呼び、また別の機会に解説記事を書く予定です。




3.重回帰の当てはまり具合を、残差分析で確認(残差プロット, Q-Qプロット)

plot(Boston_lm, which=1:2) #4 残差分析

#9 残差分析の1:残差プロットと2:Q-Qプロットを指定しています。

★残差プロット(上記左図)
横軸に予測値、縦軸に残差をプロットしています。
赤線は残差を説明する回帰曲線で、残差=0と重なっているほど、あてはまりがよい回帰モデルであるといえます。
図中の369、372、373 は、データフレームの行番号であり、このデータが、残差の絶対値が大きいもの※になります。

★Q-Qプロット(上記右図)
横軸に標準正規分布の分位点、縦軸に残差の分位点をプロットしています。
正規分布である場合、データ プロットは直線になります。
369、372、373は、残差プロット同様、残差の絶対値が大きく、正規分布から外れている※と考えられます。
※外れ値の除去については検討が必要になります。

以下、参考図書です。Rを最初からきっちり学びたい方にお勧めです。

コメント

タイトルとURLをコピーしました