crosshyou

主にクロス表(分割表)分析をしようかなと思いはじめましたが、あまりクロス表の分析はできず。R言語の練習ブログになっています。

全国主要都市の交通事故と犯罪発生件数のデータ分析8 - R言語のlm関数で回帰分析をする。

 

www.crosshyou.info

 の続きです。

今回はR言語のlm関数を使って回帰分析をします。

response variable(反応変数)はkeihou(人口10万人当りの刑法犯認知件数)で、explanatory variables(説明変数)はkoutuu(人口千人当りの交通事故件数)とregion(地域), japanpacific(日本海側、太平洋側、その他), eastwest(東日本と西日本)です。

それでは、さっそくやってみます。

cor関数でkeihouとkoutuuの相関係数を調べてみます。

f:id:cross_hyou:20201206163815p:plain

相関係数は0.785と高い相関です。

keihouとkoutuuの散布図を描いてみます。plot関数で簡単に描きました。

f:id:cross_hyou:20201206163955p:plainf:id:cross_hyou:20201206164011p:plain

koutuuの値が大きければ、keihouの値も大きいということですね。

それではlm関数で回帰分析モデルを作成します。

f:id:cross_hyou:20201206164323p:plain

f:id:cross_hyou:20201206164341p:plain

p-valueは2.2e-16よりも小さいですから、有意なモデルです。

各変数の有意のp値を見ると、eastwestやjapanpacificは有意ではなさそうですね。

step関数でモデルを単純化します。

f:id:cross_hyou:20201206164800p:plain

単純化したmodel2はeastwestとjapanpacificはなくなりました。p-valueは2.2e-16よりも小さいので有意なモデルです。

anova関数でmodel1とmoel2を比較します。

f:id:cross_hyou:20201206165023p:plain

p値は0.7081ですから、model1とmodel2では有意な違いはありません。モデルは単純なほうが良いモデルですから、model2のほうが良いモデルです。

model2を詳しくみてみます。

f:id:cross_hyou:20201206165350p:plain

近畿の係数に注目します。1.686ですが、標準誤差は2.11ですから95%の信頼区間は、

1.686 - 2.11*2 = -2.534 が下限、1.686 + 2.11*2 = 5.906と0をまたいでいます。

つまり、関東と近畿は有意な差は無い、ということです。関東と近畿を合体させたファクターを作り、そのファクタをregionの代わりにして回帰分析してみます。

f:id:cross_hyou:20201206170448p:plain

region2という変数を用意して、region2の2番目のファクター水準を近畿から関東に置換しています。そして、関東を関東近畿と名前を変更しました。

このregion2を説明変数にして回帰分析モデルを作ります。

f:id:cross_hyou:20201206170747p:plain

model2とmodel3をanova関数で比較します。

f:id:cross_hyou:20201206171232p:plain

p値は0.4264と0.05よりも大きいです。model3のほうが単純なので良いモデルです。

今度は東海を関東近畿と統合しましょう。

手順は同じです。

f:id:cross_hyou:20201206171401p:plain

このregion3で回帰分析モデルを作ります。

f:id:cross_hyou:20201206171712p:plain

model3とmodel4をanova関数で比較すると、p値は0.1188ですからmodel3とmodel4は有意な違いはありません。model4のほうが単純なモデルですからこちらを採用します。

model4をみてみます。

f:id:cross_hyou:20201206172030p:plain

九州沖縄と四国に注目します。九州沖縄の係数は-10.7で四国は-10.8と0.1ぐらいしかかわりません。そして、標準誤差がそれぞれ2.34, 3.71と0.1よりはるかに大きいです。

つまり、九州沖縄と四国は統合しても大丈夫そうということです。

f:id:cross_hyou:20201206172625p:plain

こうして作成したregion4で回帰分析モデルを作ります。

f:id:cross_hyou:20201206172925p:plain

anova関数でmodel4とmodel5を比較すると、p値は0.9778と0.05よりも大きいです。つまりmodel4とmodel5では有意な違いはありません。単純なmodel5を採用します。summary関数で詳しく見てみます。

f:id:cross_hyou:20201206173511p:plain

九州沖縄四国と北陸は統合してもよさそうです。

f:id:cross_hyou:20201206173819p:plain

region5で回帰分析モデルを作ります。

f:id:cross_hyou:20201206174014p:plain

anova関数でmodel5とmodel6を比較しました。p値は0.8574なので両者に有意な違いはありません。単純なmodel6を採用します。summary関数で詳しくみてみます。

f:id:cross_hyou:20201206174342p:plain

中国と北海道東北が統合してもよさそうですね。

f:id:cross_hyou:20201206174743p:plain

8つだった地域区分が3つに集約されました。このregion6でモデルを作ります。

f:id:cross_hyou:20201206175004p:plain

p値が0.7191と0.05よりも大きいです。model6とmodel7には有意な違いはありません。単純なmodel7を詳しくみてみましょう。

f:id:cross_hyou:20201206175301p:plain

九州沖縄四国北陸と北海道東北は統合してもよさそうです。結局、関東近畿東海の三大都市圏とそれ以外にわかれる感じですね。

f:id:cross_hyou:20201206175720p:plain

このregion7で回帰分析モデルを作ります。

f:id:cross_hyou:20201206175922p:plain

anova関数でmodel7とmodel8を比較しました。p値は0.2442ですので、model7とmodel8に有意な違いはありません。

model8のサマリを見てみましょう。

f:id:cross_hyou:20201206180222p:plain

ここまでの作業で、regionは「三大都市圏」と「その他」の二つの水準に単純化できました。

こんどは、koutuuとregion7の交差項を加えてみましょう。

f:id:cross_hyou:20201206200108p:plain

お!p値が0.0001289と0.05よりも小さくなりました。model8とmodel9では有意に違うということです。

model9をsummary関数でみてみます。

f:id:cross_hyou:20201206200403p:plain

model9のAdjusted R-squaredは0.7575です。model8のAdjusted R-squaredは0.7221ですからmodel9のほうが良いということですね。

model9は、地域が三大都市圏の場合は、

keihou = 3.256732 + 0.025317 * koutuu というモデル式で、

その他の地域の場合には、

keihou = 3.256732 + 5.066993 + (0.025317 - 0.0177104) * koutuu

            = 8.323725 + 0.008213 * koutuu

というモデル式です。

残差プロットをみてみましょう。

f:id:cross_hyou:20201206201103p:plain

f:id:cross_hyou:20201206201118p:plain

です。

最後にkoutuuとkeihouの散布図にmodel9の回帰線を加えてみます。

f:id:cross_hyou:20201206202145p:plain

f:id:cross_hyou:20201206202204p:plain

今回は以上です。