R で米国 ETF パフォーマンス分析
Contents
米国の ETF について、各資産クラスの代表的な銘柄をリストアップし、主要なパフォーマンス指標をまとめてみたい。データの取得・作図・パフォーマンス指標の計算は、全て R を使って行う。
ライブラリの読み込み
まずは、今回の記事に必要なライブラリを読み込みから。
|
|
データ
この記事で利用するデータや関数は全て以下の RData
ファイルにまとめらている。
以降の記事で、全ての関数やデータのダウンロード方法をコード付きで解説するが、このファイルダウンロードし読み込めば、手元で環境を再現することが可能だ。
|
|
ETF リスト
分析対象の ETF を tibble
形式でリストアップする。ETFdb を参考に、主要なインデックスから、資産規模 (AUM) が大きく、上場からの期間が長いものを選択している。信託報酬などのコストの多寡は考慮していない。
これは、もちろん網羅的なリストではなく、それを目指したものでもないが、今後順次増やしていく予定だ。
|
|
データのダウンロード
Yahoo Finance からダウンロード
{tidyquant}
を利用して Yahoo Finance からデータを取得する。 {tidyquant}
は Tidy な data.frame
として株価をダウンロードしてくれるので便利だ。
R から Yahoo Finance のデータを読み込む際には、一般的に、 {quantmod}
が利用されることが多いようだ。しかし {quantmod}
では、 xts
でデータが取得されるため {tidyverse}
のパッケージ群を利用することができない。個人的には、データは data.frame
(tibble 含む
) に統一しておき {dplyr}
や {ggplot2}
などのパッケージの関数を扱えるようにしておいたほうが、快適にデータ分析を進められると思う。
ただし、一部の時系列分析用のパッケージなどでは、入力に xts
を求めるものがあるので、その場合は都度変換して対処する方針だ。今回も {PerformanceAnalytics}
を利用する際に xts
に変換する処理が必要になる。
それでは、先程用意した ETF リストの銘柄の株価を全て取得してみよう。
|
|
データは、典型的な四本値 + 分割・配当調整済みの終値 (adjusted) という構成だ。
|
|
symbol | date | open | high | low | close | volume | adjusted |
---|---|---|---|---|---|---|---|
SPY | 1993-01-29 | 43.97 | 43.97 | 43.75 | 43.94 | 1003200 | 26.58 |
SPY | 1993-02-01 | 43.97 | 44.25 | 43.97 | 44.25 | 480500 | 26.77 |
SPY | 1993-02-02 | 44.22 | 44.38 | 44.12 | 44.34 | 201300 | 26.83 |
SPY | 1993-02-03 | 44.41 | 44.84 | 44.38 | 44.81 | 529400 | 27.11 |
SPY | 1993-02-04 | 44.97 | 45.09 | 44.47 | 45 | 531500 | 27.23 |
SPY | 1993-02-05 | 44.97 | 45.06 | 44.72 | 44.97 | 492100 | 27.21 |
VXX を結合
VIX 短期先物の ETN として有名な VXX は、2019 年 1 月 30 日に償還を迎えてしまっている。後継となる銘柄が VXXB として登場しているが、まだ 2 年弱しか取引されておらず、分析対象として不十分である。そのため、VXX のデータを別途 csv で用意し、Yahoo からダウンロードした最新の情報と結合する。(ちなみに、VXXB はその後、元々と同じ VXX に名称変更された。上述の ETF リストには、名称変更後の VXX を指定している。この方が、旧 VXX と結合する際にも好都合である。)
|
|
日次リターンを計算
分析対象となる日次リターンを計算する。
|
|
データの確認
データの前処理が完了したタイミングで、利用可能期間や NA
の有無などを確認しておく。
|
|
symbol | index | start | end | na | |
---|---|---|---|---|---|
1 | DIA | Dow 30 | 1998-01-21 | 2019-11-12 | 0 |
2 | FXB | GBP | 2006-06-27 | 2019-11-12 | 0 |
3 | FXE | EUR | 2005-12-13 | 2019-11-12 | 0 |
4 | FXF | CHF | 2006-06-27 | 2019-11-12 | 0 |
5 | FXY | JPY | 2007-02-14 | 2019-11-12 | 0 |
6 | GLD | Gold | 2004-11-19 | 2019-11-12 | 0 |
7 | HYG | High Yield | 2007-04-12 | 2019-11-12 | 0 |
8 | IEF | 7-10 Year | 2002-07-31 | 2019-11-12 | 0 |
9 | IJH | S&P MidCap 400 | 2000-05-30 | 2019-11-12 | 0 |
10 | IJR | S&P SmallCap 600 | 2000-05-30 | 2019-11-12 | 0 |
11 | IWB | Russel 1000 | 2000-05-22 | 2019-11-12 | 0 |
12 | IWM | Russel 2000 | 2000-05-30 | 2019-11-12 | 0 |
13 | IYR | Dow Jones U.S. Real Estate | 2000-06-20 | 2019-11-12 | 0 |
14 | LQD | Investment Grade | 2002-07-31 | 2019-11-12 | 0 |
15 | PFF | Preffered Stock | 2007-04-02 | 2019-11-12 | 0 |
16 | QQQ | NASDAQ 100 | 1999-03-11 | 2019-11-12 | 0 |
17 | SHV | Short Term | 2007-01-12 | 2019-11-12 | 0 |
18 | SHY | 1-3 Year | 2002-07-31 | 2019-11-12 | 0 |
19 | SLV | Silver | 2006-05-01 | 2019-11-12 | 0 |
20 | SPY | S&P 500 | 1993-02-01 | 2019-11-12 | 0 |
21 | TIP | Inflation Protected | 2003-12-08 | 2019-11-12 | 0 |
22 | TLT | 20+ Year | 2002-07-31 | 2019-11-12 | 0 |
23 | USO | Crude Oil | 2006-04-11 | 2019-11-12 | 0 |
24 | UUP | USD | 2007-03-02 | 2019-11-12 | 0 |
25 | VXX | S&P 500 VIX Short-Term Future | 2009-02-02 | 2019-11-12 | 0 |
26 | XLB | Materials | 1998-12-23 | 2019-11-12 | 0 |
27 | XLE | Energy | 1998-12-23 | 2019-11-12 | 0 |
28 | XLF | Financials | 1998-12-23 | 2019-11-12 | 0 |
29 | XLI | Industrial | 1998-12-23 | 2019-11-12 | 0 |
30 | XLK | Technology | 1998-12-23 | 2019-11-12 | 0 |
31 | XLP | Consumer Staples | 1998-12-23 | 2019-11-12 | 0 |
32 | XLU | Utilities | 1998-12-23 | 2019-11-12 | 0 |
33 | XLV | Health | 1998-12-23 | 2019-11-12 | 0 |
34 | XLY | Consumer Discretionary | 1998-12-23 | 2019-11-12 | 0 |
関数リスト
記事内で利用する関数を読み込む。現時点で全てを理解する必要はなく、以降の記事で登場してきたタイミングで見返してもらえればよい。 {ggplot2}
のテーマである theme_my()
以外の関数は全て、引数に前述までに用意した data
を受け取る関数である。
|
|
資産クラス間の相関係数
ETF を分析する目的は、様々な資産クラスへの分散投資にるリスク分散だ。まず、株式・米国債・不動産・コモディティ・ボラティリティの 5 つの資産クラスから代表的な銘柄を選んで、相関関係を見てみる。
|
|

