【问题标题】:how to create a random loss sample in r using if function如何使用 if 函数在 r 中创建随机损失样本
【发布时间】:2016-03-15 11:58:38
【问题描述】:

我目前正在为一个学校项目生成一些随机数据。

我使用二项分布在 R 中创建了一个变量,以确定观察是否有损失 yes=1 或 not=0。 之后,我尝试使用随机分布为所有已经有损失(= 1)的观察结果生成损失量。

由于我的损失金额是一个百分比,它可以在 0 之间

What Is The Intuition Behind Beta Distribution @ stats.stackexchange

在第三步中,我正在寻找一个 if 语句,它结合了我的两个变量。

请在下面找到我的代码(仅适用于 Loss_Y_N 变量):

Loss_Y_N = rbinom(1000000,1,0.01)
Loss_Amount = dbeta(x, 10, 990, ncp = 0, log = FALSE)

理想情况下,我可以将两者组合成类似的东西

if(Loss_Y_N=1 then Loss_Amount=dbeta(...) #... is meant to be a random variable with mean=0.15 and should be 0<x=<1
else Loss_Amount=0) 

任何意见都非常感谢!

【问题讨论】:

  • 所以,澄清一下,您需要生成一个介于 0 和 1 之间的随机数,其均值是特定均值吗?您可能可以编辑您的问题以将其指定为问题并避免所有额外的绒毛
  • Loss_Amount = dbeta(...) * Loss_Y_N 。只要Loss_Y_N为0,Loss amount就是0。
  • 谢谢你们两位的cmets。非常感激。您能否向我解释一下我应该在括号中添加什么以使损失分布在 15% 左右但允许它在 0
  • @Ben Knoble 是的,也许你是对的。实际上,我只需要找出如何最好地模拟 0 到 100% 之间的损失分布,平均值为 15%。
  • 我在 Alex 中编辑了您的评论,但必须对其进行审查,因为我的代表仍然很低。希望它能为其他人澄清问题

标签: r if-statement distribution data-generation beta-distribution


【解决方案1】:

为您的损失比例创建一个向量。用从 beta 中提取的数据填充与损失相对应的元素。调整 beta 的参数,直到获得所需的结果。

N <- 100000
loss_indicator <- rbinom(N, 1, 0.1)
loss_prop <- numeric(N)
loss_prop[loss_indicator > 0] <- rbeta(sum(loss_indicator), 10, 990)

【讨论】:

  • 感谢您的评论 - 非常感谢。我不明白的是,当我遵循您的代码时,我没有得到任何完全损失的观察结果(这意味着我的 loss_prop 变量应该在 1 左右?我对结果的解释是否错误?
  • @Alex_T_86 哎呀,忽略了&gt; 0。立即尝试。
  • 谢谢!现在我只需要使用参数 - 谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多