Introducere în gestionarea riscului de portofoliu în Python
Dakota Wixom
Quantitative Analyst | QuantCourse.com
Modelul de Evaluare a Activelor Financiare reprezintă fundamentul multor modele de evaluare și modele factoriale în finanțe.
Pentru a calcula randamentele excedentare, scădeți rata de rentabilitate fără risc din randamentul total:
$$ \text{Excess Return} = \text{Return} - \text{Risk Free Return} $$
Exemplu:
Investiție în Brazilia:
10% Randament portofoliu - 15% Rată fără risc = -5% Randament excedent
Investiție în SUA:
10% Randament portofoliu - 3% Rată fără risc = 7% Randament excedent
$$ E(R_{P}) - RF = \beta_{{P}}(E(R_{M})-RF)\ $$
Pentru a calcula beta istoric prin covarianță:
$$ \beta_P = \frac{Cov(R_P, R_B)}{Var(R_B)} $$
Presupunând că aveți deja randamentele excedentare ale portofoliului și ale pieței în obiectul 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
Exemplu de regresie liniară:

Formula de regresie în notație matriceală:

Presupunând că aveți deja randamentele excedentare ale portofoliului și ale pieței în obiectul 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
Pentru a extrage valorile R-pătrat și R-pătrat ajustat:
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
Introducere în gestionarea riscului de portofoliu în Python