拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 提升卡方反演

提升卡方反演

白鹭 - 2022-01-25 1992 0 0

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 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *