Scipy - 从自定义概率密度函数进行逆采样方法
我正在尝试从一个自定义的概率密度函数(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 = integral(f(x, alpha, mean(x))dx) 从 0 到 y,其中 y 是未知的,u 是一个在 0 和 1 之间的均匀随机变量。
这个积分包含了伽马函数和不完全伽马函数,所以尝试反转它有点麻烦。任何帮助都非常欢迎。
非常感谢!
祝好