从不同的指数分布中生成新的指数分布

时间:2020-05-10 20:28:47

标签: python numpy scipy statistics distribution

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

试图使用反函数,但是没有用。

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

1 个答案:

答案 0 :(得分:1)

应该像获取原始指数 X 并乘以λ x y 来产生 Y

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

相关问题