【发布时间】:2011-11-30 13:42:27
【问题描述】:
我正在尝试从自定义概率密度函数 (PDF) 执行逆采样。我只是想知道这是否可能,即整合 PDF,反转结果,然后为给定的统一数字求解。 PDF 的形状为 f(x, alpha, mean(x))=(1/Gamma(alpha+1)(x))((x*(alpha+1)/mean(x))^(alpha+1 ))exp(-(alpha+1)*(x/mean(x)) 其中 x > 0。从形状来看,只有低于 150 的值是相关的,而对于我想要做的低于 80 的值是足够好。不过,扩大范围应该不会太难。
我尝试过反演方法,但只找到了一种数值方法来进行积分,考虑到我需要反转函数来求解,这不一定有帮助:
u = integer(f(x, alpha, mean(x))dx) 从 0 到 y,其中 y 未知,u 是 0 到 1 之间的均匀随机变量。
积分有一个 gamma 函数和一个不完整的 gamma 函数,所以试图反转它有点乱。欢迎任何帮助。
提前致谢。
干杯
【问题讨论】:
-
您的 PDF 的域是什么?除非您以某种方式限制域,否则您拥有的功能是不可规范化的。
-
抱歉完整的PDF是:(1/Gamma(alpha+1)(x))((x*(alpha+1)/mean(x))^(alpha+1))exp (-(alpha+1)*(x/mean(x)) 域是0到inf
-
你的mean(x)只是一个参数mean_x吗?给定 x 只是评估 pdf 的点,x 的平均值就是 x。
-
是要假设的参数,所以mean(x) != x
-
你能以明确的形式写你的 pdf,例如作为python表达式?我的印象是,标准化后的 pdf 看起来就像一个标准的 gamma pdf,在 numpy.random 和 scipy.stats 中。