卡方检验
- 用于检验单个正态总体方差
假设$x_1,\cdots,x_n$是来自正态总体$N(\mu,\sigma^2)$的样本,对方差考虑如下三个检验问题:
- $$H_0:\sigma^2 \leq \sigma_0^2 \quad \mathrm{vs} \quad H_1:\sigma^2 > \sigma^2_0$$
- $$H_0:\sigma^2 \geq \sigma_0^2 \quad \mathrm{vs} \quad H_1:\sigma^2 < \sigma^2_0$$
- $$H_0:\sigma^2 = \sigma_0^2 \quad \mathrm{vs} \quad H_1:\sigma^2 \neq \sigma^2_0$$
其中$\sigma_0^2$是已知常数。通常假定$\mu$未知。
以上假设检验采用的检验统计量为
$$ \chi^ = (n-1) \frac{s^2}{ \sigma_0^2 }$$
当$ \sigma^2 = \sigma_0^2 $时,有$ \chi^2 \sim \chi^2(n-1)$。
若取显著性水平为$\alpha$,则对应三个检验问题的拒绝域分别为
$$W_1={\chi^2 \geq \chi^2_{ 1-\alpha }(n-1) }$$
$$W_2={\chi^2 \leq \chi^2_\alpha(n-1) }$$
$$W_3={\chi^2 \leq \chi^2_{ \frac{ \alpha }{2} }(n-1) } \mbox{或} { \chi^2 \geq \chi_{ 1-\frac{\alpha}{2} }(n-1) }$$
- $\chi^2$分布是偏态分布
三个检验问题的p值分别为
$$p_1=P(\chi^2 \geq \chi_0^2)$$
$$p_2=P(\chi^2 \leq \chi_0^2)$$
$$p_3=2 \min \left\brace P(\chi\geq\chi2_0),P(\chi2\leq\chi^2_0) \right\rbrace $$
$\chi^2$拟合优度检验
分类数据的$\chi^2$拟合优度检验
根据某项指标,总体被分为$K$类:$A_1,A_2,\cdots,A_K$。关心各类元素在总体中所占的比率:
$$H_0:A_i \mbox{所占的比率是} p_{i0}, \quad i=1,\cdots,K.$$
其中,$p_{i0}$已知且满足$\sum_{i=1}^Kp_{i0}=1$。
记$x_1,\cdots,x_n$是从该总体抽出的样本,且其中属于$A_i$类别的样本数为$n_i$。
当零假设$H_0$成立时,在$n$个样本中属于$A_i$类的“理论个数”/“期望个数”为$np_{i0}$,而实际观测得到的值是$n_i$,当$H_0$成立时,$n_i$与$np_{i0}$应相差不大。因此,使用统计量(Pearson提出的)
$$\chi^2 = \sum_{i=1}^K \frac{(n_i-np_{i0})^2}{ np_{i0} } $$
来衡量“理论个数”$np_{i0}$与实际个数$n_i$间的差异。
当$H_0$为真时,该统计量的值应该比较小。因此,拒绝域为
$${\chi^2\geq c}$$
其中$c$为待确定的临界值。
定理*
在前述各项假定下,在$H_0$成立时,检验统计量$\chi^2 = \sum_{i=1}^K \frac{(n_i-np_{i0})^2}{ np_{i0} }$有
$$\chi^2\stackrel{L}{\longrightarrow} \chi^2(K-1)$$
显著性水平为$\alpha$时检验的拒绝域为
$$W={ \chi^2 \geq \chi^2_{1-\alpha} (K-1) }$$
在实际问题中,第$i$类$A_i$出现的概率$p_{i}$并不一定已知,可以先用最大似然估计方法估计出$p_i$依赖的参数($r$个),然后再算出$p_i$的估计值 $\hat{p}i$,则统计量为
$$ \chi^2 = \sum{i=1}^K \frac{ (n_i - n \hat{p}_i )^2 }{n \hat{p}_i }$$
当$n\rightarrow \infty$时,该统计量渐近服从自由度为$K-r-1$的$\chi^2$分布。
上述两个检验统计量主要用于大样本场合,在实际应用中,一般要求各类的观测数均不小于5。当有些类的样本数不满足要求时,需要将一些相邻的类合并以达到要求。
Python
基本实现
1 | from scipy.stats import chi2_contingency |
最小样本量
- 使用Python的
statsmodels
库计算:
1 | from statsmodels.stats.power import GofChisquarePower |