CAPMでベータを計算する
株式リターンをモデル化する方法は多数ありますが、よく知られている方法のひとつが Capital Asset Pricing Model(CAPM) です。
$$ E(R_{P}) - RF = \beta_{{P}}(E(R_{M})-RF)\ $$
- \(E(R_{P}) - RF\): 株式またはポートフォリオ P の超過期待リターン
- \(E(R_{M}) - RF\): 市場全体ポートフォリオ B の超過期待リターン
- \(RF\): 地域の無リスク金利
- \(\beta_{{P}}\): 市場全体ポートフォリオ B へのポートフォリオ P のベータ(エクスポージャ)
statsmodels.formula.api で .ols(formula, data) モデルオブジェクトに対して .fit() メソッドを呼び出すと推定を実行できます。結果の分析には、返された分析オブジェクトに対して .summary() メソッドを使います。
作業スペースには FamaFrenchData DataFrame が用意されており、この演習に必要なデータが含まれています。
この演習はコースの一部です
Pythonで学ぶポートフォリオ・リスク管理入門
演習の手順
- まず、
statsmodels.formula.apiをsmfとしてインポートします。 Portfolio_ExcessをMarket_Excessの関数として説明する回帰モデルを定義します。- 当てはめた回帰モデルの調整済み決定係数を抽出して出力します。
- ポートフォリオのマーケット・ベータを抽出します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import statsmodels.formula.api
import ____ as ____
# Define the regression formula
CAPM_model = smf.ols(formula=____, data=FamaFrenchData)
# Print adjusted r-squared of the fitted regression
CAPM_fit = CAPM_model.fit()
print(CAPM_fit____)
# Extract the beta
regression_beta = CAPM_fit____
print(regression_beta)