ポートフォリオのリターンとリスクをPythonで計算する
りく
はじめに
「分散投資をするとリスクが減る」とはよく聞く言葉ですが、具体的にどう計算するのでしょうか?
この記事では、複数銘柄からなるポートフォリオのリターンとリスクを、**現代的ポートフォリオ理論(MPT)**に基づいてPythonで計算します。
ポートフォリオの基礎
リターンの計算
ポートフォリオ全体のリターンは、各銘柄のリターンを加重平均します:
$$R_p = \sum_{i=1}^{n} w_i R_i$$ここで:
- $R_p$ = ポートフォリオのリターン
- $w_i$ = 銘柄$i$のウェイト(投資比率)
- $R_i$ = 銘柄$i$のリターン
- $n$ = 銘柄数
リスク(標準偏差)の計算
ポートフォリオのリスクは、単なる加重平均ではなく、共分散行列を使います:
$$\sigma_p = \sqrt{\mathbf{w}^T \Sigma \mathbf{w}}$$ここで:
- $\sigma_p$ = ポートフォリオの標準偏差(リスク)
- $\mathbf{w}$ = ウェイトベクトル
- $\Sigma$ = 共分散行列
- $\mathbf{w}^T$ = ウェイトベクトルの転置
分散(バリアンス)は:
$$\sigma_p^2 = \sum_{i=1}^{n} \sum_{j=1}^{n} w_i w_j \sigma_{ij}$$ここで$\sigma_{ij}$は銘柄$i$と銘柄$j$の共分散です。
Pythonでの実装
Step 1: データ取得
| |
Step 2: 日次リターンの計算
| |
Step 3: 年率換算リターンの計算
| |
Step 4: 共分散行列の計算
| |
Step 5: 相関行列
| |
Step 6: ポートフォリオのリターンとリスク計算
| |
効果的フロンティアの計算
様々なウェイト組み合わせを試す
| |
効果的フロンティアの可視化
| |
分散投資の効果
等ウェイト vs 個別銘柄
| |
まとめ
この記事では、ポートフォリオのリターンとリスク計算を学びました。
キーポイント:
- ポートフォリオリターン = 加重平均
- ポートフォリオリスク = $\sqrt{\mathbf{w}^T \Sigma \mathbf{w}}$
- 分散効果があるため、ポートフォリオのリスク < 個別銘柄の平均リスク
- 効果的フロンティア上で最適な組み合わせを探せる
次のステップ:
- シャープレシオ最大化を数学的最適化で解く
- ブラック・リターマンモデルを応用する
- 実際の資産配分に応用する
関連記事:
参考リンク: