Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我试图从两个对数正态分布中生成成对的随机值 - 问题是其中一个必须小于另一个。例如:
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。有什么巧妙的方法可以做到这一点吗?
嗯,是的,也不是。最简单的方法是检查是否满足条件,如果不满足,则重新生成随机数。但是这样做的结果是您的变量不再以您开始时的统计分布为特征:过滤过程偏差 x1 低和 x2 高。但是,如果您对此感到满意,那么只需循环直到满足所需的条件……理论上这可能需要无限次数的迭代,但我认为您并没有那么不幸:)。
如果两个分布相同,则更简单:如果 x1 > x2 则交换它们(我假设它们不相等!)