参数法计算条件在险价值CVaR

在计算条件在险价值(Cvar)的过程中发现了一些有趣的东西

1.基础知识

  • cdf累积分布函数,在给定某个具体临界值 z的条件下,计算概率p
  • ppf累积分布函数的反函数 scipy.norm.ppf, 在给定概率p的条件下求z
  • pdf/pmf,连续型/离散型的概率密度函数,给定z的条件下求概率密度函数对应的值

img

2 Var值计算:

假设投资组合服从均值为\(\mu\),标准差为\(\sigma\),的正态分布,使用scipy计算var,1-prob=0.95

z = norm.ppf(prob)
-VaR = mean+z*std

3 计算CVaR,一共有两种方式,

方法一:
z = norm.pdf(norm.ppf(prob)) / prob
CVaR = mean-z * std

方法二:
from scipy.integrate import quad
CVaR = quad(lambda x:norm.ppf(x,mean,std), 1-prob, 1)/prob

结果是一样的,由此得出结论:累计分布函数的反函数关于概率的积分(注意区间)结果和概率密度函数值一样

验证代码

import numpy as np
from scipy.stats import norm
from scipy.integrate import quad
x = np.linspace(-2.5,2.5,100)


for i in x:
    y1 = norm.pdf(i)

    prob = norm.cdf(i)
    y2 = quad(lambda x:norm.ppf(x), 1-prob, 1)
    print(abs(y1-y2[0])<=0.0001)
posted @ 2023-01-30 15:04  Franciszw  阅读(18)  评论(0编辑  收藏  举报