卡方检验的英文是Chi-Square Test,“卡”是音译。在大数据运营场景中,通常用在检验某个变量(或特征)值是不是和另一个变量有显著关系,因此卡方检验是一个非常重要的算法。而其更大的作用,就是高考要考!!!最近数学刚好在学这个,那我就顺便把它了解详细一些。

本文中查阅和引用了许多资料,由于我本身就菜,如果有任何表述或知识方面的错误,非常欢迎指出。纠正错误既能对我有帮助,也可以避免误导别人!

什么是卡方检验

卡方检验是用途非常广的一种假设检验方法,它在分类资料统计推断中的应用,包括:两个率或两个构成比比较的卡方检验;多个率或多个构成比比较的卡方检验以及分类资料的相关分析等。

——摘自百度百科

为什么需要卡方检验

  • 独立性检验:如果我们已知了一些变量之间的关系,那么我们可以推算出各种情况出现的可能,而反过来,如上面所说,我们可以基于已有的数据,通过用卡方检验计算出多个变量之间是否有显著的关系。
  • 拟合优度检验:检验一个因素多项分类的实际观察频数与理论频数是否接近。
  • 同质性检验:分析鉴定多个不同群体中同一变量的分布是否有显著差异。

卡方检验的原理

卡方检验就是统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,如果卡方值越大,二者偏差程度越大;反之,二者偏差越小;若两个值完全相等时,卡方值就为0,表明理论值完全符合。卡方检验主要用于分类变量。

分类变量(categorical variable)是说明事物类别的一个名称,其取值是分类数据。如“性别”就是一个分类变量,其变量值为“男”或“女”;“行业”也是一个分类变量,其变量值可以为“零售业”、“旅游业”、“汽车制造 业”等。

——摘自百度百科

如何进行卡方检验

卡方检验的公式

卡方检验的通用公式:$$X^2=\sum{\frac{\left(A-T\right)^2}{T}} \\A是实际频数(观测到的各个结果的实际出现次数) \\T是理论频数(各个结果理论上会出现的次数)$$

如何求出理论频数T呢?对于两个分类变量\(X\)和\(Y\),他们分别有\(R\)和\(C\)个取值,则可以列出如下的一个\(R×C\)联列表:

\(y_1\)\(y_C\)总计
\(x_1\)\(O_{1,1}\)\(O_{1,C}\)\(O_{1·}\)
\(x_R\)\(O_{R,1}\)\(O_{R,C}\)\(O_{R·}\)
总计\(O_{·1}\)\(O_{·C}\)\(N\)
这里的\(O\)指实际出现的频数

每一种情况出现的理论频数T就是在实验\(N\)次时,其出现次数的期望$$E_{i,j}=\frac{O_{i·}×O_{·j}}{N}$$对于多个变量,只需要将这个公式向高纬度拓展即可!但是实际上,在高维联列表中,往往会使用对数线性模型而不再是卡方检验。

自由度

自由度(degree of freedom, df)指的是计算某一统计量时,取值不受限制的变量个数。通常\(df=n-k\)。其中n为样本数量,k为被限制的条件数或变量个数,或计算某一统计量时用到其它独立统计量的个数。自由度通常用于抽样分布中。

——摘自百度百科
Δ不同自由度的卡方分布图象

例如有两个变量\(a\)和\(b\),且已知\(a+b=10\),那么这个式子的自由度就是1而不是2,因为当\(a\)确定时,\(b\)的值也就确定了,所以只有一个可以不受限制的变量。

为什么要在卡方检验中用到“自由度”这个概念呢?因为卡方检验的基础是卡方分布:

若n个相互独立的随机变量\(ξ_1、ξ_2、……、ξ_n\),均服从标准正态分布(也称独立同分布于标准正态分布),则这n个服从标准正态分布的随机变量的平方和\(Q=\sum_{i=1}^{n}ξ_i\)构成一个新的随机变量,其分布规律称为\(X^2\)分布,其中参数\(v\)是自由度,如果两个\(X^2\)分布的\(v\)不同,那么这就是两个不同的\(X^2\)分布,记为\(Q \sim X^2(v)\)或\(Q \sim X_v^2\)

——摘自百度百科

。由此我们知道,不同的自由度会有不同的卡方分布情况,所以进行卡方检验的时候,必须要考虑自由度!通常,在有\(n\)个变量,\(k\)条限制条件的情况下,其自由度是\(n-k\)。对于一个\(R×C\)联列表,其自由度为\((R-1)(C-1)\)。

