卡方检验(chi-square,记为χ2\chi^2检验)是统计学中常用来计数数据分析的方法,对于总体的分布不作任何假设,因此它属于非参数检验法中的一种。本博文从理论到实际应用去阐述卡方检验,最后用python语言去实现卡方分布的代码。
独立性检验主要用于两个或两个以上因素多项分类的计数资料分析,也就是研究两类变量之间的关联性和依存性问题。如果两变量无关联即相互独立,说明对于其中一个变量而言,另一变量多项分类次数上的变化是在无差范围之内;如果两变量有关联即不独立,说明二者之间有交互作用存在。
独立性检验一般采用列联表的形式记录观察数据, 列联表是由两个以上的变量进行交叉分类的频数分布表,是用于提供基本调查结果的最常用形式,可以清楚地表示定类变量之间是否相互关联。又可具体分为:
当样本含量小于40时只能用确切概率法计算概率。
公式中,fxi表示横行各组实际频数的总和;fyi表示纵列各组实际频数的总和;N表示样本容量的总和;
例题:为了解男女在公共场所禁烟上的态度,随机调查100名男性和80名女性。男性中有58人赞成禁烟,42人不赞成;而女性中则有61人赞成,19人不赞成。那么,男女在公共场所禁烟的问题所持态度不同?
kong | 赞成 | 不赞成 | 行总和 |
---|---|---|---|
男性 | fo11 =58 | fo12 =42 | R1=100 |
女性 | fo21 =62 | fo22 =18 | R2=80 |
列总和 | C1=120 | C2=60 | T=180 |
卡方检验能检验单个多项分类名义型变量各分类间的实际观测次数与理论次数之间是否一致的问题,这里的观测次数是根据样本数据得多的实计数,理论次数则是根据理论或经验得到的期望次数。这一类检验称为拟合性检验。其自由度通常为分类数减去1,理论次数通常根据某种经验或理论。
从表面上看,拟合性检验和独立性检验不论在列联表的形式上,还是在计算卡方的公式上都是相同的,所以经常被笼统地称为卡方检验。但是两者还是存在差异的。
首先,两种检验抽取样本的方法不同。如果抽样是在各类别中分别进行,依照各类别分别计算其比例,属于拟合优度检验。如果抽样时并未事先分类,抽样后根据研究内容,把入选单位按两类变量进行分类,形成列联表,则是独立性检验。 其次,两种检验假设的内容有所差异。拟合优度检验的原假设通常是假设各类别总体比例等于某个期望概率,而独立性检验中原假设则假设两个变量之间独立。
最后,期望频数的计算不同。拟合优度检验是利用原假设中的期望概率,用观察频数乘以期望概率,直接得到期望频数。独立性检验中两个水平的联合概率是两个单独概率的乘积。
import numpy as np
from scipy.stats import chisquare
c1 = np.array([[0.1, 1.1], [6.8, 7.1], [-3.5, -4.1], [2.0, 2.7], [4.1, 2.8],
[3.1, 5.0], [-0.8, -1.3], [0.9, 1.2], [5.0, 6.4], [3.9, 4.0]])
k = chisquare(c1)
print(k)