列联表在统计中运用很广泛,尤其是在分类数据方面,2x2列联表是其中最基础的。临床上,两种药物的有效无效或者饮食规律正常与否等等都可以再2X2的表格里面反映实验的结果。概况起来该种列联表分析法可以描绘的情况有:
1.数据由(分层)随机抽样获得,样本来自两组独立的服从二项分布的总体。
2.服从一多项式分布的总体,总体内分裂为存在交互影响的两类,抽样的个体随机被分为某类。
3.配对设计
列联表分析得到的结果通常是因素与结果是否有关联,所以假设检验的零假设可以设为因素与结果无关,然后我们利用构建统计量来判定原假设是否成立。它涉及到的统计量有卡方统计量,一般的教材上都会介绍Mantel-Haenszel卡方和Pearson卡方。此外还有Pearson相关系数、似然比、相对危险度等统计量。
需要注意的是,当列联表中存在超过20%的格子的期望数小于5的话,就需要进行更精确的检验方法。
现举例看看SAS如何实现2X2的列联表分析,得出我们需要的统计量:
例:分析药物处理与安慰剂处理在统计学上有无差异,数据如下
处理 有效 无效 汇总
安慰剂 16 48 64
药物 40 20 60
sas中的freq语句可以进行列联表检验:
data respire;
input treat $ outcome $ count;
datalines;
placebo f 16
placebo u 48
test f 40
test u 20
;
proc freq;
weight count; /*weight指定频数变量*/
tables treat*outcome / expected chisq; /*expected可以计算期望数,看是否满足检验条件*/
run;
上面的代码可以生成一个频数表,卡方统计量等。因为上面的数据不存在超过20%的格子的期望数小于5,上面的得到的结果符合要求了。
下面看看需要精确检验的例子(将上面的数字稍作修改):
data severe;
input treat $ outcome $ count;
datalines;
Test f 10
Test u 2
Control f 2
Control u 4
;
proc freq order=data;
weight count;
tables treat*outcome / chisq nocol;
exact chisq; /*进行精确的卡方检验,可以得到三种不同的卡方检验结果*/
run;
另外,如果我们想输出似然比OR和相对危险度RR,可以通过设置MEASURE选项达到目的。
tables treat*outcome / chisq meaures nocol;
该语句还可以列出Pearson相关系数和Spearman相关系数。
参考文献及代码出处:
《Categorical data analysis using the SAS system》
《分类数据的统计分析及SAS编程》-复旦大学出版社
《多元统计与SAS》