正态分布检验方法 Epps-Pulley 与 Python 实现
Posted zhuo木鸟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正态分布检验方法 Epps-Pulley 与 Python 实现相关的知识,希望对你有一定的参考价值。
文章目录
本文主要参考:
- GB/T 4882-2001《数据的统计处理和解释正态性检验》;
- A test for normality based on the empirical characteristic function;作者: T. W. EPPS,年份:1983;
- An approximation to the limit distribution of the epps-pulley test statistic for normality; 作者:henze,年份:1990;
- 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)=n−1∑jexp(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)=n−1∑jI(Xj≤x);
同样的,总体的特征函数 Φ ( 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)=n−1∑j(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=n∑j=1n(Xj−Xˉ)2。
权重系数 G ( t ) G(t) G(t) 的选择应符合如下要求:
- 对 ∣ Φ 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) 都是很大的。
- 当
Φ
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=n−11−∣Φ(t)∣2
由于 ∣ Φ ( 0 ) = 1 ∣ |\\Phi(0)=1|以上是关于正态分布检验方法 Epps-Pulley 与 Python 实现的主要内容,如果未能解决你的问题,请参考以下文章
正态分布检验方法 Epps-Pulley 与 Python 实现