Stata第六章卡方检验
本节STATA命令摘要
[by分层变量名:]tab2变量1变量2[,allchi2exactcellcolumnrow]
tabi#11#12[...]\[#21#22[...][\...][,allchi2exactcellcolumnrow]
•列联表分析
STATA命令:
[by分层变量:]tab2变量1变量2[,
allchi2lichi2exactcellcolumnrow]
上述命令中,变量1为行计数变量;变量2为列计数变量;all表示卡方(c2)检验,似然比(likelihoodratio)检验以及一些统计描述指标和检验,但不包括Fisher精确检验;exact表示Fisher精确检验;chi2表示c2检验;lichi2表示likelihoodratio检验;cell表示输出的列联表中显示每个观察计数值占该列联表总观察计数值的比例;row表示输出的列联表中显示每个观察计数值占该观察计数值所在行的各观察计数值总数的比例;coloumn表示输出的列联表中显示每个观察计数值占该观察计数值所在的列各观察计数值总数的比例。
例:某地调查肝癌病人与健康人饮用“醋冷水”(一种以冷水和醋为主要成分的饮料)的习惯。
用group=1表示肝癌组患者和group=2表示健康人;用custom=1表示经常饮用醋冷水;custom=2表示偶尔饮用醋冷水和custom=3表示从不饮用醋冷水。
具体资料为:(摘自医学统计方法,金丕焕主编,p163)。
组别经常偶尔从不饮用合计肝癌组26442898
健康组28491794
合计549345192
显然这是一个病例对照研究,所以每组人数是人为确定的,因此只需计算各组"经常","偶而"和"从不饮用"占本组的频数以及检验患肝癌是否与饮水习惯有关。
tab2groupcustom,rowchi2
->tabulationofgroupbycustom
|custom
group|123|Total
-----------+--------------------------------------------+----------
1|①264428|98
|②26.5344.9028.57|100.00
-----------+--------------------------------------------+----------
2|③284917|94
|④29.7952.1318.09|100.00
-----------+--------------------------------------------+----------
Total|⑤549345|192
|⑥28.1248.4423.44|100.00
Pearsonchi2(2)=2.9497Pr=0.229
①该行表示第一组(肝癌组)的3个观察数;②该行表示第一组的各个观察数的
占第一组观察总数的百分比;③该行表示第二组(健康组)的3个观察数;④该行表示第二组的各个观察数的占第二组观察总数的百分比;⑤该行表示关于饮用醋冷水习惯的三个分类:“经常”,“偶尔”和“从不”的合计数;⑥该行表示上述三个合计数分别占总样本数的百分比。
从上述结果可知:卡方值为2.9497以及自由度为2,p为0.229,所以根据当前资料和结果显示:患肝癌病与是否饮用醋冷水无关。
•列联表分析也可以用立即命令执行:
tabi#11#12[...]\[#21#22[...][\...][,allchi2exactcellcolumnrow]
#11表示列联表中第一行第一列的观察数;#12表示列联表中第一行第二列的观察数;\表示换一行;#21表示列联表中第二行第一列的观察数,其它以此类推。
子命令:allchi2exactcellcolumnrow与上述命令完全相同。
以上例的资料为
例:相应的STATA命令为:
tabi264428\284917,chi2lichi2
|col
row|123|Total
-----------+----------------------------------+----------
1|264428|98
|26.5344.9028.57|100.00
-----------+----------------------------------+----------
2|284917|94
|29.7952.1318.09|100.00
-----------+----------------------------------+----------
Total|549345|192
|28.1248.4423.44|100.00
Pearsonchi2(2)=2.9497Pr=0.229
likelihood-ratiochi2(2)=2.9760Pr=0.226
两种方法结果对应相同。
另外数学上可以证明:当大样本是,卡方检验(Pearsonchi2test)与似然比检验(likelihoodratiochi2test)趋向一致。
•Fisher精确检验
例:用新旧两种药治疗某种疾病(资料如下表所示),试问:两药对该病的治愈率是否不同?(资料摘自医学卫生统计,金丕焕主编,p165)组别未治愈治愈合计
旧药4(2.2)2(3.8)6
新药0(1.8)5(3.2)5
合计4711
表中括号中的数为理论数(即:两种药的疗效无差异的无效假设Ho 成立时的期望频数)。
由于理论数均小于5,故必须用Fisher精确检验法。
相应的STATA命令为:
tabi42\05,exactcolrow
|col
row|12|Total
------------+--------------------------+----------
1|42|6
|66.6733.33|100.00
|100.0028.57|54.55
-----------+---------------------------+----------
2|05|5
|0.00100.00|100.00
|0.0071.43|45.45
-----------+----------------------------+----------
Total|47|11
|36.3663.64|100.00
|100.00100.00|100.00
①Fisher'sexact=0.061
②1-sidedFisher'sexact=0.045
①为双侧Fisher检验;②单侧Fisher检验
在Fisher精确检验中,假定每列和每行的合计数都是常数情况下,计算相应概率。
在本例中,单侧Fisher检验要计算下表的概率:
426
055
4711
双侧Fisher检验是考虑可能新药优于旧药,也可能旧药优于新药的情况。
以新药治愈人数为例:观察数-理论数=
5-3.2=1.8,因此要考虑观察数大于理论数的差是考虑抽样误差引起的,所以不仅要计算所有观察数-理论数(3.2)大于1.8的p值[1],还要计算所有理论数(3.2)-观察数大于1.8的p值。
即:计算所有|理论数-观察数|>1.8的p值的和,因此在每列和每行的合计数都是常数情况的假定下,还有一种情况满足理论数(3.2)-观察数大于1.8:
066
415
4711
所以本例Fisher双侧检验的p值为0.04545+0.01515»0.061。
•由于Fisher检验是在每列和每行的合计数都是常数的假定下的精确检验,而对于一般的研究:如病例对照(仅病例组和对照组的人数是常数,即:仅每行的合计数是常数),横断面抽样调查(样本总数是常数),所以对于不满足每列和每行的合计数都是常数假定的资料
而言,Fisher检验也是一种近似检验。
Fisher r检验仅计算该表的p值:[1]本例中只有上述的这张表的情况,所以单侧Fishe
观察数-理论数>1.8的p值,类似t检验:单侧检验的p值为t分布曲线下大于t样本计算值的面积,双侧检验的p值为t分布曲线下大于t样本计数值的面积和小于-t样本计数值的面积之和,而Fisher双侧检验:计算|观察剩-理论数|>1.8的p值的和。
即:在本例中,观察数-理论数=1.8相应t检验中的t样本计算值。