#include <boost/math/distributions/inverse_chi_squared.hpp>
namespace boost{ namespace math{ template <class RealType = double, class Policy = policies::policy<> > class inverse_chi_squared_distribution { public: typedef RealType value_type; typedef Policy policy_type; BOOST_MATH_GPU_ENABLED inverse_chi_squared_distribution(RealType df = 1); // Not explicitly scaled, default 1/df. BOOST_MATH_GPU_ENABLED inverse_chi_squared_distribution(RealType df, RealType scale = 1/df); // Scaled. BOOST_MATH_GPU_ENABLED RealType degrees_of_freedom()const; // Default 1. BOOST_MATH_GPU_ENABLED RealType scale()const; // Optional scale [xi] (variance), default 1/degrees_of_freedom. }; }} // namespace boost // namespace math
逆卡方分布是一个连续概率分布,它表示服从卡方分布的变量的倒数。
以下来源给出了令人困惑的不同公式,使用了不同的符号来表示分布的概率密度函数 (pdf),但它们都是相同的,或者通过变量的更改或尺度的选择而相关。
提供了两个构造函数来实现缩放版本和(隐式)未缩放版本。
主要版本具有显式的尺度参数,它实现了缩放逆卡方分布。
第二个版本具有隐式尺度 = 1/自由度,并给出了维基百科逆卡方分布中的第一个定义。第二个维基百科逆卡方分布定义可以通过显式指定尺度 = 1 来实现。
这两个定义在Wolfram Mathematica 和 R 统计计算项目 (geoR) 中也可用,默认尺度 = 1/自由度。
参见
逆卡方分布用于贝叶斯统计:缩放逆卡方分布是均值已知,模型参数 σ² (方差) 的正态分布的共轭先验分布。
逆卡方分布是逆伽玛分布的特例,其中 ν (自由度) 为形状 (α),尺度 (β) 为:
α= ν /2 且 β = ½
![]() |
注意 |
---|---|
此分布确实提供了 typedef typedef inverse_chi_squared_distribution<double> inverse_chi_squared; 如果您想要 boost::math::inverse_chi_squared_distribution<> 或者您可以编写 |
对于自由度参数 ν,(未缩放) 逆卡方分布由概率密度函数 (PDF) 定义:
f(x;ν) = 2-ν/2 x-ν/2-1 e-1/2x / Γ(ν/2)
和累积密度函数 (CDF):
F(x;ν) = Γ(ν/2, 1/2x) / Γ(ν/2)
对于自由度参数 ν 和尺度参数 ξ,缩放逆卡方分布由概率密度函数 (PDF) 定义:
f(x;ν, ξ) = (ξν/2)ν/2 e-νξ/2x x-1-ν/2 / Γ(ν/2)
和累积密度函数 (CDF):
F(x;ν, ξ) = Γ(ν/2, νξ/2x) / Γ(ν/2)
以下图表说明了逆卡方分布的 PDF 和 CDF 如何随参数 ν 和 ξ 的几个值而变化
BOOST_MATH_GPU_ENABLED inverse_chi_squared_distribution(RealType df = 1); // Implicitly scaled 1/df. BOOST_MATH_GPU_ENABLED inverse_chi_squared_distribution(RealType df = 1, RealType scale); // Explicitly scaled.
构造具有 ν 自由度 df 和尺度 scale 的逆卡方分布,默认值为 1/df。
要求自由度 ν 参数大于零,否则调用 domain_error。
BOOST_MATH_GPU_ENABLED RealType degrees_of_freedom()const;
返回此分布的 degrees_of_freedom ν 参数。
BOOST_MATH_GPU_ENABLED RealType scale()const;
返回此分布的 scale ξ 参数。
支持所有分布通用的常用非成员访问器函数:累积分布函数, 概率密度函数, 分位数, 风险函数, 累积风险函数, __logcdf, __logpdf, 均值, 中位数, 众数, 方差, 标准差, 偏度, 峰度, 超额峰度, 范围 和 支持。 对于此分布,所有非成员访问器函数都标记为 BOOST_MATH_GPU_ENABLED
,并且可以在主机和设备上运行。
随机变量的域是 [0,+∞]。
![]() |
注意 |
---|---|
与某些定义不同,此实现支持随机变量等于零作为特殊情况,对于 pdf 和 cdf 都返回零。 |
逆伽玛分布是根据不完全伽玛函数实现的,例如 逆伽玛分布,它使用 gamma_p 和 gamma_q 及其反函数 gamma_p_inv 和 gamma_q_inv:有关更多信息,请参阅这些函数的精度数据。 但总的来说,伽玛(以及因此的逆伽玛)结果通常精确到几个 epsilon,对于 64 位双精度浮点数,精度 > 14 位十进制数字。 除非涉及迭代,例如自由度的估计。
在下表中,ν 是自由度参数,ξ 是分布的尺度参数,x 是随机变量,p 是概率,q = 1-p 是其补数。 参数 α 表示形状,β 表示尺度,用于逆伽玛函数:α = ν/2 且 β = ν * ξ/2。
函数 |
实现说明 |
---|---|
|
使用关系式:pdf = gamma_p_derivative(α, β/ x, β) / x * x |
cdf |
使用关系式:p = gamma_q(α, β / x) |
cdf 补数 |
使用关系式:q = gamma_p(α, β / x) |
分位数 |
使用关系式:x = β/ gamma_q_inv(α, p) |
来自补数的分位数 |
使用关系式:x = α/ gamma_p_inv(α, q) |
众数 |
ν * ξ / (ν + 2) |
中位数 |
没有已知的闭式解析方程,但评估为 quantile(0.5) |
均值 |
对于 ν > 2,为 νξ / (ν - 2),否则为 domain_error |
方差 |
对于 ν >4,为 2 ν² ξ² / ((ν -2)² (ν -4)),否则为 domain_error |
偏度 |
对于 ν >6,为 4 √2 √(ν-4) /(ν-6),否则为 domain_error |
超额峰度 |
对于 ν >8,为 12 * (5ν - 22) / ((ν - 6) * (ν - 8)),否则为 domain_error |
峰度 |
对于 ν >8,为 3 + 12 * (5ν - 22) / ((ν - 6) * (ν-8)),否则为 domain_error |