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

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

都道府県別の建築物リフォーム・リニューアル調査のデータ分析5 - Rのcaretパッケージでratioを予測するモデルを作る。その1

UnsplashDiego PHが撮影した写真 

www.crosshyou.info

前回は、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として評価を保存しておきました。次回以降でいろいろな予測モデルを試してみましょう。

今回は以上です。

次回は、

www.crosshyou.info

です。

 

初めから読むには、

www.crosshyou.info

です。