前回は、l_totalを2016年度、2017年度、2018年度で回帰分析してみました。理論ベースでもbootstrapでのシミュレーションベースでも、年度によってl_totalの平均値には違いがあることが確認できました。
今回は、caretパッケージのツールを使って、ratioをl_total, year, prefで予測するモデルをいくつか作ってみましょう。
The caret Package (topepo.github.io) にcaretパッケージの解説があります。
まずは、caret パッケージを読み込みます。
ratio, l_total, year, prefだけのデータフレームも作っておきます。
次は、df_selectedをトレーニング用のデータとテスト用のデータに分割します。
そして、トレーニング用のデータフレーム、df_trainとテスト用のデータフレーム、df_testを作ります。
両方のサマリーを表示してみましょう。
ratioの平均値はdf_trainは0.5002, df_testは0.5169でした。
t.test関数で二つのratioの平均値に統計的な違いがないかどうかみてみます。
p-valueは0.6711ですので、統計的に違いはないです。
l_totalもみてみます。
p-valueは0.3008なのでこちらも統計的に有意な違いはないですね。
それでは、caretによる予測モデル作成をしていきましょう。
まずは、基本として一番簡単な線形モデル、ratio = l_total + year + pref を作成して評価してみます。
lm_fit1のモデルをみてみましょう。
RMSE, Rsquared, MAEがモデルがどのくらいratioの値を予測しているかを表す評価項目ですね。RMSEとMAEは小さいほうがよくて、Rsquaredは大きいほうがいいですね。
summary()関数で表示してみます。
中略
それでは、lm_fit1のモデルで、df_trainのデータを使い、ratioを予測してみます。
predict()関数を使います。
予測データがlm_pred1として保存されました。
これを、postReample()関数で評価します。
lm_eval1として評価を保存しておきました。次回以降でいろいろな予測モデルを試してみましょう。
今回は以上です。
次回は、
です。
初めから読むには、
です。