【发布时间】:2015-09-29 21:48:18
【问题描述】:
我想从一系列分布中抽取一些随机变量。但是,返回的值必须不高于某个阈值。 假设我想使用 gamma 分布,阈值为 10,我需要 n=100 个随机数。我现在想要 0 到 10 之间的 100 个随机数。(比如比例和形状是 1。)
得到 100 个随机变量显然很容易......
rgamma(100, shape = 1, rate = 1)
但是我怎样才能实现这些值的范围从 0 到 100?
编辑 为了让我的问题更清楚。绘制的 100 个值应该在 0 和 10 之间缩放。因此绘制的最高值为 10,最低为 0。如果不清楚,请见谅...
编辑 No2 要为我需要的随机数添加一些上下文:我想绘制遵循某些分布的“系统修复时间”。然而,在系统模拟中,修复存在“简单”(即修复时间短)和“复杂”(即修复时间长)的二项式概率。我现在需要一个提供“短修复时间”的功能和一个提供“长修复时间”的功能。阈值将是短修复时间和长修复时间之间的区别。再次,我希望这能让我的问题更清楚一点。
【问题讨论】:
-
@Severin 的方法成功地在“0 到 100 之间”的参数内创建了随机伽马分布。如果您认为它不正确,则说明您没有准确地解释问题。
-
我在问题中添加了一些解释,希望能更清楚。
-
将观察到的样本的最小值和最大值从分布缩放到预先指定的最小值和最大值,在任何可能使用概率分布的情况下几乎肯定是错误的做法。也许您应该详细说明您尝试使用这些随机数做什么以及为什么需要它们具有预先指定的最小值和最大值,尽管它们是随机的。
-
如果简单的维修并不总是短而复杂的维修并不总是长,而是简单的维修往往很短,而复杂的维修往往很长怎么办?因此,对于简单的修复,您可以从概率质量在 0 到 10 之间的分布中绘制修复时间,如果修复很复杂,您可以从“复杂修复长度”分布中提取其修复类型,该分布在其他地方具有概率质量。我假设您出于某种原因生成了一些虚假数据,因此您可以选择所需的模型。
标签: r random distribution