1

我试图从两个对数正态分布中生成成对的随机值 - 问题是其中一个必须小于另一个。例如:

a1 <- log(47.31)
b1 <- sqrt(2*log(50.84/47.31))
a2 <- log(47.31)
b2 <- sqrt(2*log(59.34/47.31))

x1 <- rlnorm(1,a1,b1)
x2 <- rlnorm(1,a2,b2)

我需要某种方法来确保 x1 < x2。有什么巧妙的方法可以做到这一点吗?

4

1 回答 1

1

嗯,是的,也不是。最简单的方法是检查是否满足条件,如果不满足,则重新生成随机数。但是这样做的结果是您的变量不再以您开始时的统计分布为特征:过滤过程偏差 x1 低和 x2 高。但是,如果您对此感到满意,那么只需循环直到满足所需的条件……理论上这可能需要无限次数的迭代,但我认为您并没有那么不幸:)。

如果两个分布相同,则更简单:如果 x1 > x2 则交换它们(我假设它们不相等!)

于 2012-06-21T20:52:09.143 回答