显著性水平与置信水平

显著性水平是估计总体参数落在某一区间内,可能犯错误的概率,用α表示。怎么理解呢?就是对于一个命题,我们经过一系列对数据的分析,最终选择相信它是对的或是错的,但是这只是相信与否,与命题本身的对错是无关的,所以有一定的概率,我们选择的那个认值是错误的。你能接受最大的错误的概率,就是显著性水平,记作\(α\)。由此可以看出,α越大,越有可能接纳错误的结果;α越小,得到的结果越有可能准确。

置信度/置信水平是指特定个体对待特定命题真实性相信的程度,也就是概率是对个人信念合理性的量度。怎么理解呢?就是在实验中,永远不可能得到绝对准确的结果,一定会有误差,而对于一些小的误差,我们可以允许他们的存在。置信区间就是我们允许误差存在的一定范围,这是一个主观决定的量,而结果满足正态分布的基础上分布在置信区间内的概率就是置信,记作\(1-α\)。由此可以看出,置信水平越高,置信区间越大,越容易接纳误差。

P值

P值(P value)就是当原假设为真时,比所得到的样本观察结果更极端的结果出现的概率。如果P值很小,说明原假设情况的发生的概率很小,而如果出现了,根据小概率原理,我们就有理由拒绝原假设,P值越小,我们拒绝原假设的理由越充分。

——摘自百度百科

简单来说就是,如果P<α,则倾向于拒绝原假设;反之则不考虑。

通过四格表求解

四格表是\(R×C\)表中\(R=C=2\)的特殊形式,也是最简单、最常用的形式。

假设有两个分类变量\(X\)和\(Y\),他们的值域分别是\(\{x_1, x_2\}\)和\(\{y_1, y_2\}\),则可以在实验后列出一张表

\(y_1\)\(y_2\)总计
\(x_1\)\(a\)\(b\)\(a+b\)
\(x_2\)\(c\)\(d\)\(c+d\)
总计\(a+c\)\(b+d\)\(a+b+c+d\)
Δ独立样本四格表

对于四格表,有一个卡方检验公式的简化版本$$X^2=\frac{(ad-bc)^2n}{(a+b)(c+d)(a+c)(b+d)}$$它有使用条件,即要求样本含量应大于40且每个格子中的理论频数不应小于5。当样本含量大于40但有\(1≤T<5\)时,卡方值需要校正,当样本含量小于40或\(T\)小于1时只能用确切概率法计算概率。

通过卡方检验进行独立性检验

如果要推断一个论述“X与Y有关系”的可信度,就可以用上表中的数据计算出\(X^2\)的值,\(X^2\)的值越大,说明“X与Y有关系”的可信度越高。在计算出\(X^2\)值和自由度之后,就可以与卡方分布表进行比对,计算出这个假设正确的可能性。

Δ自由度为1~4的卡方分布表

对一个四格表,\(R=C=2\),所以\(df=(2-1)(2-1)=1\),之后该如何使用上面的卡方分布表呢?我们已经求出了\(X^2\)和\(df\),现在就可以在分布表中按照这个坐标来找了,假设对一个四格表进行计算后得出的\(X^2=3.14\),可以在表上自由度为1的一行确定其所在区间,因为\(2.71<3.14<3.84\),看到上面对应的概率P,我们就可以得到结果:这两个分类变量之间有关系的假设正确的概率\(P∈(0.9, 0.95)\)

例:服务器丢包是很多腐竹头疼的问题,所以有时候他们会在服务器上进行某些操作来进行优化,但是怎么确定优化是否有效呢?我们做一个卡方检验,将置信度定为95%,即\(α=0.05\)

不优化优化合计
丢包23364297
不丢包6665121178
合计8995761475
Δ假设这是测试结果

计算得到$$\begin{align*}&N=1475 \\&X^2=\frac{(233*512-64*666)^2*1475}{(233+64)(233+666)(64+512)(666+512)}≈47.861 \\&df=(2-1)(2-1)=1\end{align*}$$

这里的T我们是按照期望得到的,即假设“丢包数与优化无关”。与表中自由度为1的一行对照,\(47.861>10.83\),所以假设\(H_0:\)“丢包数与优化无关”发生的概率\(P<0.001<α\),所以在95%的置信度下可以认为这个假设是错误的,即其备选假设\(H_1:\)“丢包数与优化有关”是正确的。

通过卡方检验进行拟合优度检验

卡方检验拟合优度的应用可以举这样一个例子——抛硬币

