読者です 読者をやめる 読者になる 読者になる

Rを通じて統計学を学ぶ備忘録ブログ

SPSSからRに移行したい私のような人向けのR解説ブログ兼学習用備忘録。

第34回 重回帰分析

第34回は重回帰分析について書きます。

重回帰分析は単回帰分析の説明変数が1つではなく、複数になったものです。単回帰分析のときには問題にならなかった「多重共線性(マルチコリニアリティ)」ということを考慮しなければいけません。 

多重共線性:回帰係数が不安定になり、正しく推定できなくなるという問題のこと。理由として、説明変数の中に、相関係数が高くなる組み合わせがあると発生します。もしAとBという変数の相関係数が高い場合、両方を使う必要がなく、片方が説明できてしまうため、削除するなり、AをBを1つの変数にまとめてしまうなどの対策をする必要がある。

では、Rでの実践に移りますが、重回帰分析の目的は何か。ずばり「説明変数を使って目的変数を予測すること」です。当たり前なことを言うなとお叱りを受けそうですが、よく考えてみると、「どんな説明変数」を使うのか、ということはしっかりと検討しなければいけません。説明変数の選択は、数学的に決めてしまう(ステップワイズとか)とか、研究領域によっては、ある目的変数の予測には必ず用いられる説明変数があるなど、目的変数の選択はモデル設計の上で十分検討される必要があります。相関行列や対散布図などで視覚的にデータの関係を把握します。 

今回のデータは、「マンガでわかる統計学 回帰分析編: 高橋 信, 井上 いろは, トレンドプロ: 本」のp107のデータを使わせていただきます。

 

no:店番

area:店舗面積

distance:店舗と駅の距離

sales:1ヶ月の売上

manga <- read.csv("manga.csv",header=TRUE)

head(manga)
no  area  distance  sales
1   10   80         469
2   8   0          366
3   8   200      371

attach(manga)
round(cor(manga),1)
          no  area    distance  sales
no      1.0    -0.1    0.3     -0.3
area      -0.1  1.0   -0.5    0.9
distance  0.3   -0.5  1.0     -0.8
sales     -0.3  0.9   -0.8    1.0
pairs(manga)

f:id:teruaki-sugiura:20150728133021p:plain

売上と面積には正の相関、売上と距離には負の相関が確認できます。
manga.lm <- lm(sales~area+distance,data=manga)
summary(manga.lm)

Call:
lm(formula = sales ~ area + distance, data = manga)

Residuals:
Min 1Q Median 3Q Max 
-31.432 -12.103 -3.429 12.680 41.745

Coefficients:
      Estimate  Std. Error     t value   Pr(>|t|) 
(Intercept)   65.32392  55.73834   1.172   0.279546 
area     41.51348 6.25612   6.636   0.000294 ***
distance   -0.34088  0.07814   -4.362    0.003304 ** 
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 24.42 on 7 degrees of freedom
Multiple R-squared: 0.9452, Adjusted R-squared: 0.9296 
F-statistic: 60.41 on 2 and 7 DF, p-value: 3.844e-05

・モデルの当てはまり

修正済みR2値は0.92とモデルの当てはまりがよいですね。

round(residuals(manga.lm),1)
1     2     3      4    5    6      7     8     9    10
15.8 -31.4  41.7   3.3  -7.7 -22.0  20.7  -2.9  -3.9 -13.6

1-(var(residuals(manga.lm))/(10-2-1))/(var(manga$sales)/(10-1)) 
#調整済みR^2を計算する場合
[1] 0.929589

・F検定

回帰式が有効かどうかを測定するF検定も有意であることがわかります。

F=(SS_R/k)/(SS_E/(n-k-1))

SS_R:予測値の変動

SS_E:誤差の変動

n:サンプルサイズ

k:説明変数の数

予測値の変動SS_Rが一定で、F値が大きくなるほど、誤差の変動SS_Eが小さくなり、誤差が0に近づくことを意味する。その結果、F分布の性質上、値が大きくなると、p値が小さくなり、帰無仮説が棄却されやすくなる。

(var(fitted(manga.lm))/2)/(var(residuals(manga.lm))/(10-2-1)) 
#F値を計算する場合
[1] 60.41043

・説明変数の寄与度

 Pr(>|t|) で確認できます。Pr(>|t|)は帰無仮説は回帰係数が0であるというt検定のp値を示しています。そのため、その値が小さければ小ほど、回帰式に役立っていると判断できる。t値の絶対値が2を超えている場合、有意な変数として判断でき、Rの場合は*が付きます。SPSSでは付きませんので、自分で確認しなければならず、面倒臭い。

 

以上で第34回はお終い。

広告を非表示にする