始める無料で始める

終値の平均を計算する

Red Sox データの傾向を確認できたので、役立つ指標を作成していきます。この演習では、各シーズンの終了時点での勝率(勝ち/負けの平均)を計算します。ファイナンスの用語でいえば、シーズンの「終値」に相当する値と考えられます。

終値の勝率を計算するには、前の章で使ったいくつかのコマンドを組み合わせます。

まず、各試合のスコアに基づいて勝利を判定します。これは、シンプルな ifelse() コマンドを使い、Red Sox が相手チームより多く得点した試合を勝ちとみなすことで実現できます。

次に、各シーズンの最後の試合日を endpoints() で特定します。このコマンドは、指定した期間内でオブジェクトの最後の日付を抽出します。

最後に、各シーズンの終値の勝率を計算するには、データの win_loss 列に対して period.apply() を使い、インデックスとして close 日付、関数として mean を指定します。

redsox_xts オブジェクトはワークスペースに用意されています。

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

ケーススタディ:Rで都市の時系列データを分析する

コースを見る

演習の手順

  • ifelse を使って win_loss を計算します。boston_scoreopponent_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[, "___"], ___, ___)
コードを編集して実行