正态分布检验方法 Epps-Pulley 与 Python 实现

Posted zhuo木鸟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正态分布检验方法 Epps-Pulley 与 Python 实现相关的知识,希望对你有一定的参考价值。


本文主要参考:

  1. GB/T 4882-2001《数据的统计处理和解释正态性检验》;
  2. A test for normality based on the empirical characteristic function;作者: T. W. EPPS,年份:1983;
  3. An approximation to the limit distribution of the epps-pulley test statistic for normality; 作者:henze,年份:1990;
  4. Recent and classical tests for normality - a comparative study;作者:henze;年份:1989

原理介绍

随机变量 X 1 , X 2 , ⋯   , X n X_1, X_2, \\cdots, X_n X1,X2,,Xn 来同一总体分布 F ( x ) F(x) F(x),其经验特征函数为 Φ n ( t ) = n − 1 ∑ j exp ⁡ ( i t X j ) \\Phi_n (t) = n^-1 \\sum_j \\exp(i t X_j) Φn(t)=n1jexp(itXj),其中 t t t 是一个
任意取值的实值参数,经验特征函数总会收敛于总体的特征函数 Φ ( t ) \\Phi(t) Φ(t)。总体分布 F ( x ) F(x) F(x) 与特征函数 Φ ( t ) \\Phi(t) Φ(t) 呈一一对应的关系(特征函数是总体的概率密度函数的傅里叶变换),因此可以考虑使用经验特征函数 Φ n ( t ) \\Phi_n(t) Φn(t) 做为检验统计量,来判断总体分布 F ( x ) F(x) F(x) 是否为正态分布。

小知识:总体累计分布函数 F ( x ) F(x) F(x) 对应样本的经验分布函数 F n ( x ) = n − 1 ∑ j I ( X j ≤ x ) F_n(x)=n^-1 \\sum_j I(X_j \\leq x) Fn(x)=n1jI(Xjx)
同样的,总体的特征函数 Φ ( t ) \\Phi(t) Φ(t) 也对应样本的经验分布函数 Φ n ( t ) = n − 1 ∑ j ( i t X j ) \\Phi_n(t) = n^-1 \\sum_j (i t X_j) Φn(t)=n1j(itXj)

在正态分布的情况下,总体特征函数为 Φ 0 ( t ) = exp ⁡ ( i t μ − 1 / 2 t 2 σ 2 ) \\Phi_0(t) = \\exp(i t \\mu - 1/2 t^2 \\sigma^2) Φ0(t)=exp(itμ1/2t2σ2),其中 μ , σ 2 \\mu, \\sigma^2 μ,σ2 为均值和方差。于是可以将检验统计量取值为,对区间 t 范围内的 Φ n ( t ) − Φ ^ 0 ( t ) \\Phi_n(t) - \\hat\\Phi _0(t) Φn(t)Φ^0(t) 平方模加权, Φ ^ 0 ( t ) = exp ⁡ ( i t μ − 1 / 2 t 2 σ 2 ) \\hat\\Phi_0(t) = \\exp(i t \\mu - 1/2 t^2 \\sigma^2) Φ^0(t)=exp(itμ1/2t2σ2),此时的 μ , σ \\mu, \\sigma μ,σ 为样本的均值和方差的估计。

具体如下:
T n = ∫ − ∞ ∞ ∣ Φ n ( t ) − Φ ^ 0 ( t ) ∣ 2 d G ( t ) T_n = \\int_-\\infty^\\infty |\\Phi_n(t) - \\hat\\Phi_0 (t) |^2 d G(t) Tn=Φn(t)Φ^0(t)2dG(t)
其中 Φ ^ n ( t ) = exp ⁡ ( i t X ˉ − 1 / 2 t 2 S 2 ) \\hat\\Phi_n(t)=\\exp(it \\barX - 1/2 t^2 S^2) Φ^n(t)=exp(itXˉ1/2t2S2) X ˉ \\barX Xˉ 为样本均值, S 2 S^2 S2为样本的二阶中心矩, S 2 = ∑ j = 1 n ( X j − X ˉ ) 2 n S^2 = \\frac\\sum_j=1^n(X_j - \\barX)^2n S2=nj=1n(XjXˉ)2

权重系数 G ( t ) G(t) G(t) 的选择应符合如下要求:

  1. ∣ Φ 1 ( t ) − Φ 0 ( t ) ∣ |\\Phi_1(t) - \\Phi_0(t)| Φ1(t)Φ0(t) 赋予大系数。这是因为 Φ 1 ( t ) \\Phi_1(t) Φ1(t) 属于多数备择假设。若输入标准化形式(减均值除方差),则多数的连续型分布在区间 t ∈ ( 0 , 3 ) t\\in(0,3) t(0,3) 下, ∣ Φ 1 ( t ) − Φ 0 ( t ) |\\Phi_1(t)- \\Phi_0(t) Φ1(t)Φ0(t) 都是很大的。
  2. Φ n ( t ) \\Phi_n(t) Φn(t) 是对 Φ ( t ) \\Phi(t) Φ(t) 的精确拟合时,赋予较大权重。根据:
    E ∣ Φ n ( t ) − Φ ( t ) ∣ 2 = n − 1 1 − ∣ Φ ( t ) ∣ 2 E\\|\\Phi_n(t) - \\Phi(t)|^2\\ = n^-1 \\1 - |\\Phi(t)|^2\\ EΦn(t)Φ(t)2=n11Φ(t)2
    由于 ∣ Φ

    以上是关于正态分布检验方法 Epps-Pulley 与 Python 实现的主要内容,如果未能解决你的问题,请参考以下文章

    正态分布检验方法 Epps-Pulley 与 Python 实现

    R语言实战应用精讲50篇-正态分布与方差齐性的检验方法与SPSS操作

    参数检验与非参数检验

    R语言与统计-1:t检验与秩和检验

    什么是K-S检验

    什么是K-S检验