Boost inversion_chi_square_distribution 与来自 Matlab 的 chi2inv 共享不同的值,输入自变量(1 - 1e-3, 2)。
有人可以解释我做错了什么吗?
我使用了伽马反转分布。
例子 :
输入:
shape param : n/2
scale : 2
p = 1 - 1e-3;
Matlab -> chi2inv(1-1e-3, 2);
Matlab -> gaminv(1-12-3, n/2, 2);
结果 -> 13.8155。两个函式的结果相同。
C 提升
cdf(boost::math::inverse_gamma_distribution<double> (n/2,2), a); -> a = 1-1e-3; n = 2;
结果:0.13506461276045323
先感谢您。
uj5u.com热心网友回复:
Boost 实作了逆伽马分布,而您需要标准伽马分布的逆累积分布函式 (icdf)。前者是在 1/x 处计算的 gamma 分布,而后者是 gamma 分布的 cdf 的倒数,请参阅
或者以明文形式:
ConditionalExpression[Piecewise[{{2 InverseGammaRegularized[ν/2, 0, x], 0 < x < 1}, {0, x <= 0}}, Infinity], 0 <= x <= 1]
我不知道如何将这个想法应用于候选代码 - 但它太大而无法在评论中发布
0 评论