【问题标题】:How to calculate percentile(Var) for different quartile values?如何计算不同四分位数的百分位数(Var)?
【发布时间】:2021-08-16 10:54:56
【问题描述】:

以下是我的主要 python 代码。从这里我调用称为 varmethod 的方法。并以数组的形式传递多个四分位数。


CI = [60,70,80,90.5]
cl_obj.varmethod(CI,simulation)

这是我的 varmethod:

def varmethod(self,CI,simulationDf):
    total = simulationDf['Grand Total'].sum() 
    print(total)
    percentiles = np.percentile(total, CI)
    print(percentiles)
    df = pd.DataFrame(CI,columns=['CI'])
    df['Var'] = percentiles
    print(df)

每当我运行时,它都会显示如下结果:

4.820088072712291e+72
[4.82008807e+72 4.82008807e+72 4.82008807e+72 4.82008807e+72]
         CI           Var
    0  60.0  4.820088e+72
    1  70.0  4.820088e+72
    2  80.0  4.820088e+72
    3  90.5  4.820088e+72

它不能正确计算百分位数(Var)。

【问题讨论】:

    标签: python pandas dataframe numpy percentile


    【解决方案1】:

    Percentile 函数在数组上运行。一个元素的数组的 50% 百分位是元素本身。
    所以要么你不应该 sum() 你的 Grand Total 列,要么你只想将 sum() 的输出乘以给定的小数,例如 0.6 0.7 0.8 .....

    我相信正确的方法是percentiles = np.percentile(total, simulationDf['Grand Total'].values)

    无论如何我不知道你在计算什么样的 VaR,但是 10^72 的幂的数字似乎太大了

    【讨论】:

    • 这里的总和只是模拟总和的总和。
    • 是的,那么您想将百分位数直接应用于损失模拟以计算 VaR
    • 我觉得你还没有理解 VaR 是如何工作的
    • 你能解释一下吗?
    • 这里我只需要计算给定四分位数的百分位数。
    猜你喜欢
    • 2021-12-26
    • 2013-08-31
    • 2011-12-29
    • 2013-06-20
    • 2021-02-26
    • 1970-01-01
    • 2020-10-07
    • 2020-06-06
    • 2021-11-29
    相关资源
    最近更新 更多