如何在SAS中实现R×C列联表的两两比较
- 格式:pdf
- 大小:189.11 KB
- 文档页数:6
多个样本及其两两比较的秩和检验SAS程序多个样本及其两两比较的秩和检验SAS程序广东医学院预防医学教研室(524023)丁元林孔丹莉秩和检验是医学实践中较为常用的一大类非参数统计方法,目前国内几本较具权威性SAS专著11,22,均介绍了秩和检验的一些SAS程序,宇氏132也作了进一步的探讨和总结,但对于不同资料类型和特征的多个样本比较的秩和检验SAS程序阐述得不够全面,而且几乎未涉及到两两比较的SAS程序,但实际工作者往往对两两比较的结果更为感兴趣。
为此,本文结合实例,根据常见类型资料的特点,给出了多个样本及其两两比较的秩和检验SAS程序。
11成组设计的原始数据多个样本及其两两比较这种类型资料一般为成组设计的定量资料,但各个样本的总体呈偏态分布或方差不齐,且未整理成其他形式(如频数表),检验其总体分布是否相同的常用秩和检验方法是Kruska-l Wallis法,在SAS软件中实现的过程步有以下三种:NPAR1WAY过程、FREQ 过程以及RANK和ANOVA两过程的结合。
各个样本两两比较一般可通过RANK和ANOVA两过程的结合,采用M EANS语句来实现。
对文献142第139页表1中的数据进行Kruska-l Wallis检验及两两比较的SAS程序如下: /*以下为建立数据库*/data dy1;do group=1to3;input x@@;output;end;cards;918016014101211211910162102121310 214215141031121814184113111516510 3171516519319211671441624101316710;/*以下为调用F REQ过程*/proc fr eq;t ables group*x/scores=rank cmh2noprint;/*以下为调用N PAR1WAY过程*/proc npar1way w ilcoxon;class group;v ar x;/*以下为调用RA NK过程*/proc rank data=dy1out=a;v ar x;ranks r;/*以下为调用A NOV A过程*/proc anova;class group;model r=group;means group/lsd;r un;以上程序中调用FREQ过程产生的第二个CMH 统计量、NPAR1WAY过程产生的卡方统计量以及ANOVA过程产生的R2与T 总之积,即为为Kruska-l Wallis检验结果。
【宝典】R×C列联表(分类数据)的统计分析方法选择与SPSS实现分类资料在医学统计中很常见,有些统计学书上称为计数资料,比如(有效、无效),(发病、不发病),(男、女),血型(A、B、O、AB)等等。
分类资料一般根据频数整理成列联表的形式,一般的列联表多是二维的(也称行列表,或R×C列联表,高维列联表下次讨论),列联表根据变量是否有序可以分为双向无序、单项有序、双向有序列联表,统计方法是不同的,分析如下:一、双向无序列联表(一)成组四格表是指行、列变量均为无序的列联表,例如要研究吸烟和肺癌之间的关系,行变量为是否吸烟:吸烟、不吸烟,列变量为肺癌发病:发病,不发病,如下表:发生肺癌未发生肺癌吸烟a b不吸烟 c d对于这种数据,我们的统计目的是分析行列变量的独立性,即:肺癌发病是否与吸烟有关,可选用的方法有以下两种:1、Pearson卡方检验:基于卡方分布,H0为行、列变量相互独立,SPSS中“分析->描述性统计->交叉表”可实现。
四格表使用条件:专用公式①样本总数大于40;②各个单元格理论值均大于5。
校正公式:①样本总数大于40;②理论值1<T<5;Fisher确切概率法:①样本总数小于40,或T<1,无需选择,软件自动计算成组四格表Fisher。
2、Fisher精确概率:基于超几何分布,当数据不满足Pearson卡方检验时使用。
SPSS 中“分析->描述性统计->交叉表”可实现。
注意SPSS仅提供了2×2表的精确概率,需要计算R×C列联表的精确概率,可以选择精确按钮中的蒙特卡罗近似法实现。
(一)成组R×C表(双向无序)A型B型O型AB型A地区 a b c dB地区 e f j hC地区i j k l1.Pearson卡方检验条件:不能有任何一个格子的理论频数T<1,同时1<T<5的格子数不能超过总格子数的1/5.如若不符合:可以增加研究样本量(通常少用);对理论频数较小的行或者列进行合并或者删除;采用R×C表的Fisher确切概率法(通常采用蒙特卡洛近似法)2.R×C表Fisher确切概率法操作:分析—描述—交叉表—设置好行列变量—点击精确—选择蒙特卡洛。
在R语言中,有多种方法可以进行三组间的两两比较。
以下是一些常见的方法:1. t检验(pairwise.t.test):当数据满足正态性和方差齐性假设时,可以使用t检验来进行两两比较。
该函数会对每对组进行t检验,计算出每对之间的差异显著性水平和置信区间。
```Rpairwise.t.test(data$group, data$value, p.adjust.method = "bonferroni")```2. 方差分析(ANOVA):如果数据不满足t检验的假设条件,可以使用方差分析来进行两两比较。
可以使用ANOVA函数进行方差分析,然后使用posthoc函数进行多重比较。
```Rmodel <- aov(value ~ group, data = data)posthoc <- TukeyHSD(model)```3. 非参数检验(Kruskal-Wallis检验):当数据不满足正态性和方差齐性假设时,可以使用非参数方法进行两两比较,如Kruskal-Wallis检验。
可以使用kruskal.test函数进行Kruskal-Wallis检验,然后使用pairwise.wilcox.test函数进行多重比较。
```Rkruskal.test(value ~ group, data = data)pairwise.wilcox.test(data$value, data$group, p.adjust.method = "bonferroni")```这些方法都可以用于进行三组间的两两比较,具体应该根据数据的性质和实验设计来选择合适的方法。
在进行多重比较时,通常需要考虑到多重比较校正以控制错误率。
常见的多重比较校正方法包括Bonferroni校正、Holm校正等。
A14-如何在SAS中实现R×C列联表的两两比较内容来自网络,侵删在分析R×C列联表时,在卡方检验有统计意义的情况下常常需要做进一步的多重比较。
可以采用的方法为1)卡方分割(具体见本人另外一篇文章《R×C行列表卡方值分割的概念及运用》)将原表卡方值分割成独立的子卡方值,分割后的子卡方值和对应的自由度相加会和原表的卡方值和自由度相等。
2)或者采用彼此之间非独立的两两比较。
但是两两比较的卡方值和对应的自由度相加不会等于原表卡方值和自由度,所以此类比较不能称为卡方分割法。
尽管后者更为灵活但需要调整多重比较的次数以避免增加第一类错误。
本文将具体讲解如何在SAS中实现R×C列联表的两两比较。
1.研究数据-血型和疾病类型假定某医学课题想研究血型(O,A,B)和疾病类型(Peptic Ulcer, Gastric Cancer,Control)是否相互关联, 具体临床数据见表1。
表1:血型和疾病类型行列表Disease TypeBloodType Peptic Ulcer(I)-1 Gastric Cancer(II)-2 Control(III)-3 Total O-1983(14.024)383(4.9139)2892(1.4159)4258A-2679(9.0743)416(4.5484)2625(0.679)3720B-3134(4.6663)84(0.2695)570(0.9519)788Totals17968836087N=87662.初步分析我们先用SAS/PROC FREQ 和PROC CORRESP 先对数据做初步的分析,来判断行列变量之间的关系。
CELLCHI2 选项是计算按公式2-1计算每个单元格在总体值的组成。
2χij ijijji E OE C 2,)(-=(2-1)proc freq data=paper14;weight count;table r*c/chisq cellchi2nopercent;run;proc corresp data=paper14;weight count;les r, c;tabrun;表2 – 卡方检验结果Table of r by cr cFrequencyCell Chi-SquareRow PctCol Pct 123Total198314.02423.0954.733834.91398.9943.3728921.415967.9247.51425826799.074318.2537.814164.548411.1847.1126250.67970.5643.12372031344.666317.017.46840.269510.669.515700.951972.349.36788Total 179688360878766 Statistics for Table of r by cStatistic DF Value Prob ------------------------------------------------------ Chi-Square 4 40.5434 <.0001 Likelihood Ratio Chi-Square 4 40.6401 <.0001 Mantel-Haenszel Chi-Square 1 21.0035 <.0001 Sample Size = 8766从表2中可以看出第1行(血型O)的卡方检验分值在所有行中所占比重最高((14.024+4.9139+1.4159)/40.5434≈50%);第1列(Peptic Ulcer(I))的卡方检验分值在所有列中所占比重最高((14.024+9.0743+4.6663)/40.5434≈68.5%)。
如何用SAS软件正确分析生物医学科研资料XX. R × C列联表资料的统计分析与SAS软件实现(三)王琪;胡良平;柳伟伟【摘要】生物统计学是生物学领域科学研究和实际工作中必不可少的工具,在分子生物学迅速发展的今天,生物统计学更显示出了它的重要性。
实验设计与数据统计分析是现代生物学的基石,是生物学研究者检验假说、寻找模式、建立生物学理论的有利工具,也是生物学研究者探索微观和宏观生物世界的必备基础知识。
对于每天甚至是每时每刻涌现的大量的、以天文数字计量的分子遗传数据,必须借助统计学知识加以分析处理,才能从中获得有意义的信息。
“生物多样性数据分析”是开展生物多样性研究的一个重要方面,数据分析能力的高低极大地影响着我们对各种生态学现象认识的深度和广度。
现在,电子计算机的普及使得生物统计分析过程大大简化,生物统计分析软件包的普及将生物统计学从统计学家的书本里解放了出来,简化了生物统计分析过程,使之成为生物学研究者的常用工具。
本刊特邀军事医学科学院生物医学统计学咨询中心主任胡良平教授,以“如何用 SAS 软件正确分析生物医学科研资料”为题,撰写系列统计学讲座,希望该系列讲座能对生物医学科研工作者有所帮助。
【期刊名称】《中国医药生物技术》【年(卷),期】2012(000)006【总页数】3页(P469-471)【作者】王琪;胡良平;柳伟伟【作者单位】100850 北京,军事医学科学院生物医学统计学咨询中心;100850 北京,军事医学科学院生物医学统计学咨询中心;100850 北京,军事医学科学院生物医学统计学咨询中心【正文语种】中文XX. R × C列联表资料的统计分析与SAS软件实现(三)编者按生物统计学是生物学领域科学研究和实际工作中必不可少的工具,在分子生物学迅速发展的今天,生物统计学更显示出了它的重要性。
实验设计与数据统计分析是现代生物学的基石,是生物学研究者检验假说、寻找模式、建立生物学理论的有利工具,也是生物学研究者探索微观和宏观生物世界的必备基础知识。
SPSS超详细操作:卡⽅检验(R×C列联表)医咖会之前推送过⼀些卡⽅检验相关的⽂章,包括:卡⽅检验(2x2)、卡⽅检验(2xC)、配对卡⽅检验、分层卡⽅检验等。
今天我们再和⼤家分享⼀下,如何⽤SPSS来做RxC列联表的卡⽅检验。
⼀、问题与数据研究者拟分析购房⼈与购房类型的关系,共招募了在过去12个⽉中有过购房记录的333位受试者,收集了购房⼈类型(buyer_type)和房屋类型(property_type)的变量信息。
其中研究对象类型按照单⾝男性(single male)、单⾝⼥性(single female)、已婚两⼈(married couple)和多⼈家庭(family)分类;房屋类型按照楼房(flat)、平房(bungalow)、独栋别墅(detached house)和联排别墅(terrace)分类,部分数据如下图。
其中,Individual scores for each paticipant(左图)列出了每⼀个研究对象的情况,⽽Total count data (frequencies)(右图)则是对相同情况研究对象的数据进⾏了汇总。
⼆、对问题的分析研究者想分析多种购房⼈类型与多种房屋类型的关系,建议使⽤卡⽅检验(R×C),但需要先满⾜3项假设:假设1:存在两个⽆序多分类变量,如本研究中购房⼈类型和房屋类型均为⽆序分类变量。
假设2:具有相互独⽴的观测值,如本研究中各位研究对象的信息都是独⽴的,不会相互⼲扰。
假设3:样本量⾜够⼤,最⼩的样本量要求为分析中的任⼀期望频数⼤于5。
本研究数据符合假设1和假设2,那么应该如何检验假设3,并进⾏卡⽅检验(R×C)呢?三、SPSS操作1. 数据加权如果数据是汇总格式(如上图中的Total count data),则在进⾏卡⽅检验之前,需要先对数据加权。
如果数据是个案格式(如上图中的Individual scores for each paticipant),则可以跳过“数据加权”步骤,直接进⾏卡⽅检验的SPSS操作。
A14-如何在SAS中实现R×C列联表的两两比较内容来自网络,侵删在分析R×C列联表时,在卡方检验有统计意义的情况下常常需要做进一步的多重比较。
可以采用的方法为1)卡方分割(具体见本人另外一篇文章《R×C行列表卡方值分割的概念及运用》)将原表卡方值分割成独立的子卡方值,分割后的子卡方值和对应的自由度相加会和原表的卡方值和自由度相等。
2)或者采用彼此之间非独立的两两比较。
但是两两比较的卡方值和对应的自由度相加不会等于原表卡方值和自由度,所以此类比较不能称为卡方分割法。
尽管后者更为灵活但需要调整多重比较的次数以避免增加第一类错误。
本文将具体讲解如何在SAS中实现R×C列联表的两两比较。
1.研究数据-血型和疾病类型假定某医学课题想研究血型(O,A,B)和疾病类型(Peptic Ulcer, Gastric Cancer,Control)是否相互关联, 具体临床数据见表1。
表1:血型和疾病类型行列表Disease TypeBloodType Peptic Ulcer(I)-1 Gastric Cancer(II)-2 Control(III)-3 Total O-1983(14.024)383(4.9139)2892(1.4159)4258A-2679(9.0743)416(4.5484)2625(0.679)3720B-3134(4.6663)84(0.2695)570(0.9519)788Totals17968836087N=87662.初步分析我们先用SAS/PROC FREQ 和PROC CORRESP 先对数据做初步的分析,来判断行列变量之间的关系。
CELLCHI2 选项是计算按公式2-1计算每个单元格在总体值的组成。
2χij ijijji E OE C 2,)(-=(2-1)proc freq data=paper14;weight count;table r*c/chisq cellchi2nopercent;run;proc corresp data=paper14;weight count;les r, c;tabrun;表2 – 卡方检验结果Table of r by cr cFrequencyCell Chi-SquareRow PctCol Pct 123Total198314.02423.0954.733834.91398.9943.3728921.415967.9247.51425826799.074318.2537.814164.548411.1847.1126250.67970.5643.12372031344.666317.017.46840.269510.669.515700.951972.349.36788Total 179688360878766 Statistics for Table of r by cStatistic DF Value Prob ------------------------------------------------------ Chi-Square 4 40.5434 <.0001 Likelihood Ratio Chi-Square 4 40.6401 <.0001 Mantel-Haenszel Chi-Square 1 21.0035 <.0001 Sample Size = 8766从表2中可以看出第1行(血型O)的卡方检验分值在所有行中所占比重最高((14.024+4.9139+1.4159)/40.5434≈50%);第1列(Peptic Ulcer(I))的卡方检验分值在所有列中所占比重最高((14.024+9.0743+4.6663)/40.5434≈68.5%)。
这表明第1行和第1列与其他行列相比有显著不同。
同时,在图1中行1和列1很明显地远离其他行列。
这说明了表1中的行列表行变量(血型)和列变量(疾病类型)并非相互独立(Pearson 检验的P 值<0.0001)。
2χ那么如何运用统计检验来说明血型O 和Peptic Ulcer(I)与其他组存在有统计意义的区别?下面讨论如何运用两两比较来回答这个问题。
3. 在SAS PROC FREQ 中实现两两比较具体做法是:1) 从R×C 行列表中行变量中任取两不同的行和原行列表的列变量组成新的2×C 子行列表,共有⎪⎪次。
分别计算各子表的2χ值。
⎭⎫⎝⎛2R2) 从R×C 行列表中列变量中任取两不同的列和原行列表的行变量组成新的R×2子行列表,共有⎪⎪次。
分别计算各子表的2χ值。
⎭⎫⎝⎛2C3) 最后作根据比较次数做Bonferroni adjustment 。
a)如果只做行变量之间的比较,共⎪⎪次; b)如果只做列变量之间的比较,共 ⎪⎪次;c)如果都做比较,则⎪⎪⎭+次;⎭⎫⎝⎛2R ⎭⎫ ⎝⎛2C ⎫ ⎝⎛2R ⎪⎪⎭⎫⎝⎛2C表1-血型和疾病类型数据的两两比较的SAS 程序如下:proc freq data =paper14; where r in (1,2); weight count; table r*c/chisq ; run ;proc freq data =paper14; where r in (1,3); weight count; table r*c/chisq ; run ;proc freq data =paper14; where r in (2,3); weight count; table r*c/chisq ; run ;proc freq data =paper14; weight count;where c in (1,2); table r*c/chisq ; run ;proc freq data =paper14; weight count;where c in (1,3); table r*c/chisq ; run ;proc freq data =paper14; weight count;where c in (2,3); table r*c/chisq ; run ;6 个子表对应的卡方检验,原P-值,Bonferroni法矫正后的P-值如下:Obs comparison DF Value Raw_P1 12 33.7632 <.00012 2 2 14.9892 0.00063 3 2 1.0091 0.60384 4 2 30.5817 <.00015 5 2 29.6973 <.00016 6 2 5.6361 0.0597Test Raw Bonferroni1 <.0001 <.00012 0.0006 0.00333 0.6038 1.00004 <.0001 <.00015 <.0001 <.00016 0.0597 0.3583即使对原P-值进行保守的Bonferroni法矫正后,检验1,2和4,5都保持了统计意义。
这说明血型O与其他两个行组及Peptic Ulcer(I)与其他两个列组均存在有统计意义的差别。
4.在SAS PROC GENMOD中实现两两比较作为一个有意义的补充,我们也可以在log-linear模型下对行列变量进行上述的两两比较。
不过所得出的卡方为likelihood ratio Chi-square而不是Pearson Chi-square。
原表PROC FREQ 输出的LR卡方检验的结果如下:Obs comparison DF Value Raw_P1 12 33.9019 <.00012 2 2 15.6836 0.00043 3 2 1.0179 0.60114 4 2 30.6379 <.00015 5 2 29.7964 <.00016 6 2 5.6387 0.0596SAS/PROC GENMOD的程序和结果如下:proc genmod data=paper14;class r c;model count=r c r*c / dist=poisson type3;contrast"comparision1: O vs A across Cancer Type"r*c 1 -10 -110,r*c 10 -1 -101;contrast"comparison2: O vs B across Cancer Type"r*c 1 -10000 -110,r*c 10 -1000 -101;contrast"comparison3: A vs B across Cancer Type"r*c 0001 -10 -110,r*c 00010 -1 -101;contrast"comparision4: Peptic Ulcer vs Gastric Cancer across Blood type"r*c 1 -10 -110000 ,r*c 1 -10000 -110 ;contrast"comparision5: Peptic Ulcer vs Control across Blood type"r*c 10 -1 -101000,r*c 10 -1000 -101;contrast"comparison6: Gastric Cancer vs Control Group across Blood type"r*c 01 -10 -11000,r*c 01 -10000 -11;run;Contrast ResultsChi-Contrast DF Square Pr > ChiSq comparision1: O vs A across Cancer Type 2 33.90 <.0001 comparison2: O vs B across Cancer Type 2 15.68 0.0004 comparison3: A vs B across Cancer Type 2 1.02 0.6011 comparision4: Peptic Ulcer vs Gastric Cancer across Blood type 2 30.64 <.0001comparision5: Peptic Ulcer vs Control across Blood type 2 29.80 <.0001 comparison6: Gastric Cancer vs Control Group across Blood type 2 5.64 0.0596SAS/PROC FREQ 和 SAS/PROC GENMOD 的结果一致。