株式 (SPY) との関係でみると、
- 不動産 (IYR) は 「強い正の相関」
- 金 (GLD) は 「無相関」
- 米国債 (TLT) は 「負の相関」
- ボラティリティ (VXX) は 「強い負の相関」
という、概ね想像通りの結果になった。
なお、資産クラス間の相関関係は、常に一定ではなく、時期によって変動する。特に金融危機時には、多くの資産が正の相関になることが知られている。こうした時変的な相関係数は、DCC モデルなどによってモデル化することができるが、この記事では触れない。
各資産クラス毎の分析
以降で、淡々と各資産クラスごとのパフォーマンスを見ていく。パフォーマンスのプロットは PerformanceAnalytics::charts.PerformanceSummary
を参考に {ggplot2}
で作成したものである。
パフォーマンス指標の説明は以下の通りだ。これらも順次増やしていきたい。
指標 | 説明 |
---|---|
Sharpe |
シャープレシオ (年換算) |
Alpha |
CAPM アルファ |
Beta |
CAPM ベータ |
Avg_Ret |
年率リターン |
Cum_Ret |
累積リターン |
StdDev |
標準偏差 (年換算) |
MaxDD |
最大ドローダウン |
エクイティ ETFs
インデックスの種類
S&P 指数とラッセル指数は、階層構造になっていて、若干覚えにくいため、ここに整理しておく。
S&P US Index
- S&P Composite 1500
- S&P 500
- S&P MidCap 400
- S&P SmallCap 600
- S&P 900 (Upper)
- S&P 500
- S&P MidCap 400
- S&P 1000 (Lower)
- S&P MidCap 400
- S&P SmallCap 600
- S&P Composite 1500
Russel US Index
- Russel 3000
- Russel 1000 (Upper)
- Russel 2000 (Lower)
- Russel 3000
データの準備
|
|
パフォーマンス (プロット)
|
|

