微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 R 中创建模拟

如何解决在 R 中创建模拟

我有以下问题:

一家意外伤害保险公司有 1000 名保单持有人,每个人都会 在下个月独立提出索赔的概率为 5%。 假设索赔的金额是独立的指数 均值为 800 美元的随机变量。

有谁知道如何在 R 中创建模拟来估计概率 这些索赔的总和超过 50,000 美元?

解决方法

这听起来像是一项家庭作业,因此如果您不确定如何处理,最好咨询您的老师。考虑到这一点,以下是我进行模拟的方法:

首先,创建一个函数,根据您在问题描述中给出的值,从指数分布生成值并求和这些值。

get_sum_claims <- function(n_policies,prob_claim,mean_claim) {
  sum(rexp(n = n_policies*prob_claim,rate = 1/mean_claim))
} 

接下来,让这个函数多次返回所有声明的总和,并存储结果。带有 map_dbl 的行执行此操作,实质上是指示 R 从 get_sum_claims 函数返回 100000 个模拟索赔总和。

library(tidyverse)

claim_sums <- map_dbl(1:100000,~ get_sum_claims(1000,0.05,800))

最后,我们可以使用以下代码计算索赔总和大于 50000 的概率:

sum(claim_sums > 50000)/length(claim_sums)

这给出了一个相当可靠的估计值,约为 0.046,因为在给定的月份索赔总额超过 50000 的概率。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。