【问题标题】:Generating new exponential distribution from different exponential distribution从不同的指数分布生成新的指数分布
【发布时间】:2020-05-10 20:28:47
【问题描述】:

我有一个范围为 [0,1000] 的 numpy 数组,该数组具有 lambda_x 的指数分布,我想将此 numpy 数组转换为具有不同指数分布 lambda_y 的数组。如何找到执行此映射的函数?

尝试使用反函数,但没有成功。

def inverse(X, lambd):
    """Inverse  of exponential distribution """
    return -np.log(1-X)/lambd

【问题讨论】:

  • 不清楚你所说的转换数组是什么意思,我理解它是一个介于 10 和 1000 之间的值列表,据说来自指数分布(这很奇怪,因为指数分布的范围为 0, +inf)。您是否尝试生成具有 lambda_y 均值的指数分布样本?
  • 已更正为 [0,1000] 是的,我正在尝试使用不同的 lambda 生成新分布。让我们说 lambda_y

标签: python numpy scipy statistics distribution


【解决方案1】:

它应该像获取原始指数 X 并通过乘以 λxy 来缩放它们以产生 Y的。

众所周知的机制是通过inverse transform sampling 生成指数。该页面上的第二个示例显示,如果您生成均匀分布在 0 和 1 之间的 U(其中 100*U 对应于分布的百分位数)并使用公式 -ln(1 - U) / λ 转换它们,您将得到速率为 λ 的指数。如果 λ 是 λx 它会产生你的 X 分布,如果 λ 是 λy 它会产生 Y 分布.因此,对于给定的百分位数,按 lambda 的比率重新调整比例将从一个转换为另一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 2011-05-11
    • 2014-01-06
    • 1970-01-01
    相关资源
    最近更新 更多