从不同的指数分布生成新的指数分布
Generating new exponential distribution from different exponential distribution
我有一个 [0,1000] 范围内的 numpy 数组,其指数分布为 lambda_x,我想将此 numpy 数组转换为具有不同指数分布 lambda_y 的数组。如何找到执行此映射的函数?
尝试使用反函数,但没有用。
def inverse(X, lambd):
"""Inverse of exponential distribution """
return -np.log(1-X)/lambd
它应该像取原始指数 X 并通过乘以 λx/λ[=19= 来缩放它们一样简单]y 生成 Y。
一个众所周知的机制是通过inverse transform sampling生成指数。该页面上的第二个示例表明,如果您生成在 0 和 1 之间均匀分布的 U(其中 100*U 对应于分布的百分位数)并使用公式 -ln(1 - U) / λ 转换它们,您将得到速率为 λ 的指数。如果 λ 是 λx 它产生你的 X 分布,如果 λ 是 λy 它产生Y分布。因此,对于给定的百分位数,按 lambda 的比率重新缩放将从一个转换为另一个。
我有一个 [0,1000] 范围内的 numpy 数组,其指数分布为 lambda_x,我想将此 numpy 数组转换为具有不同指数分布 lambda_y 的数组。如何找到执行此映射的函数?
尝试使用反函数,但没有用。
def inverse(X, lambd):
"""Inverse of exponential distribution """
return -np.log(1-X)/lambd
它应该像取原始指数 X 并通过乘以 λx/λ[=19= 来缩放它们一样简单]y 生成 Y。
一个众所周知的机制是通过inverse transform sampling生成指数。该页面上的第二个示例表明,如果您生成在 0 和 1 之间均匀分布的 U(其中 100*U 对应于分布的百分位数)并使用公式 -ln(1 - U) / λ 转换它们,您将得到速率为 λ 的指数。如果 λ 是 λx 它产生你的 X 分布,如果 λ 是 λy 它产生Y分布。因此,对于给定的百分位数,按 lambda 的比率重新缩放将从一个转换为另一个。