一起??一年的钱,客户可以购买免费服务,第一次损害将在一年内发生,只要里程小于14英里。
数据:
mean=16和var=2.5的正态分布,如果它是家庭中唯一的汽车,而如果它是第二辆,则对mean=8和var=15的分布是正态分布,60%的客户也有第二辆汽车,假设没有人有第三辆。--第一次损伤(以月份为单位):服从指数分布,平均值为20
variance= 10000.和mean=100的
我的问题是:如果每年只有10个客户,那么客户应该支付多少费用才能使公司不受伤害呢?
我写了我的代码,但我不知道它是否正确,我应该如何继续
cost <- vector("numeric", 10000)
for (i in 1:10000) {
n <- 10
miles <- 0.4 * rnorm(n, 16, sqrt(2.5)) + 0.6 * rnorm(n, 8, sqrt(15))
miles <- (miles>=0) * miles + (miles<0) * 0
firstdamage <- rexp(n, 1/20)
damage <- rgamma(n, shape=1, scale=100)
clientstopay <- ((firstdamage < 12) & (miles < 14))
cost[i] <- sum(clientstopay * damage) / n
} 发布于 2020-11-12 18:04:21
您的代码是错误的,因为您没有模拟第二辆车是否存在。考虑下面的模拟过程。我们采用并行处理来提高效率。
library(future.apply)
cost_per_customer <- function(n) {
n_ <- rbinom(1L, n, 0.6)
miles <- c(rnorm(n, 16, sqrt(2.5)), rnorm(n_, 8, sqrt(15)))
mon <- rexp(n + n_, 1 / 20)
amt <- rgamma(n + n_, shape = 1, scale = 100)
sum(amt[mon <= 12 & miles < 14]) / n
}
simu <- function(n, yrs) future_replicate(yrs, cost_per_customer(n))
plan(multisession)
res <- simu(10, 1e6)
quantile(res, 0.99)在这里,函数cost_per_customer是关键。让_n__是拥有第二辆车的人数。很明显,_n_服从二项分布_B(n,0.6)。然后相应地生成所有_n + n__汽车的英里数、损坏时间和损坏量,并将满足您所述条件的汽车的损坏量相加,除以n (而不是n + n_,因为我们只有n客户)。
创建此函数后,其余部分只需重复运行模拟并计算模拟分布的99%分位数。发行版如下所示

99%分位数是
> quantile(res, 0.99)
99%
102.0923 请注意,您可能得到一个不同的数字,但应该是102左右。
https://stackoverflow.com/questions/64801968
复制相似问题