の続きです。
今回は、R言語のlm関数をつかって、perIncをYear, Mitsu, perS, perLの4つの変数で予測したいと思います。
使うデータフレームは、標準化して各変数のデータの範囲を揃えたdf_scaledを使います。これをトレーニング用のデータ70%、テスト用のデータ30%に分割します。
df_scaledがデータは何個あるのか確認します。
トレーニング用に132個のデータを使いましょう。
set.seed(515)で毎回作業をしても同じ乱数が出るようにしました。sample関数で1から188の中からランダムに132個の数字を選びました。それで、df_trainがトレーニング用、df_testがテスト用としました。
それでは、lm関数でperIncを予測するモデルを作ります。
Yearだけが有意では無いです。このモデル,lm1で予測します。
predict関数で予測できます。
予測がどれくらい実際の値に近いか、MSE(mean square error)を計算します。
cor関数で相関係数も計算します。
相関係数は0.7137116ですので、けっこういい感じです。
Yearは有意ではなかったので、Yearを削除したモデルを作ってみましょう。
predict関数で予測します。
MSEを計算します。
lm1で予測したときよりも悪いです。
相関係数を計算します。
相関係数も少し悪くなりました。
lm1で予測した値と実際の値の散布図を描きます。
今回は以上です。