The Capital Asset Pricing Model

Introduktion till portföljriskhantering i Python

Dakota Wixom

Quantitative Analyst | QuantCourse.com

Grundstenen för prissättningsmodeller

CAPM

Capital Asset Pricing Model är den grundläggande byggstenen för många andra prissättningsmodeller och faktormodeller inom finans.

Introduktion till portföljriskhantering i Python

Överavkastning

Överavkastning beräknas genom att subtrahera den riskfria avkastningen från totalavkastningen:

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

Exempel:

Investering i Brasilien:

10% portföljavkastning - 15% riskfri ränta = -5% överavkastning

Investering i USA:

10% portföljavkastning - 3% riskfri ränta = 7% överavkastning

Introduktion till portföljriskhantering i Python

The Capital Asset Pricing Model

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

  • $E(R_{P}) - RF$: Förväntad överavkastning för en aktie eller portfölj P
  • $E(R_{M}) - RF$: Förväntad överavkastning för den breda marknadsportföljen B
  • $RF$: Regional riskfri ränta
  • $\beta_{{P}}$: Portföljbeta, eller exponering, mot den breda marknadsportföljen B
Introduktion till portföljriskhantering i Python

Beräkna beta med kovarians

Historisk beta beräknas med kovarians enligt:

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

  • $\beta_P$: Portföljbeta
  • $Cov(R_P, R_B)$: Kovariansen mellan portföljen (P) och referensmarknadsindexet (B)
  • $Var(R_B)$: Variansen för referensmarknadsindexet
Introduktion till portföljriskhantering i Python

Beräkna beta med kovarians i Python

Förutsatt att du redan har portföljens och marknadens överavkastning i objektet 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
Introduktion till portföljriskhantering i Python

Linjära regressioner

Exempel på linjär regression:

Regressionsformel i matrisnotation:

Introduktion till portföljriskhantering i Python

Beräkna beta med linjär regression

Förutsatt att du redan har portföljens och marknadens överavkastning i objektet 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
Introduktion till portföljriskhantering i Python

R-kvadrat vs justerat R-kvadrat

Så här extraherar du justerat R-kvadrat och R-kvadrat:

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
Introduktion till portföljriskhantering i Python

Nu kör vi en övning!

Introduktion till portföljriskhantering i Python

Preparing Video For Download...