CVaR e seleção de cobertura de perda
Nos exercícios anteriores, você viu que as distribuições T e Gaussian KDE ajustam razoavelmente bem as perdas da carteira durante o período da crise. Dado isso, qual delas é melhor para a gestão de risco? Uma forma de escolher é selecionar a distribuição que fornece a maior cobertura de perda, para cobrir o "pior cenário do pior caso" de perdas.
As distribuições t e kde estão disponíveis e foram ajustadas às losses da carteira de 2007–2008 (os parâmetros ajustados de t estão em p). Você vai calcular a estimativa de CVaR de 99% para um dia para cada distribuição; a maior estimativa de CVaR é então o valor de reserva mais "seguro" a manter, cobrindo as perdas esperadas que excedem o VaR de 99%.
A instância kde recebeu um método especial .expect(), 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 Risco em Python
Instruções do exercício
- Encontre o VaR de 99% usando
np.quantile()aplicado a amostras aleatórias das distribuiçõestekde. - 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 CVaR de 99% 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)