【问题标题】:Generate random values using an empirical cumulative distribution function [duplicate]使用经验累积分布函数生成随机值
【发布时间】:2022-01-22 00:45:26
【问题描述】:

我有一组数据点,用于生成我的经验 CDF,如下所示(为了简化事情,我减少了这个问题的点数,但没关系):

鉴于这些数据和绘图,我需要以某种方式生成遵循此分布的随机值。我承认在概率方面我很生疏,但据我所知,我需要先生成 PDF,然后从那里我可以做我想做的事。那准确吗?或者获得我想要的东西的最佳方式是什么?

如果有兴趣给出答案示例,这里是 ECDF 图数据点的 X 和 Y 数组。我正在使用 Python,但我想一个与语言无关的答案也会很有帮助

x = [107.6697676209896, 430.70331251794784, 1975.0646306785532, 7793.524079329409, 27569.66699567533, 62566.73646946178, 222847.1449910263, 832591.8949493016, 2827054.7454871265, 10000733.572934577]
y = [0, 0.04812202549318534, 0.09825964339269633, 0.14190143419466905, 0.27204351414405636, 0.46590411495145756, 0.6008552899988212, 0.6796719668120879, 0.8400864397710662, 1]

【问题讨论】:

标签: python probability cumulative-distribution-function


【解决方案1】:

标准的“图形”答案是您选择一个介于 0.0 和 1.1 之间的随机数,然后在您的 y 轴上找到它。向右移动,直到你点击你的图表。然后向下移动到x 轴,这就是值。

如果你的图真的只是一个经验图,那么第二步是通过一个单调递增的列表进行二分搜索。然后将找到的值(或最接近的值)的索引映射到 x 值,这是您要生成的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    相关资源
    最近更新 更多