在上一篇文章中,我需要知道具有大量自由度的卡方分布的尾部百分位点。当自由度ν较大时,卡方随机变量近似服从正态分布,均值和方差相同,即均值ν和方差2ν。
在那篇文章中,ν 是 9999,我们需要找到 2.5 和 97.5 百分位数。以下是 χ2(9999) 的百分位数:
>>> chi2(9999).ppf([0.025, 0.975]) 数组([ 9723.73223701, 10278.05632026])
以下是N (9999, √19998) 的百分位数:
>>> 范数(9999, (2*9999)**0.5).ppf([0.025, 0.975]) 数组([ 9721.83309451, 10276.16690549])
因此,左端的结果同意三位有效数字,右端的结果同意四位有效数字。
自由度较小
当 ν 更适中时,例如 ν = 30,正态近似就不那么热了。 (我们通过观察尾部相当远的地方来强调近似值。越靠近中间,拟合效果越好。)
以下是 χ2(30) 的结果:
>>> chi2(30).ppf([0.025, 0.975]) 数组([16.79077227, 46.97924224])
以下是N (30, √60) 的结果:
>>> 范数(30, (60)**0.5).ppf([0.025, 0.975]) 数组([14.81818426, 45.18181574])
正态分布是对称的,而卡方分布不是对称的,尽管当 ν → ∞ 时它变得更加对称。卡方分布的变换使其更加对称也可以提高近似精度。当 ν = 9999 时,这一点并不重要,但当 ν = 30 时,这一点更为重要。
费舍尔变换
如果X ~ χ²(ν),Fisher 建议采用近似值 √(2 X ) ~ N(√(2ν − 1), 1)。
令Y为 N(√(2ν − 1), 1) 随机变量, Z为标准正态随机变量 N(0, 1)。然后我们可以从正态概率估计 χ2 概率。
因此,如果我们想要找到X的百分点,我们可以求解Z的相应百分点。
如果z是P ( Z ≤ z ) = p的点,则
是P ( X ≤ x ) = p的点。
如果我们用它来查找 χ2(30) 随机变量的 2.5 和 97.5 百分位数,我们会得到 16.36 和 46.48,比以前准确了一个数量级。
当 ν = 9999 时,Fisher 变换给出的百分位数比以前准确两个数量级。
威尔逊-希尔弗蒂变换
如果X ~ χ²(ν),则 Wilson–Hilferty 变换为 ( X /ν) 1/3近似正态,平均值为 1 − 2/9ν,方差为 2/9ν。
这种变换比 Fisher 变换稍微复杂一些,但也更准确。您可以使用 Wilson-Hilferty 变换进行与上述类似的计算,以估算百分比。
现在,此类近似值的主要用途是用于分析计算;软件包可以给出准确的数值结果。对于分析计算,Fisher 变换的简单性可能超过 Wilson-Hilferty 变换的精度提高。
相关帖子
后卡方近似首次出现在约翰·D·库克 (John D. Cook)身上。
原文: https://www.johndcook.com/blog/2025/04/28/chi-squared-approximations/