在读到《R语言实战》(第二版)P143页有关卡方独立性检验所记
假设检验
假设检验(Test of Hypothesis)又称为显著性检验(Test of Ststistical Significance)。
在抽样研究中,由于样本所来自的总体其参数是未知的,只能根据样本统计量对其所来自总体的参数进行估计,如果要比较两个或几个总体的参数是否相同,也只能分别从这些总体中抽取样本,根据这些样本的统计量作出统计推断,籍此比较总体参数是否相同。由于存在抽样误差,总体参数与样本统计量并不恰好相同,因此判断两个或多个总体参数是否相同是一件很困难的事情。
基本的解决方法是:根据问题的需要对所研究的总体作某种假设,记作H0;选取合适的统计量,这个统计量的选取要使得在假设H0成立时,其分布为已知;由实测的样本,计算出统计量的值,并根据预先给定的显著性水平进行检验,作出拒绝或接受假设H0的判断。常用的假设检验方法有u—检验法、t—检验法、χ2检验法、F—检验法,秩和检验等。
χ2独立性检验
χ2检验是一种无参数的假设检验。
考虑这以一个问题:某地区有10000合法选民,现统计了男性和女性分别有多少人参加了投票。
Men Women _____________________________ Voted 2792 3591 Didn't vote 1486 2131
问“性别”和“投票”是不是相互独立的?
下面就使用假设检验的方法解决这个问题。
我们假设H0:性别和投票相互独立。备选假设H1:性别与投票相关。
计算上表的行和与列和。
OBSERVED TABLE Men Women Total _____________________________ |______ Voted 2792 3591 | 6383 Didn't vote 1486 2131 | 3617 _____________________________________ Total 4278 5722 | 10000
原始表中的数据用Aij表示,行和用Ai·表示,列和用A·j表示,全部元素的和用A··表示。
投票的概率:
P(v)=A1·/A··=0.6386
选民为男性的概率:
P(m)=A·1/A··=0.4278
在H0下,我们认为投票与性别无关,所以男性参加投票的概率为:
P(m,v)=P(m)P(v)=0.2731
这样可以算出男性投票的期望值:0.2731×10000=2731。于是就得到了下面这张“期望表”
EXPECTED TABLE Men Women Total _____________________________ |______ Voted 2731 3652 | 6383 Didn't vote 1547 2070 | 3617 _____________________________________ Total 4278 5722 | 10000
观察值与期望值的差值为误差。对于每一个观察值我们计算误差的平方与期望值的比值。
c11 = (2792-2731)^2/2731
c12 =
(3591-3652)^2/3652
c21 =
(1486-1547)^2/1547
c22 =
(2131-2070)^2/2070
χ2=c11+c12+c21+c22=6.584283457
定义*度为(rows-1)*(cols-1),在我们的例子中*度为1。
查表:
Degrees of freedom 99% ... 10% 5% 1% _____________________________________________________ 1 0.00016 2.71 3.84 6.64 2 0.020 4.60 5.99 9.21
由于χ2介于3.84和6.64之间,所以P值介于5%和1%之间,也就是说我们接收假设H0的把握还不到5%,因此拒绝它。此时假设H1成立!
配合书本:
> # Listing 7.12 - Chi-square test of independence > library(vcd) 载入需要的程辑包:grid > mytable <- xtabs(~Treatment+Improved, data=Arthritis) > chisq.test(mytable) Pearson's Chi-squared test data: mytable X-squared = 13.055, df = 2, p-value = 0.001463 #你拒绝了治疗类型和治疗结果相互独立的原假设。患者接受的治疗和改善的水平看上去存在着某种关系(p<0.01) > mytable <- xtabs(~Improved+Sex, data=Arthritis) > chisq.test(mytable) Pearson's Chi-squared test data: mytable X-squared = 4.8407, df = 2, p-value = 0.08889 #概率不够小,故没有足够的理由说明治疗结果和性别之间是不独立的。患者性别和改善情况之间却不存在关系(p>0.05) Warning message: In chisq.test(mytable) : Chi-squared近似算法有可能不准 > > # Fisher's exact test > mytable <- xtabs(~Treatment+Improved, data=Arthritis) #Fisher精确检验的原假设是:边界固定的列联表中行和列是相互独立的 #fisher.test()函数可以在任意行列数大于等于2的二维列联表上使用,但不能用于2×2的列联表 > fisher.test(mytable) Fisher's Exact Test for Count Data data: mytable p-value = 0.001393 alternative hypothesis: two.sided > > # Chochran-Mantel-Haenszel test > mytable <- xtabs(~Treatment+Improved+Sex, data=Arthritis) #检验治疗情况和改善情况在性别的每一水平下是否独立 > mantelhaen.test(mytable) Cochran-Mantel-Haenszel test data: mytable Cochran-Mantel-Haenszel M^2 = 14.632, df = 2, p-value = 0.0006647 #患者接受的治疗与得到的改善在性别的每一水平下并不独立
本节主要介绍了基于卡方分布的独立性检验,如果不独立,那么就相关,相关性如何,请看相关性的度量。