1. 学ぶ
  2. /
  3. プロジェクト
  4. /
  5. ケーススタディ:Rで都市の時系列データを分析する

Connected

演習

シーズン平均を計算してプロットする

前の演習では、endpoints()とperiod.apply()を使って、各シーズンの終わり時点でのBoston Red Soxの勝率を手早く計算しました。では、各シーズンを通しての累積平均が知りたい場合はどうすればよいでしょうか。統計家やスポーツファンは、チーム同士を比較する際にこの平均をよく使います。

各シーズン内で累積平均を計算するには、Chapter Threeで練習した「split-lapply-rbind」の手順に戻ります。まずデータをシーズンごとに分割し、次に各シーズンのwin_loss列に累積平均関数を適用し、最後に値を結合してxtsオブジェクトに戻します。

累積和を求めて、その和に含まれる値の個数で割るカスタム関数cummean()が用意されています。win_loss列を含むredsox_xtsデータはワークスペースに読み込まれています。

指示

100 XP
  • split()を使ってredsox_xtsデータをシーズン(ここではyears)ごとに分割し、redsox_seasonsに代入します。
  • lapply()を使って各シーズンの累積平均を計算します。この演習では、合計(cumsum())を求め、その合計に含まれるエントリ数(seq_along())で割るcummean()関数が用意されています。結果はredsox_ytdに保存します。
  • do.call()とrbindを使って、リストの出力を1つのxtsオブジェクト(redsox_winloss)に変換し、各シーズンを通した勝率の累積平均を格納します。
  • plot.xts()を使って、2013シーズンの累積勝率を表示します。事前に用意されたコードのylim引数はそのままにしてください。