Модель оценки капитальных активов

Введение в управление портфельными рисками на Python

Dakota Wixom

Quantitative Analyst | QuantCourse.com

Основа моделей ценообразования активов

CAPM

Модель оценки капитальных активов (CAPM) — фундаментальная основа многих моделей ценообразования активов и факторных моделей в финансах.

Введение в управление портфельными рисками на Python

Избыточная доходность

Для расчёта избыточной доходности вычтите безрисковую ставку из общей доходности:

$$ \text{Excess Return} = \text{Return} - \text{Risk Free Return} $$

Пример:

Инвестиции в Бразилии:

10% доходность портфеля − 15% безрисковая ставка = −5% избыточная доходность

Инвестиции в США:

10% доходность портфеля − 3% безрисковая ставка = 7% избыточная доходность

Введение в управление портфельными рисками на Python

Модель оценки капитальных активов

$$ E(R_{P}) - RF = \beta_{{P}}(E(R_{M})-RF)\ $$

  • $E(R_{P}) - RF$: Ожидаемая избыточная доходность акции или портфеля P
  • $E(R_{M}) - RF$: Ожидаемая избыточная доходность широкого рыночного портфеля B
  • $RF$: Региональная безрисковая ставка
  • $\beta_{{P}}$: Бета портфеля — подверженность широкому рыночному портфелю B
Введение в управление портфельными рисками на Python

Расчёт беты через ковариацию

Расчёт исторической беты через ковариацию:

$$ \beta_P = \frac{Cov(R_P, R_B)}{Var(R_B)} $$

  • $\beta_P$: Бета портфеля
  • $Cov(R_P, R_B)$: Ковариация портфеля (P) и эталонного рыночного индекса (B)
  • $Var(R_B)$: Дисперсия эталонного рыночного индекса
Введение в управление портфельными рисками на Python

Расчёт беты через ковариацию в Python

Предположим, что избыточная доходность портфеля и рынка уже находятся в объекте Data:

covariance_matrix = Data[["Port_Excess","Mkt_Excess"]].cov()
covariance_coefficient = covariance_matrix.iloc[0, 1]
benchmark_variance = Data["Mkt_Excess"].var()
portfolio_beta = covariance_coefficient / benchmark_variance
portfolio_beta
0.93
Введение в управление портфельными рисками на Python

Линейная регрессия

Пример линейной регрессии:

Формула регрессии в матричной нотации:

Введение в управление портфельными рисками на Python

Расчёт беты с помощью линейной регрессии

Предположим, что избыточная доходность портфеля и рынка уже находятся в объекте Data:

import statsmodels.formula.api as smf
model = smf.ols(formula='Port_Excess ~ Mkt_Excess', data=Data)
fit = model.fit()
beta = fit.params["Mkt_Excess"]
beta
0.93
Введение в управление портфельными рисками на Python

R-квадрат и скорректированный R-квадрат

Для извлечения скорректированного и нескорректированного коэффициентов детерминации:

import statsmodels.formula.api as smf
model = smf.ols(formula='Port_Excess ~ Mkt_Excess', data=Data)
fit = model.fit()
r_squared = fit.rsquared
r_squared
0.70
adjusted_r_squared = fit.rsquared_adj
0.65
Введение в управление портфельными рисками на Python

Давайте потренируемся!

Введение в управление портфельными рисками на Python

Preparing Video For Download...