卡方检验的详细说明

为什么叫“池坊”?因为原名是“卡方”,所以一半是音译,一半是意译。其中,chi是希腊字母的发音,但听起来更像“开”而不是“卡”Square代表正方形,所以在英语中,卡方分布就写成了分布。

在了解卡方检验之前,先要了解卡方分布。卡方分布是一个连续的概率分布。

如果随机变量服从标准正态分布,即服从1自由度的卡方分布。写下或

而如果都服从标准正态分布,那么它们的平方和服从带自由度的卡方分布,记为:

或者写作。

对于非负自变量自由度的卡方分布的概率密度函数(简称pdf):

(1)为什么不是负数?因为根据定义,卡方分布的自变量是平方和。

(2)这里有一个函数。关于这个函数是什么,如何导出门的概率密度函数,这里不展开,只需要知道有这样一个函数就可以了。真的很好奇,可以参考这里。

(3)卡方分布的均值为0,标准差为0。

(4)自由度越大,函数图像越对称。

(5)为什么这里需要正态分布?我的理解是,如果零假设为真,那么观测值与期望值之间的波动程度应该是正态分布,或者说“噪声”应该是正态分布。

卡方检验有两个目的:

卡方检验拟合优度

独立性卡方检验

有新闻说某篮球明星原地两连投的单次命中率是0.8。根据历届比赛数据,得出如下表格:

也就是说,游戏中有5次连续出手一次不中,82次连续两次出手命中1次。现在我们用卡方检验来验证新闻中0.8的命中率是否正确。无效假设如下:

两次连续射击的成功次数符合二项分布,概率为

(1)根据零假设计算“预期”命中次数的分布:

由于观测总次数为,在成立的前提下,可以计算出每个二次结果的期望次数:

0次点击:

1点击量:

2次点击:

很明显,预期观察次数和实际观察次数之间存在偏差,所以问题是这个偏差是否大到有统计学意义,然后可以否定零假设。

(2)让我们构造卡方检验统计量:

该值用于将表中每个网格的实际值与预期值进行比较。为什么要用正方形?目的是避免符号的影响。为什么要除以预期?目的是消除数量绝对值的影响。比如你预算3块钱水,商家加价50块钱,那么这个波动对你来说是无法承受的,而你预算20万元车,商家加价50块钱,就变得无法承受了。也就是说,除以期望值的目的是着眼于变化率,而不是变化量。

之后,把这些“变化率”加起来就得到了。并且有一个计算自由度的公式:

其中r代表行数,c代表列数。对于这个例子:

换个角度解释为什么:之前的定义是,如果是符合标准正态分布的加法,自由度为零,但是有两个网格可以自由变化,第三个网格可以通过总的观测来减少,比如。

所以真正自由的网格只有两个,所以自由度是2。

好,代入网格数据,找出测试统计量:

(3)根据2自由度的卡方分布,找到测试统计量对应的位置:

不难理解,随着统计量的增加,预期分布与实际分布的差异越来越大。

另外,因为一般来说p值越小越能推翻零假设,那么显然我们需要用右边的面积来表示p值,这里用Python计算代替查表:

输出:统计值:17.26,p值:0.0002。

由于p值很小(假设我们的显著性水平为0.05),那么我们可以推翻零假设。

更进一步,我们来探究一下运动员连续两次出手的成功得分是否真的符合二项分布。零假设:

两次连续射击的成功时间符合二项分布。

既然符合二项分布,我们就需要先估算出最合理的概率,当然是用总命中数除以总出手数计算出来的:

然后,用这个概率值重复前面的计算,即首先计算一个期望表:

注意,在这里,这是因为每次我们从数据中估计一个参数,我们就失去了一个自由度。这里用的是平均命中概率,所以自由度只有。

此时,使用Python进行计算时,注意调整默认自由度:

这里的ddof是额外损失的自由度,意思是“自由度增量”

输出:统计值:0.34,p值:0.56。

可以看出p值很大,不足以反驳零假设,也就是说运动员的击球次数可能真的是二项分布。

下表显示了饮酒和与警察发生纠纷的频率。

以第一列为例,显示从不喝酒的人群中,4992人不会闯祸,71人会闯祸。

现在的问题是,我们能从下面的数据推断出喝酒和找警察麻烦的频率是相互独立的吗?

我们的零假设应该如何设计?如果要说明它们是相互独立的,那么上表中的分布应该满足乘法公式。也就是说,两个独立事件一起发生的概率等于分别发生的概率的乘积。

所以我们有:

陷入困境的总人数除以总人数。

不喝酒的总人数除以总人数。

进一步,根据总人数,计算因不喝酒而陷入困境的人数的期望(下标表示零假设):

使用类似的算法,计算零假设情况下每个单元格的值,并写在原始表格数据下的括号中:

仔细观察表明,实际上每个网格都是对应的:

此外,我们可以看到,在零假设下,每个网格的行和列的总和与原始的相同。这不是偶然的,我们用字母代替计算来知道:

所以第一列中的两个方块应该是:

对于其他网格和行的和,也是一样的,这里就不多说了。

好的,继续分析。我们直接用上表计算卡方统计量和p值:

这部分的计算方法和拟合优度一样,不赘述。发现这个p值很小,接近于0,可以推翻零假设。换句话说,喝酒的频率不是独立的,而是和被警察找麻烦的人有关。

关于独立性检验,有一种比卡方检验更准确的检验,叫做费雪精确检验。通过直接计算否定零假设的概率,直接得到一个准确的p值。有一个关于女性品茶的经典统计故事。一位女士声称,她可以分辨出一杯茶是先倒牛奶还是先倒茶。统计学家费希尔做了一个实验来验证她的说法。我喝了8杯茶,4杯茶前奶,4杯茶前奶。

实验结果是正确的。所以问题是,这在统计上有意义吗?比如一个人猜对一枚硬币一次,他的预测能力可靠吗?

我们假设女方的判断是完全随机的,这是我们的零假设。那么8个杯子中赢4个杯子的概率是:

如果显著性水平是0.01,那么我们就无法反驳零假设,也就是说我们不确定这位女士真的有这种识别能力。如果显著性水平设为0.05,我们可以认为她确实有这个识别能力。

如果实验结果更有说服力呢?一个简单的方法是增加茶的量。比如我们给两种茶各设10杯,要求所有10杯都判断正确。P值是多少?

这个计算起来比较麻烦。这里我写一个python脚本来计算:

计算结果:

这个p值非常夸张,基本可以断定零假设不成立。

那么,回到实验本身,如果女士只正确选择了三个杯子,那么在零假设的前提下,这种情况发生的概率是多少?

这个概率比较大,大于常用的显著性水平0.05,所以我们没有办法反驳零假设。为什么要这样骑?这是因为拍一张* * *,方式太多了。你列出所有可能的方法,也就是16,然后除以方法总数,也就是随机得到这样一个结果的概率。

比较费希尔精确检验和卡方检验,可以参考这篇文章。

一般来说,当两者都适用时,应首选费希尔精确检验,因为它是一个精确值。如果实验观察数较少(小于10),则不应使用卡方检验。

让我们用一个脚本来计算: