首页 > 解决方案 > R中的组合蒙特卡罗模拟

问题描述

蒙特卡罗模拟的目的是估计保险公司的损失分布。

我正在使用频率严重性模型,即

S = sum_{i=1}^{N}X_{i}

其中 N 是丢失事件的随机数, X_{i} 是丢失严重性。

我得到 2 个 excel 文件(一个用于大文件,一个用于损耗损失)——假设我适合最好的分布,例如:

大额索赔:索赔频率通过泊松分布 Poi(200) 建模,严重性通过对数正态分布 lognormal(a,b) 建模。

减员索赔:索赔频率通过泊松分布 Poi(5000) 建模,严重性通过对数正态分布 lognormal(x,y) 建模。

现在我想运行一个蒙特卡罗模拟来估计来年的损失。

在 python 中,可以计算蒙特卡罗模拟:

def loss(r, loc, sig, scale, lam):
    X = []
    for x in range(5000):  # up to 5000 loss events considered
        if(r < poisson.cdf(x, lam)):  # x denotes a loss number
            out = 0
        else:
            out = lognorm.rvs(s=sig, loc=loc, scale=scale)
        X.append(out)
    return np.sum(X)  # = L_1 + L_2 + ... + L_n


#Monte Carlo Sim.
losses = []
for _ in range(1000):
    r = np.random.random()
    losses.append(loss(r, loc, sig, scale, lam))

但这仅适用于消耗损失的情况......我想在一个模拟中结合这两种情况以获得总损失分布......也许在 R 而不是 Python 中。

希望你能帮助我。

先感谢您

标签: rmontecarlo

解决方案


推荐阅读