我们知道:抛一枚硬币,其结果可能且只可能是正面或反面(说立住的你先给我抛出来一个让我看看?概率太小,忽略不计!),因此当你抛掷\(1\)次时,其结果分布属于0-1分布。如果一枚硬币是均匀规则的,那么丢一次硬币,得到正面和反面的结果都是\(\frac{1}{2}\)。0-1分布是二项分布\(n=1\)时的特殊情况。当你抛掷\(n\)次时,其结果分布属于二项分布,所以它的结果符合二项分布的公式。假设抛掷\(n\)次中,得到正面的的数字是\(X\),那么\(X\)服从参数为\(\frac{1}{2}\)的二项分布,记作\(X \sim B、(n,\frac{1}{2})\)。

这是我们在假设硬币均匀规则,即得到正反面的概率都是\(\frac{1}{2}\)的前提下,推算结果极其出现的概率。但是,实际上我们往往并不能确定硬币是否规则,以及得到正反面的概略是否都是\(\frac{1}{2}\)。例如,在你不知道这个硬币是否是均匀的情况下,你抛掷了100次这个硬币,其中得到了47次正面,53次反面,这是完全可能的。假设硬币均匀,那么不难用二项分布公式计算出得到这种结果的概率$$P=C_{100}^{47}\left(\frac{1}{2}\right)^{100}≈0.0666$$但是如何用这个已知数据检验硬币是否均衡呢?这里就要用到卡方检验。

对于通过卡方检验进行拟合优度检验,其实可以理解为卡方检验的特殊情况,即只有一个分类变量的情况。提出假设“硬币是均衡的”

正面反面
频数:实际(理论)47(50)53(50)
Δ注意,这个不是联列表!!!

计算得到$$\begin{align*}&N=100 \\&X^2=\frac{(47-50)^2}{50}+\frac{53-50)^2}{50}=\frac{9}{25}=0.36 \\&df=1\end{align*}$$

与表中对比,得到\(α<0.5<P<0.7\),实验结果与理论推测差距并不显著,所以这里不能否定“硬币均匀”这一假设,可以认为硬币是均匀的。

通过卡方检验进行同质性检验

我们经常遇到这样的一些问题:要判断不同的厂家生产的同一类产品的质量性能是否有本质的差异、来自不同地区的学员的某些素质是否存在显著的差异、不同方法培育的动植物间是否有明显的区别。这些不同的问题,当测定的指标值都来自正态总体时,可以用方差齐性检验和均值相等检验,但是对总体分布族信息掌握很少、分布不明确或数据是分组数据形式时(例如寿命试验中定周期测试数据、截尾寿命试验数据等),只能用非参数方法,即都可以归结成方差同质性检验。

设有m个总体,分别从中各取一个样本,第i个样本是\(Xi_1、Xi_2…、Xi_{n_i},i=1,2,…,m\),其中\(n_i\)是第i个样本量,\(n_1+n_2+…+n_m=n\)。

如何检验这些样本之间的差异是由随机因素引起的,还是样本间有本质的差异?如果我们能检验这m个样本来自同一总体,那么它们之间的差异是由随机因素引起的;反之,则其间存在着本质的差异。

——摘自百度百科

总的思路都是一样的,卡方检验对于方差同质性的检验过程就是计算样本方差和总体方差之间的差异程度,公式可以写为:$$\begin{align*}&X^2=\frac{(n-1)s^2}{σ^2} \\&此处X^2服从自由度为n-1的X^2分布 \\&s^2是该样本的方差 \\&σ^2是总体方差 \end{align*}$$求出结果后,再与卡方分布表比对得到P的范围。如果\(P>α\)则可以认为差异不显著,来自同一整体;反之,则可以认为该样本与总体差异显著,并不来自同一整体。

总结

卡方检验用法虽然多,但是本质都是计算实际值和由假设得到的理论值的差异,并借助差异值来决定是否接纳假设,只要想明白这一点就行了。

其实我最早本来只是向简单学习一下高考范围内的内容,没想到是从小溪游进了大海,学到了很多我难以理解的内容,我花了快一周的时间查阅资料、和同学交流,总算把这篇文章写出来了。但其实我自己也还是理解的不透彻,甚至有些地方是错误的,如果有任何的错误,还是希望你可以把他提出来,我一定会认真修改,避免误导他人。

5 6 votes
文章评分
订阅这个评论
提醒

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

5 评论
最旧
最新 得票最多
Inline Feedbacks
View all comments