始める無料で始める

自転車レンタル数を予測するモデルを当てはめる

この演習では、天候、日の種類(祝日・平日・週末)、そして時間帯に基づいて、1時間あたりにレンタルされる自転車の台数を予測するモデルを作成します。モデルは7月のデータで学習します。

データフレームには次の列があります。

  • cnt: その時間にレンタルされた自転車の台数(目的変数)
  • hr: 時(0–23、factor)
  • holiday: TRUE/FALSE
  • workingday: 祝日でも週末でもなければ TRUE、それ以外は FALSE
  • weathersit: カテゴリ型、"Clear to partly cloudy"/"Light Precipitation"/"Misty"
  • temp: 摂氏で正規化した気温
  • atemp: 摂氏で正規化した体感気温
  • hum: 正規化した湿度
  • windspeed: 正規化した風速
  • instant: 時間インデックス — データセット開始からの経過時間(時間数)(変数としては使用しません)
  • mnthyr: 月と年のインデックス(変数としては使用しません)

カウントデータのモデルを glm()docs)で当てはめるときは、family = poisson または family = quasipoisson を必ず指定してください。

入力変数が多いため、ここでは便宜上、目的変数と説明変数名を変数で指定し、paste()docs)を使ってモデルの式文字列を組み立てます。

bikesJuly データフレームが利用可能です。目的変数名と説明変数名は、それぞれ outcomevars という変数に読み込まれています。

この演習はコースの一部です

R による Supervised Learning:回帰

コースを見る

演習の手順

  • cnt を入力の関数として表す式 fmla を空欄補充で作成し、表示してください。
  • bikesJuly$cnt の平均(mean())と分散(var())を計算します。
    • poisson 回帰と quasipoisson 回帰のどちらを使うべきでしょうか?
  • glm() を使って bikesJuly データにモデル bike_model を当てはめてください。
  • glance() でモデルの当てはまり指標を確認し、出力を変数 perf に代入します。
  • モデルの疑似R二乗を計算してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# bikesJuly is available
str(bikesJuly)

# The outcome column
outcome 

# The inputs to use
vars 

# Create the formula string for bikes rented as a function of the inputs
(fmla <- paste(___, "~", paste(___, collapse = " + ")))

# Calculate the mean and variance of the outcome
(mean_bikes <- ___)
(var_bikes <- ___)

# Fit the model
bike_model <- ___

# Call glance
(perf <- ___)

# Calculate pseudo-R-squared
(pseudoR2 <- ___)
コードを編集して実行