Bing Image Creator で生成: Close up of Paeonia suffruticosa flowers, background is Orion stars
の続きです。前回は、データフレームをトレーニング用とテスト用に分けました。それではいよいよモデルを作って予測してみましょう。
まずはじめは、線形回帰モデル、Linear Regression でやってみます。
R で線形回帰するには、lm() 関数ですね。
step() 関数であまり重要でない変数をなくします。
summary() 関数で出来上がったモデルを確認します。
2012年のほうが2011年よりも3900台も多いですね。土曜は490台多く、月曜は240台少ないなどわかります。
こうして作成されたモデルで df_test のデータを予測します。predict() 関数を使います。
この予測された値と実際の値を一つのデータフレームにして、グラフで表示してみます。
はじめの 10 個ほどのデータですが、結構、予測がうまくいっているように見えます。
グラフを描きます。
赤い線が線形回帰モデルで予測した値、黒い線が実際の値です。結構当たっているように思います。
RMSE を計算します。
df_test の cnt の平均は、4460 なので、824 / 4460 = 18.5% ぐらいの誤差ですね。
今回は以上です。
次回は、
です。
初めから読むには、
です。
今回のコードは、以下になります。
#
# 予測モデル1: linear regression
fit_lm <- lm(cnt ~ ., data = df_train)
#
# step() 関数で不要な変数を削除する
fit_lm <- step(fit_lm, trace = FALSE)
#
# 予測モデル1の確認
summary(fit_lm)
#
# 予測モデル1で予測
pred_lm <- predict(fit_lm, newdata = df_test)
#
# 予測値と実際の値のデータフレームを作成
df_results <- tibble(time = df_test$t,
jissai = df_test$cnt,
lm = pred_lm)
df_results
#
# 予測値と実際の値のグラフ
df_results |>
ggplot(aes(x = time)) +
geom_line(aes(y = lm), color = "red") +
geom_line(aes(y = jissai))
#
# RMSE の計算
rmse_lm <- sqrt(mean*1
rmse_lm
#
*1:pred_lm - df_test$cnt)^2