ファイル
garbage.csvに横浜と川崎を除く神奈川県内の各市における人口とゴミ収集量のデータが保存されています。このデータを使って、
の単回帰分析を行ってみましょう。
データの入力
いつものように read.csvを使ってデータを読み込みます。
> g <- read.csv("garbage.csv")
> g
市 人口ごみ収集量
1 平塚 251991 75938
2 鎌倉 172638 64139
3 藤沢 362088 106898
4 小田原 197460 72415
5 茅ヶ崎 209575 64302
6 逗子 56436 20700
7 相模原 560366 169343
8 三浦 53795 20550
9 秦野 161692 46948
10 厚木 206186 85428
11 大和 202200 76155
12 伊勢原 96436 31048
13 海老名 110638 32124
14 座間 117025 36712
15 南足柄 43314 12939
16 綾瀬 80430 25665
R で回帰分析を行うための関数はlmです。説明変数と被説明変数をそれぞれ、人口とごみ収集量とする回帰分析を行うには以下のように入力します。
> result <- lm(g$ごみ収集量 ~ g$人口)
以上で変数resultに結果が代入されました。結果の要約を表示するにはsummaryという関数を利用します。
> summary(result)
Call:
lm(formula = g$ごみ収集量 ~ g$人口)
Residuals:
Min 1Q Median 3Q Max
-6495 -4545 -3229 1595 18787
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.811e+03 3.283e+03 1.466 0.165
g$人口 2.999e-01 1.486e-02 20.175 9.55e-12 ***
---
Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
Residual standard error: 7598 on 14 degrees of freedom
Multiple R-Squared: 0.9667, Adjusted R-squared: 0.9644
F-statistic: 407 on 1 and 14 DF, p-value: 9.552e-12
まず注目すべき点は、Coefficientsの部分です。ここで、
Estimate :係数
Std. Error :標準誤差
Pr(>|t|) : P値
を意味します。また、
Residual standard error:標準誤差
Multiple R-Squared:決定係数
を表しますので、この回帰分析の結果は
となります。
p値は
帰無仮説:「回帰係数は0である」、 対立仮説:「回帰係数は0ではない」
に関する仮説検定のp値を意味しています。この結果から、5%の有意水準で、「a=0」は受容され、また、「b=0」は棄却されることが分かります。いいかえれば、切片は0であるが、人口はゴミ収集量に影響を与えていると考えられます。
残差を読み取る
次に残差をグラフ化してみましょう。残差はresidualsという関数で得られます。
> residuals(result)
1 2 3 4 5 6 7
-4439.2846 7557.7275 -6494.6658 8390.2205 -3355.7699 -1035.1521 -3508.3591
8 9 10 11 12 13 14
-393.1811 -6350.8365 18786.5078 10708.8111 -2682.1678 -5864.9981 -3192.3023
15 16
-4861.1871 -3265.3622
これをグラフにしてみましょう。
> plot(residuals(result),xlab="データNo.",ylab="残差")
次のようなグラフが表示されます。
もし、回帰分析がうまくいっているなら、残差の点は0を中心にまんべんなくばらついているはずです。ところが、このグラフを見ると、大きくプラスの方向へ外れている点が4点あります。この4点がどの都市に相当するのかを調べてみましょう。
以下のように入力すると、グラフに十字マークが表示されます。マークをプラス方向へ外れている4点に移動させ、マウスで右クリックして下さい。そのデータに対応する都市名が表示されます。表示が終わったらグラフ左上の「stop」メニューから「stop locator」を選択して下さい。
> identify(residuals(result),labels=d$市)
この結果から、これら4点が厚木・大和・小田原・鎌倉市であることが分かりました。これらの市は大都市または観光地です。このことから、ゴミの収集量を説明するには、単に人口だけではなく、都市の規模や、観光地があるかどうかなどを考慮しなければならないことが示唆されます。
練習問題
小売業に関する売上高(百億円)と従業員数(百人)のデータが
retail.csvに保存されています。このデータを利用して散布図を描画し、単回帰モデルを推定してみましょう。

コメントする