crosshyou

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

都道府県別の第1次産業・第2次産業・第3次産業事業所数のデータ分析5 - R言語のglm関数とlm関数でclassification

 

www.crosshyou.info今回は、R言語のglm関数とlm関数でclassificationをしてみます。2009年度のデータを使って、モデルを作成し、2014年度のデータでモデルのテストをします。

まず、2009年度のデータフレーム、2014年度のデータフレームを用意します。

f:id:cross_hyou:20200503091945j:plain

 予測する変数として、Popu(人口)が平均値よりも上なら1、そうでないなら0という2値をとる変数を作成しました。

f:id:cross_hyou:20200503092126j:plain

2009年度も2014年度も平均値よりも多い都道府県は12ありました。

glm関数でロジスティクス回帰モデルを作ります。

f:id:cross_hyou:20200503092335j:plain

step関数で単純化します。

f:id:cross_hyou:20200503092431j:plain

per2ndの係数のp値は0.0631と0.05よりも大きいですから、削除してもいいかもしれないです。

f:id:cross_hyou:20200503092552j:plain

Pr(>Chi)が0.02337なので0.05よりも小さいですね。削除してはいけなかったです。

単純化していない、glm_1で予測してみます。predict関数を使います。

f:id:cross_hyou:20200503092807j:plain

結果をtable関数でみてみます。

f:id:cross_hyou:20200503092900j:plain

モデルが1と予想したけど、実際は0だったというのが10個ありました。正解率は37/47=78.7%です。

単純化したモデル、glm_2で予測してみます。predict関数を使います。

f:id:cross_hyou:20200503093054j:plain

結果をみてみます。table関数を使います。

f:id:cross_hyou:20200503093152j:plain

モデルは0と予測したのに実際は1だったのが1つ、モデルは1と予測したのに実際は0だったのが6個でした。正解率は40/47=85.1%でした。

 

今度はlm関数で線形回帰モデルを作ります。

f:id:cross_hyou:20200503093437j:plain

step関数で単純化します。

f:id:cross_hyou:20200503093529j:plain

I(perGDP^2)は削除してもいいかもしれません。

f:id:cross_hyou:20200503093629j:plain

Pr(>F)は0.06451と0.05よりも大きいので削除してもいいです。

lm_3を見てみます。summary関数を使います。

f:id:cross_hyou:20200503093756j:plain

perGDPを削除してもよさそうですね。

f:id:cross_hyou:20200503093907j:plain

lm_4を見てみます。

f:id:cross_hyou:20200503094002j:plain

per2ndを削除しましょう。

f:id:cross_hyou:20200503094046j:plain

lm_5をみてみましょう。

f:id:cross_hyou:20200503094136j:plain

これで全てのexplanatory variablesの係数のp値が0.05以下になりました。

lm_5で予測してみます。

f:id:cross_hyou:20200503094253j:plain

結果を見てみます。

f:id:cross_hyou:20200503094338j:plain

モデルは0と予測したけど実際は1だったのが4つ、モデルは1と予測してけど実際は0だったのが2つでした。正解率は41/47=87.2%でした。これが一番正解率が高いですね。

縦軸にLS, 横軸にper1stのグラフを描いて、その上にlm_5のモデルから計算したLSを重ねてみます。

f:id:cross_hyou:20200503095116j:plain

f:id:cross_hyou:20200503095127j:plain

赤い線がlm_5の予測の線で、それを四捨五入したのが青い線です。

今回は以上です。