ComeçarComece gratuitamente

Comparando CVaR e VaR

O valor condicional em risco (CVaR), ou déficit esperado (ES), pergunta qual será a perda média, condicionada a perdas que excedam algum limite em um determinado nível de confiança. Ele usa o VaR como ponto de partida, mas contém mais informações porque leva em consideração a cauda da distribuição de perdas.

Primeiro, você calculará o VaR de 95% para uma distribuição normal das perdas do portfólio, com a mesma média e desvio padrão do banco de investimento de 2005-2010 portfolio_losses. Em seguida, você usará o VaR para calcular o aR de 95% CVe plotará ambos em relação à distribuição normal.

O site portfolio_losses está disponível em seu espaço de trabalho, assim como a distribuição normal norm de scipy.stats.

Este exercício faz parte do curso

Gerenciamento quantitativo de riscos em Python

Ver Curso

Instruções de exercício

  • Calcule a média e o desvio padrão de portfolio_losses e atribua-os a pm e ps, respectivamente.
  • Encontre o VaR de 95% usando norm's .ppf() method--isso usa os argumentos loc para a média e scale para o desvio padrão.
  • Use o VaR de 95% e o método .expect() da norm para encontrar o tail_loss e use-o para calcular o CVaR com o mesmo nível de confiança.
  • Adicione linhas verticais mostrando o VaR (em vermelho) e o CVaR (em verde) a um gráfico de histograma da distribuição normal.

Exercício interativo prático

Experimente este exercício preenchendo este código de exemplo.

# Compute the mean and standard deviation of the portfolio returns
pm = portfolio_losses.____
ps = portfolio_losses.____

# Compute the 95% VaR using the .ppf()
VaR_95 = norm.ppf(0.95, loc = ____, scale = ____)
# Compute the expected tail loss and the CVaR in the worst 5% of cases
tail_loss = norm.____(lambda x: x, loc = ____, scale = ____, lb = VaR_95)
CVaR_95 = (1 / (1 - 0.95)) * ____

# Plot the normal distribution histogram and add lines for the VaR and CVaR
plt.hist(norm.rvs(size = 100000, loc = pm, scale = ____), bins = 100)
plt.axvline(x = VaR_95, c='r', label = "VaR, 95% confidence level")
plt.axvline(x = ____, c='g', label = "CVaR, worst 5% of outcomes")
plt.legend(); plt.show()
Editar e executar código