終値の平均を計算する
Red Sox データの傾向を確認できたので、役立つ指標を作成していきます。この演習では、各シーズンの終了時点での勝率(勝ち/負けの平均)を計算します。ファイナンスの用語でいえば、シーズンの「終値」に相当する値と考えられます。
終値の勝率を計算するには、前の章で使ったいくつかのコマンドを組み合わせます。
まず、各試合のスコアに基づいて勝利を判定します。これは、シンプルな ifelse() コマンドを使い、Red Sox が相手チームより多く得点した試合を勝ちとみなすことで実現できます。
次に、各シーズンの最後の試合日を endpoints() で特定します。このコマンドは、指定した期間内でオブジェクトの最後の日付を抽出します。
最後に、各シーズンの終値の勝率を計算するには、データの win_loss 列に対して period.apply() を使い、インデックスとして close 日付、関数として mean を指定します。
redsox_xts オブジェクトはワークスペースに用意されています。
この演習はコースの一部です
ケーススタディ:Rで都市の時系列データを分析する
演習の手順
ifelseを使ってwin_lossを計算します。boston_scoreがopponent_scoreより大きい場合は1、それ以外は0とします。endpoints()を使って、各シーズンの最後の試合日を特定します。野球のシーズンは1年内に収まるため、on引数に"years"を指定して各年の最終試合日を取得します。これらの日付をcloseとして保存します。period.apply()を使って、シーズン終値時点の勝率を計算します。redsox_xtsデータのwin_loss列を指定し、期間としてclose日付、関数としてmeanを指定します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Generate a new variable coding for red sox wins
redsox_xts$win_loss <- ifelse(redsox_xts$___ > redsox_xts$___, 1, 0)
# Identify the date of the last game each season
close <- endpoints(___, on = "___")
# Calculate average win/loss record at the end of each season
period.apply(redsox_xts[, "___"], ___, ___)