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

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

都道府県別の最終学歴人口のデータ分析6 - R言語でいろいろなモデルのMSEを比較する。

 

www.crosshyou.infoの続きです。

今回は、linear model, random forest model, genaralized additive model, support vector regression model, tree regression modelのMSEを比較しようと思います。

こんどは、df3_scaledのデータフレームをトレーニング用のデータフレーム(train)とテスト用のデータフレーム(test)に分けて、trainのデータでモデルを作り、testのデータでMSEを計算して比較しようと思います。

はじめにtrainとtestという二つのデータフレームを作ります。

sample関数を使ってランダムに47の都道府県を35と12にわけます。

f:id:cross_hyou:20200422115903j:plain

trainのデータ構造、testのデータ構造をstr関数で確認します。

f:id:cross_hyou:20200422120419j:plain

trainは35個の観測、testは12個の観測になっています。

summary関数でそれぞれのサマリを見てみます。

f:id:cross_hyou:20200422120433j:plain

 

それでは、今までのようにlm関数、randomForest関数、gam関数、svm関数、tree関数でそれぞれのモデルを作成します。

f:id:cross_hyou:20200422120444j:plain

PopuとYouが有意なデータですね。

f:id:cross_hyou:20200422120457j:plain

単純化したら、Popu, You, Shouだけのモデルになりました。

f:id:cross_hyou:20200422120534j:plain

ランダムフォレストのサマリはあまりよくわからないですね。

f:id:cross_hyou:20200422120546j:plain

gamモデルのR-sq.(adj)が0.897となっていますから、89%の説明力です。

f:id:cross_hyou:20200422120558j:plain

svmのサマリはよくわからないですね。

f:id:cross_hyou:20200422120608j:plain

treeモデルのサマリはMSEが表示されていますね。Residual mean deviance = 0.008797です。
それぞれのモデルが作成できました。
それでは、それぞれのモデルのMSEを計算します。

f:id:cross_hyou:20200422120618j:plain

それでは、結果を見てみましょう。

f:id:cross_hyou:20200422120630j:plain

 

f:id:cross_hyou:20200422120642j:plain

一番MSEが小さい(優秀)なモデルは、lm2, linear modelで単純化したモデルでした。gamのモデルは他と比べると異常に大きいですね。gamはover fittingだったのかな?

今回は以上です。