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

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

都道府県別の農家1戸当たりの米の年間供給量等のデータの分析3 - lm()関数で重回帰分析

www.crosshyou.info

の続きです。前回は、dtotal: 総需要量を stotal: 総供給量という一つの説明変数で単回帰分析しました。今回はその他の説明変数を加えて、重回帰分析をしてみようと思います。

てはじめにfzaiko: 期初の在庫量と lzaiko: 期末の在庫量を加えてみます。

fzaiko, lzaikoの係数のp値はともに統計的に有意ではありませんね。anova()関数でmodel1とmodel2が統計的に有意に違うかを確認します。

p値が0.2147ですので、lzaiko, fzaiko2つ同時でも統計的に有意ではないですね。

次は、dakkoku: 脱穀量とhanbai: 販売量を加えてみます。

hanbaiは統計的に有意です。

こうやって、いろいろ変数を加えてみたり、除外したりは面倒なので、step()関数で有意な係数だけのモデルを作ってみます。

stotalの係数は0.877ですので、総供給量が1増えると総需要量は0.877増えるという関係です。

R2が0.9991ですから、この式でdtotalはほとんど全部を説明できるということですね。

dtotalとモデルの推定値の散布図を描いてみます。

プロットされた線がきれいに直線上にあることがわかります。

今回は以上です。

次回は、

www.crosshyou.info

です。

 

はじめから読むには、

www.crosshyou.info

です。

今回のコードは以下になります。

#
# fzaikoとlzaikoを加えて重回帰分析
model3 <- lm(dtotal ~ stotal + fzaiko + lzaiko, data = df_raw)
summary(model3)
#
# model1とmodel3の比較
anova(model1, model3)
#
# dakkokuと販売を加えて重回帰分析
model4 <- lm(dtotal ~ stotal + dakkoku + hanbai, data = df_raw)
summary(model4)
#
# step()関数で有意な変数だけのモデル
model5 <- lm(dtotal ~ stotal + fzaiko + dakkoku + kounyu + meshi + hashu + 
               hanbai + jouto + lzaiko, data = df_raw) |> 
  step(trace = FALSE)
summary(model5)
#
# モデル推計結果と実際のdtotalの散布図
plot(predict(model5), df_raw$dtotal)
abline(0, 1, col = "red")
#

(冒頭のイメージ図は、Bing Image Creator で生成しました。プロンプトは Long shot of landscape photograph, close up of yellow Chrysanthemum flowers, photo です。