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

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

都道府県別の食料自給率のデータ分析3 - R言語のlm関数で線形回帰分析。そのままのデータと対数変換したデータの比較。

 

www.crosshyou.info

 の続きです。

今回は、lm関数をつかってCalをその他のデータで予測するモデルを作ってみます。

まずは、そのままのデータセット, avgdfでやってみます。

f:id:cross_hyou:20200510160309j:plain

Multiple R-squaedは0.6717です。p-value は5.282e-09なので有意なモデルです。

 

次に、変数をlog関数で対数変換してデータでやってみます。
多くの変数で左右対称でない分布たっだので、対数変換することで左右対称に近づくと思います。

f:id:cross_hyou:20200510161246j:plain

hist関数で外れ値がどうなった確認します。

f:id:cross_hyou:20200510161857j:plain

f:id:cross_hyou:20200510161934j:plain

それでは、この対数変換したデータセットでlm関数で線形回帰します。

f:id:cross_hyou:20200510162155j:plain

Multiple R-squaredは0.7954です。そのままのデータでのMultiple R-squaredは0.6717ですから良くなっていますね。p-valueも4.126e-13ともっと小さい値になっています。

続いて、scale関数で標準化したデータセットで回帰分析してみます。

scale関数で標準化します。scale関数の結果はマトリックスになるので、as.data.frame関数でデータフレームに戻します。

f:id:cross_hyou:20200510163104j:plain

lm関数で回帰分析モデルを作ります。

f:id:cross_hyou:20200510163240j:plain

Multiple R-squaredは0.6717です。生データと同じです。p-valueも5.282e-09で生データのときと同じです。

lm関数での線形回帰分析ではデータを標準化してもしなくても同じでした。

生のデータのときのモデルと対数変換したときのモデルの各変数のp値を比べましょう。

生データはこちらです。

f:id:cross_hyou:20200510164023j:plain

 

対数変換はこちらです。

f:id:cross_hyou:20200510164110j:plain

DayNight, Area, Temp,は生データのほうがp値が低いです。

Popu, Incomeは対数変換のほうがp値が低いです。

PopuとIncomeだけ対数変換したモデルを作ってみます。

f:id:cross_hyou:20200510165234j:plain

こちらはCalは対数変換しないでやってみました。Multiple R-squaredは0.7779です。

 

f:id:cross_hyou:20200510165149j:plain

こちらはCalを対数変換したモデルです。Multiple R-squaredは0.7766です。

今回は以上です。