CVaR e seleção de cobertura de perdas
Nos exercícios anteriores, você viu que as distribuições T e Gaussiana KDE se ajustam muito bem às perdas do portfólio no período da crise. Diante disso, qual dessas opções é a melhor para o gerenciamento de riscos? Uma maneira de escolher é selecionar a distribuição que oferece a maior cobertura de perdas, para cobrir o "pior cenário possível" de perdas.
As distribuições t
e kde
estão disponíveis e foram ajustadas ao portfólio de 2007-2008 losses
(os parâmetros ajustados det
estão em p
). Você obterá a estimativa de 99% CVaR de um dia para cada distribuição; a maior estimativa CVaR é, então, o valor de reserva "mais seguro" a ser mantido, cobrindo as perdas esperadas que excedem o 99% VaR.
A instância kde
recebeu um método .expect()
especial, apenas para este exercício, para calcular o valor esperado necessário para o CVaR.
Este exercício faz parte do curso
Gerenciamento quantitativo de riscos em Python
Instruções do exercício
- Encontre o VaR de 99% usando
np.quantile()
aplicado a amostras aleatórias das distribuiçõest
ekde
. - Calcule a integral necessária para as estimativas de CVaR usando o método
.expect()
para cada distribuição. - Encontre e exiba as estimativas de 99% CVaR para ambas as distribuições.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Find the VaR as a quantile of random samples from the distributions
VaR_99_T = np.quantile(t.rvs(size=1000, *p), ____)
VaR_99_KDE = np.quantile(kde.resample(size=1000), ____)
# Find the expected tail losses, with lower bounds given by the VaR measures
integral_T = t.____(lambda x: x, args = (p[0],), loc = p[1], scale = p[2], lb = ____)
integral_KDE = kde.____(lambda x: x, lb = ____)
# Create the 99% CVaR estimates
CVaR_99_T = (1 / (1 - ____)) * integral_T
CVaR_99_KDE = (1 / (1 - ____)) * integral_KDE
# Display the results
print("99% CVaR for T: ", CVaR_99_T, "; 99% CVaR for KDE: ", CVaR_99_KDE)