S&P 500 の月次リターンを探る
これからの演習では、S&P 500 の月次パフォーマンスを確認します。百聞は一見にしかず。多くのパフォーマンス分析が、まず投資価値の時系列プロットから始まるのはそのためです。
右側には、1986年から2016年8月までの S&P 500 のプロットが表示されています。各プロット点は日中の終値です。チャートにはいくつものブームとバストが見られます。チャートを眺めて、2000年代が投資の「失われた10年」と呼ばれる理由を感じられるでしょうか?
PerformanceAnalytics と xts パッケージはあらかじめ読み込まれており、S&P 500 の日次価格はワークスペース内の変数 sp500 として利用できます。この変数は xts 時系列クラスで、各観測値にタイムスタンプがあります。ここでの目的は、S&P 500 の月次パフォーマンスを記述することです。そのために、まず日次の価格系列を月末の価格へと集計します。次に月次リターンを計算し、テーブルで可視化します。
この演習はコースの一部です
Rで学ぶポートフォリオ分析入門
演習の手順
- 関数 to.monthly() に引数
sp500を与えて実行し、結果をsp500_monthlyに代入します。 sp500_monthlyの先頭6行を表示します。集計により、各月の始値・安値・高値・終値の4列からなる表になっていることに注目してください。sp500_monthlyの「終値」(sp500_monthlyの4列目)を使って、関数Return.calculate()でsp500_returnsを作成します。plot.zoo()を使ってsp500_returnsの時系列をプロットします。- PerformanceAnalytics の関数 table.CalendarReturns() を使い、年×月の形式で月次リターンを表にまとめて表示します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Convert the daily frequency of sp500 to monthly frequency: sp500_monthly
sp500_monthly <-
# Print the first six rows of sp500_monthly
# Create sp500_returns using Return.calculate using the closing prices
sp500_returns <-
# Time series plot
# Produce the year x month table