- 论坛徽章:
- 0
|
两个率或多个率的比较,我们非常熟悉的就是采用卡方检验的方法。除此之外,在特定条件下还可根据正态近似的原则采用u检验的方法进行分析。在SAS中,卡方检验的功能包含在freq过程之中,下面我们先熟悉一下freq过程的基本内容和功能。
一、freq过程的语句和功能
freq过程包含在SAS的BASE模块中,它可以执行描述性统计以及假设检验的功能,能产生从1维到n维的表格,即频数表以及列联表。对于单因素的频数表,freq过程可以进行比率之间的比较;对于列联表资料(两个或更多因素),它可以对两因素间的关系进行统计学推断,必要时可以按照某些因素进行分层分析。对于两因素关系的统计学分析,freq过程不仅可以检验关系的存在与否,还可以给出这种关系的强度。
下表(表5.1)是freq过程对于列联表资料可以进行的分析以及计算的统计量。
表5.1
卡方检验;
关联性的推断及其强度测量;
2×2表资料危险度计算以及危险度差别的检验;
2×2表资料OR值以及相对危险度的计算;
趋势检验;
一致性检验;
Cochran-Mantel-Haenszel 统计量计算。
1. freq过程的一般格式
freq过程的一般格式如下所示。
PROC FREQ 选项列表>;
BY 变量名-1 变量名-n> ;
EXACT 统计量关键字 选项列表>;
OUTPUT 统计量关键字 ;
TABLES 因素表达式 选项列表>;
TEST 统计量关键字;
WEIGHT 变量名;
RUN;
QUIT;
表面上看起来freq过程的语句并不复杂,但它可实现很多复杂的功能。下面就freq过程中特有的语句和选项加以简要说明。
2. freq过程中各语句及选项的格式及功能
2.1 proc freq语句用以调用freq过程,标志freq过程的开始,其后的选项除和其它过程相同的一般性的控制功能外,没有什么特别之处,我们一般也不太用到。
2.2 by语句和以前的内容完全相同,这里不再说明。
2.3 Exact语句用以控制对精确概率的计算以及对指定统计量进行可信限估计。对于以下假设检验,freq过程可以计算其精确P值:拟合优度卡方检验(chi-square goodness-of-fit)、Pearson卡方检验(Pearson chi-square)、似然比卡方检验(likelihood-ratio chi-square)、 Mantel-Haenszel卡方检验(Mantel-Haenszel chi-square)、Fisher’s确切概率检验(Fisher's exact test)、Jonckheere-Terpstra检验(Jonckheere-Terpstra test)、Cochran-Armitage 趋势检验(Cochran-Armitage test for trend)以及McNemar's检验(McNemar's test for two-way tables)
2.4 Output语句大家已很熟悉,它用于将结果数据输出到指定的数据集。
2.5 Tables语句在freq过程中算是非常关键的语句,它用以指定所要分析的因素如何构成列联表,并在选项中指定所要计算的统计量。其中的因素表达式就是列联表的构成方式,如果只有一个因素,就将该因素的变量名作为表达式;如果因素有两个或以上,各因素之间以星号——“*”相连。这里大家要明确一点,SAS对于两个以上因素组成的表达式,将排在最后的两个变量作为列联表的行和列,而其它排在前面的因素则作为分层因素对待。比如对于表达式:A*B*C*D,SAS绘制出k(等于A、B两因素水平数的乘积)个交叉表,表格的行因素为C,列因素为D。
在同一个tables语句中,你可以指定多个因素表达式以完成多个交叉表的绘制。灵活运用圆括号的分组语法可达到此目的,具体方法如以下表格(表5.2)中显示的例子。
表5.2 多表格表达式示例
表达式
等同表达式
tables a*(b c);
tables a*b a*c;
tables (a b)*(c d);
tables a*c b*c a*d b*d;
tables (a b c)*d;
tables a*d b*d c*d;
tables a--c;
tables a b c;
tables (a--c)*d;
tables a*d b*d c*d;
Tables语句的选项主要用以指定所要进行的具体统计分析方式,如:agree、 all、 chisq、 alpha、 fisher、 trend等等,分别指定SAS进行不同的统计计算。
2.6 test语句用以指定SAS对给定的统计量进行近似检验,此语句的有效性需要相应的tables语句选项来保证。
2.7 weight语句以前已经讨论过,这里的完全一样。
对于freq过程大家已经有了一个大概的了解,下面我们用实例来演示freq过程在各种情况下处理相应资料的操作方法。
二、freq过程对各种类型计数资料处理操作方法
1. 两个率比较的卡方检验
例5-1 一项治疗
糖尿病
的临床试验中,将268名患者随机分为两组,一组204人服用盐酸苯乙双胍,死于心血管病的有26人,另一组64人服用安慰剂,死于心血管病的有2人,请分析两种疗法的心血管病病死率有无差异?
此例为典型的四格表资料,是我们最乐意用卡方检验进行分析的数据形式,非常简单的几条语句就可完成对数据的分析。
编制程序如下:
libname a 'e:\data\';
data a.case5_1;
input treat outcome number;
datalines;
1 1 178
1 2 26
2 1 62
2 2 2
;
proc freq;
weight number;
tables treat*outcome/chisq;
run;quit;
此处treat代表不同的治疗药物,1表示服用盐酸苯乙双胍,2表示服用安慰剂;outcome代表患者的结局(死亡与否),1表示生存,2表示死于心血管病,number则表示患者的人数。Tables语句后的chisq选项指示SAS进行卡方统计量的计算。
运行上述程序,结果如下。
The SAS System 20:29 Wednesday, November 27, 2002 5
The FREQ Procedure
Table of treat by outcome
treat outcome
Frequency|
Percent |
Row Pct |
Col Pct | 1| 2| Total
---------+--------+--------+
1 | 178 | 26 | 204
| 66.42 | 9.70 | 76.12
| 87.25 | 12.75 |
| 74.17 | 92.86 |
---------+--------+--------+
2 | 62 | 2 | 64
| 23.13 | 0.75 | 23.88
| 96.88 | 3.13 |
| 25.83 | 7.14 |
---------+--------+--------+
Total 240 28 268
89.55 10.45 100.00
The SAS System 20:29 Wednesday, November 27, 2002 6
The FREQ Procedure
Statistics for Table of treat by outcome
Statistic DF Value Prob
------------------------------------------------------
Chi-Square 1 4.8188 0.0282
Likelihood Ratio Chi-Square 1 6.0021 0.0143
Continuity Adj. Chi-Square 1 3.8454 0.0499
Mantel-Haenszel Chi-Square 1 4.8008 0.0284
Phi Coefficient -0.1341
Contingency Coefficient 0.1329
Cramer's V -0.1341
Fisher's Exact Test
----------------------------------
Cell (1,1) Frequency (F) 178
Left-sided Pr
Right-sided Pr >= F 0.9967
Table Probability (P) 0.0144
Two-sided Pr
Sample Size = 268
结果给出的内容很是详细,第一部分是四格表的内容,每一个格子内给出四项内容,分别为频数、百分比、行百分比以及列百分比。第二部分为卡方检验的结果,SAS在默认状态下即给出此若干项统计量的结果以及相应的概率,具体的含义大家从字面上就可看出来,这里我不再多说。最后,SAS还给出fisher精确概率的计算结果,提供给我们更多的选择。
对于病例对照研究,可在tables语句后添加选项‘cmh’,SAS即会给出“Cochran-Mantel-haenszel”统计量的结果,以及相对危险度、比数比等重要指标。如果资料为1:1配对资料,即四格表中数据为不同组合的对子数,则需要采用McNemar检验,此时只需在tables语句后添加选项‘agree’,或添加语句——“exact mcnem;”即可。
2. R*C表资料的卡方检验
例5-2 对1135例绝经后出血的妇女进行病理分析,结果见表5.3,请分析病变类型是否与年龄有关。
表5.3 不同年龄妇女绝经后出血的病变类型
年龄组/岁
病变类型,例数(百分比)
合计
功能性
恶性
良性
≤50
60(44.4)
16(11.9)
59(43.7)
135
51~
208(33.3)
111(17.8)
306(49.0)
625
61~
66(25.0)
79(29.2)
119(45.1)
264
71~
21(18.9)
47(42.3)
43(38.7)
111
合计
355(31.3)
253(22.3)
527(46.4)
1135
此例为4*3表资料,对于年龄和病变类型两个属性间的独立性检验,完全可以使用和前述四格表资料分析方法相同的pearson卡方检验,程序的步骤和内容也是基本相同的。
对此例资料进行分析的程序如下:
libname a 'e:\data\';
data a.case5_2;
do age=1 to 4;
do pathtype=1 to 3;
input count@@;
output;
end;
end;
datalines;
60 16 59 208 111 306
66 79 119 21 47 43
;
run;
proc freq;
tables age*pathtype/chisq;
weight count;
run;
quit;
大家可以看到,和上例的程序相比,此例并无多少差异,SAS对于交叉表形式的计数资料,进行卡方检验的程序是完全相同的。其不同的地方是根据我们对资料分析需要的不同而有所区别,比如我们对于线性趋势的检验一般只针对R*C表资料。
提交以上程序,结果如下。
The SAS System 20:54 Thursday, November 28, 2002 26
The FREQ Procedure
Table of age by pathtype
age pathtype
Frequency|
Percent |
Row Pct |
Col Pct | 1| 2| 3| Total
---------+--------+--------+--------+
1 | 60 | 16 | 59 | 135
| 5.29 | 1.41 | 5.20 | 11.89
| 44.44 | 11.85 | 43.70 |
| 16.90 | 6.32 | 11.20 |
---------+--------+--------+--------+
2 | 208 | 111 | 306 | 625
| 18.33 | 9.78 | 26.96 | 55.07
| 33.28 | 17.76 | 48.96 |
| 58.59 | 43.87 | 58.06 |
---------+--------+--------+--------+
3 | 66 | 79 | 119 | 264
| 5.81 | 6.96 | 10.48 | 23.26
| 25.00 | 29.92 | 45.08 |
| 18.59 | 31.23 | 22.58 |
---------+--------+--------+--------+
4 | 21 | 47 | 43 | 111
| 1.85 | 4.14 | 3.79 | 9.78
| 18.92 | 42.34 | 38.74 |
| 5.92 | 18.58 | 8.16 |
---------+--------+--------+--------+
Total 355 253 527 1135
31.28 22.29 46.43 100.00
The SAS System 20:54 Thursday, November 28, 2002 28
The FREQ Procedure
Statistics for Table of age by pathtype
Statistic DF Value Prob
------------------------------------------------------
Chi-Square 6 58.9049
Likelihood Ratio Chi-Square 6 56.1468
Mantel-Haenszel Chi-Square 1 3.6219 0.0570
Phi Coefficient 0.2278
Contingency Coefficient 0.2221
Cramer's V 0.1611
Sample Size = 1135
结果也和例5-1基本相同,有所不同的是此处没有经连续性校正的卡方值(这里不需要校正),也没有自动给出fisher精确概率值。
在得出两因素不相互独立的结论后,可进一步对因素的各水平进行两两之间的差异检验,这就涉及到R*C表的拆分问题,关于此内容统计学教科书上多数都有介绍,感兴趣的可以自己研究一下。
本章关于两个率和多个率的比较问题就先介绍这么些内容,下一章我们将讨论非参数统计方法的编程实现。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/69783/showart_699532.html |
|