パフォーマンス (テーブル)
|
|
|
|
相関係数
|
|

セクター ETFs
セクターの分類
セクターの分類方法にはいくつかの種類があるが、ここでは GICS Sector の分類に従った Select Sector SPDR ETFs シリーズの ETF を利用する。現在 11 のセクターに分類されているが、XLRE と XLC は近年追加されたものであるため、今回は除外する。
シンボル | セクター | 主要銘柄 | メモ |
---|---|---|---|
XLB | Materials | LIN, DD, ECL | |
XLE | Energy | XOM, CVX, COP | |
XLF | Finance | BRK.B, JPM, BAC | |
XLI | Industrial | BA, HON, UNP | |
XLK | Technology | MSFT, AAPL, V | |
XLP | Consumer Staples | PG, KO, PEP | 生活必需品 |
XLU | Utilities | NEE, DUK, D | |
XLV | Health | JNJ, PFE, UNH | |
XLY | Consumer Discretionary | AMZN, HD, MCD | 一般消費財 |
XLRE | Real Estate | AMT, CCI, PLD | 2015-10-08 から取引開始 |
XLC | Communication Service | FB, GOOG, DIS | 2018-11-03 から取引開始 |
データの準備
|
|
パフォーマンス (プロット)
|
|

パフォーマンス (テーブル)
|
|
|
|
相関係数
|
|

米国債 ETFs
データの準備
|
|
パフォーマンス (プロット)
|
|

パフォーマンス (テーブル)
|
|
|
|
相関係数
|
|

社債 ETFs
データの準備
|
|
パフォーマンス (プロット)
|
|

パフォーマンス (テーブル)
|
|
|
|
相関係数
|
|

不動産 ETFs
データの準備
|
|
パフォーマンス (プロット)
|
|

パフォーマンス (テーブル)
|
|
|
|
相関係数
|
|

コモディティ ETFs
データの準備
|
|
パフォーマンス (プロット)
|
|

パフォーマンス (テーブル)
|
|
|
|
相関係数
|
|

ボラティリティ ETFs
データの準備
|
|
パフォーマンス (プロット)
|
|

パフォーマンス (テーブル)
|
|
|
|
相関係数
|
|

FX ETFs
データの準備
|
|
パフォーマンス (プロット)
|
|

パフォーマンス (テーブル)
|
|
|
|
相関係数
|
|
