根据不同的指数分布生成新的指数分布

问题描述 投票:0回答:1

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

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

def inverse(X, lambd):
    """Inverse  of exponential distribution """
    return -np.log(1-X)/lambd
python numpy scipy statistics distribution
1个回答
0
投票

应该像获取原始指数X并乘以λxy来产生Y那样缩放它们一样简单。

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

© www.soinside.com 2019 - 2024. All rights reserved.