【问题标题】:Create Simulation in R在 R 中创建模拟
【发布时间】:2021-07-13 14:15:34
【问题描述】:

我有以下问题:

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

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

【问题讨论】:

  • 你尝试过什么,你在哪里卡住了?你知道runifrexp这样的函数吗?
  • 当然。什么部分让你绊倒了
  • 我完全不知道应该从哪里开始。是的,我知道这些功能@GregorThomas
  • 我其实不知道这个问题的主要问题,但我知道几个用于生成随机变量的函数@Dason
  • @Alynn 不幸的是,如果您不知道从哪里开始,那么 SO 不是一个好地方。它是为特定的问题和答案而设计的,而不是针对主题的一般教程的请求。你可以向你的教授询问更多关于你被困在哪里的细节吗?

标签: r simulation probability exponential


【解决方案1】:

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

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

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 的概率。

【讨论】:

  • 是的,这确实是一个家庭作业,我的讲师说要自己尝试,但不幸的是我完全不知道该怎么做。非常感谢您的详细解释,我会研究一下。
  • @Alynn 我明白了,不用担心。如果还有什么我可以添加到我的答案中可能会有所帮助的内容,请告诉我。
猜你喜欢
  • 2019-10-03
  • 2023-03-24
  • 2019-08-07
  • 2013-09-23
  • 1970-01-01
  • 1970-01-01
  • 2017-04-07
  • 2019-06-12
  • 1970-01-01
相关资源
最近更新 更多