Rで何かをしたり、読書をするブログ

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

建設総合統計のデータ分析4 - R言語のlm関数で回帰分析。

 

www.crosshyou.info

 の続きです。

今回は、Total(総計)をresponse variable, Minkan(民間)をexplanatory variableにして回帰分析をしてみます。

まずは、plot関数で散布図を描きます。

f:id:cross_hyou:20200222134805p:plain

f:id:cross_hyou:20200222134814p:plain

正の相関の散布図です。

lm関数で回帰分析をしてみます。

f:id:cross_hyou:20200222135022p:plain

モデルのp値は2.2e-16と0.05よりも小さいので有意なモデルです。切片項、Minkanの係数のp値も0.05以下で有意です。R-squaredは0.8801となっています。Minkanの動きでTotalの動きが88%説明できるということですね。

散布図に回帰直線を重ねてみます。

f:id:cross_hyou:20200222135413p:plain

f:id:cross_hyou:20200222135424p:plain

このモデルの式は、

Total = 979億90百万円 + 1.386 x Minkan

です。Minkan(民間)の建設工事が1億円増えると、全体の建設工事は1億3860万円増えるということですね。

この回帰モデルに、Yearを追加したらどうなるでしょうか?

f:id:cross_hyou:20200222140122p:plain

anova関数でmodel1とmodel2を比較しましたが、p値が0.9949と0.05よりも大きいので、Yearを追加しても意味は無いようです。

f:id:cross_hyou:20200222140312p:plain

summary関数でmodel2を見てみましたが、Yearの係数のp値は0.995と0.05よりも大きいので、やはりYearは関係ないですね。

model1の残差プロットを表示してみます。

f:id:cross_hyou:20200222141552p:plain

f:id:cross_hyou:20200222141603p:plain

今度は、Minkan(民間)をKokyo(公共)で回帰分析してみます。

f:id:cross_hyou:20200222142259p:plain

p値は0.0001025と0.05よりも小さいので有意なモデルです。切片項、Kokyoの係数ともにp値は0.05より小さいです。R-squaredは0.3625なのでKokyoの動きでMinkanの動きが36%説明できます。

散布図と回帰直線を描いてみます。

f:id:cross_hyou:20200222142716p:plain

f:id:cross_hyou:20200222142726p:plain

Yearを追加してみます。

f:id:cross_hyou:20200222142916p:plain

Yearを追加する際、今回はKokyo:Yearという交差項も加えてみました。anova関数でmodel3とmodel4を比較すると、model3とmodel4では有意な違いがあります。

model4をsummary関数で見てみます。

f:id:cross_hyou:20200222143254p:plain

モデルのp値は3.284e-07と0.05よりも小さく有意なモデルです。Intercept, Kokyo, Year, Kokyo:Yearの係数のp値がすべて0.05よりも小さくなっています。R-squaredは0.6378なので、63%の説明力です。Kokyoだけのときと比べると大幅に良くなっています。

model3とmodel4の残差を箱ひげ図で比較しましょう。

f:id:cross_hyou:20200222143959p:plain

f:id:cross_hyou:20200222144012p:plain

resid関数で残差を出力できますので、yrange <- のコマンドで箱ひげ図の上限の値と下限の値を設定しています。model3よりも、model4のほうが上下の幅が狭くなっていることがわかります。

今回は以上です。