crosshyou

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

都道府県別の事業所数(民営)のデータ分析4 - R言語のlm関数で1人当りの課税所得を予測する。

 

www.crosshyou.info

 の続きです。

今回は、R言語のlm関数をつかって、perIncをYear, Mitsu, perS, perLの4つの変数で予測したいと思います。

使うデータフレームは、標準化して各変数のデータの範囲を揃えたdf_scaledを使います。これをトレーニング用のデータ70%、テスト用のデータ30%に分割します。

df_scaledがデータは何個あるのか確認します。

f:id:cross_hyou:20200515081839j:plain

トレーニング用に132個のデータを使いましょう。

f:id:cross_hyou:20200515081943j:plain

set.seed(515)で毎回作業をしても同じ乱数が出るようにしました。sample関数で1から188の中からランダムに132個の数字を選びました。それで、df_trainがトレーニング用、df_testがテスト用としました。

それでは、lm関数でperIncを予測するモデルを作ります。

f:id:cross_hyou:20200515082352j:plain

Yearだけが有意では無いです。このモデル,lm1で予測します。

predict関数で予測できます。

f:id:cross_hyou:20200515082510j:plain

予測がどれくらい実際の値に近いか、MSE(mean square error)を計算します。

f:id:cross_hyou:20200515082618j:plain

cor関数で相関係数も計算します。

f:id:cross_hyou:20200515082705j:plain

相関係数は0.7137116ですので、けっこういい感じです。

Yearは有意ではなかったので、Yearを削除したモデルを作ってみましょう。

f:id:cross_hyou:20200515082841j:plain

predict関数で予測します。

f:id:cross_hyou:20200515082930j:plain

MSEを計算します。

f:id:cross_hyou:20200515083008j:plain

lm1で予測したときよりも悪いです。

相関係数を計算します。

f:id:cross_hyou:20200515083120j:plain

相関係数も少し悪くなりました。

lm1で予測した値と実際の値の散布図を描きます。

f:id:cross_hyou:20200515083525j:plain

f:id:cross_hyou:20200515083537j:plain

今回は以上です。