python - 从不同的指数分布生成新的指数分布
问题描述
我有一个在 [0,1000] 范围内的 numpy 数组,它具有 lambda_x 的指数分布,我想将此 numpy 数组转换为具有不同指数分布 lambda_y 的数组。如何找到执行此映射的函数?
尝试使用反函数,但没有用。
def inverse(X, lambd):
"""Inverse of exponential distribution """
return -np.log(1-X)/lambd
解决方案
它应该像获取原始指数X并通过乘以 λ x /λ y来缩放它们以产生Y一样简单。
一种众所周知的机制是通过逆变换采样生成指数。该页面上的第二个示例显示,如果您生成均匀分布在 0 和 1 之间的 U(其中 100*U 对应于分布的百分位数)并使用公式 -ln(1 - U) / λ 转换它们,您将得到速率为 λ 的指数。如果 λ 是 λ x它会产生你的X分布,如果 λ 是 λ y它会产生Y分布。因此,对于给定的百分位数,按 lambda 的比率重新缩放将从一个转换为另一个。
推荐阅读
- wix - Wix - 卸载时运行批处理文件
- c - 直接从 typedef 结构定义创建指针
- r - 如何提取关于我的线性回归线的信息(例如截距和梯度)
- sql - 计算特定名称的行数
- html - Css flex 等于
- unit-testing - X 单元测试与 .net core 2.2 不兼容
- javascript - 天气应用程序,openweathermap.org/api 数据未加载
- android - 预期为 BEGIN_ARRAY,但为 BEGIN_OBJECT Android Retrofit
- android - 将值从 android 应用程序传递到 webview 表单
- validation - 验证 ui 表单并限制输入的单词