第六章 分类资料的统计描述与简单推断
在 SAS/STAT模块中FREQ、TABULATE和SUMMARY等过程可用于分类资料的统计描述,其中FREQ过程兼具统计描述和统计推断的功能,对分类变量计算频数分布,产生从一维到n维的频数表和列联表;对于二维表,可进行c2检验,对于三维表,可作Mentel-Hanszel分层分析。FREQ过程是SAS用于分析分类资料的一个常用过程。本章将向大家介绍FREQ过程的用法。
§ 6.1 引 例
例 6.1 某医生用国产呋喃硝胺治疗十二指肠溃疡,以甲氰咪胍作对照组,问两种方法治疗效果有无差别(医统第二版P37 例3.10)?
处 理 |
愈 合 |
未愈合 |
合计 |
呋喃硝胺 |
54 |
8 |
62 |
甲氰咪胍 |
44 |
20 |
64 |
合 计 |
98 |
28 |
126 |
解:在建立行´ 列表的数据集时一般需要三个变量 ――行变量、列变量和指示每个格子中频数的变量。本例首先建立这样一个数据集,然后调用FREQ过程输出行´ 列表,同时利用CHISQ选项进行c 2检验。
① 设定数据库环境:
LIBNAME A C:\USER ;
② 数据步,建立数据集(这里同时给出直接输入和利用循环语句输入两种程序):
DATA A.YTLI8_1; |
DATA A.YTLI8_1; |
INPUT ROW COLUMN NUMBER ; |
DO ROW=1 TO 2; |
CARDS; |
DO COLUMN=1 TO 2; |
1 1 54 |
INPUT NUMBER @@; |
1 2 8 |
OUTPUT; |
2 1 44 |
END; |
2 2 20 |
END; |
; |
CARDS; |
RUN; |
54 8 44 20 |
|
; |
|
RUN; |
③ 调用FREQ过程,进行c 2检验:
PROC FREQ DATA=A.YTLI8_1; |
TABLE ROW*COLUMN / CHISQ; |
WEIGHT NUMBER; |
RUN; |
§ 6.2 FREQ过程
6.2.1 语法格式
PROC FREQ [选项]; |
|
TABLES 请求式/[选项]; |
必需,指定行变量和列变量 |
WEIGHT <变量名>; |
指定频数指定变量 |
BY <变量名列>; |
|
如: PROC FREQ;
TABLES A ;
产生变量A的一维频数表。
PROC FREQ ;
TABLES A*B ;
产生A、B两个变量的列联表,*前为行变量,*后为列变量。
在TABLES语句中用*号连接三个或n个变量名,可得到三维或n维列联表,最后一个变量各水平形成表的列,倒数第二个变量各水平形成表的行,其它变量的每一级水平(或水平组合)形成一层,且每一层都形成分离的列联表。
如: PROC FREQ;
TABLES A*B*C*D ;
列联表的数量为A、B不同水平的组合数,每个表的上部为D的各水平,左侧为C的各水平。
6.2.2 语法说明
【程序步选项】
DATA=数据集 规定PROC FREQ语句使用的数据集
ORDER=FREQ 按频数递减顺序排列
ORDER=DATA 按数据集中出现的顺序排列
ORDER=INTERNAL 按内部值排列(缺省)
ORDER=FORMATTED 按外部格式值排列
【TABLES语句】
PROC FREQ过程中可有多条TABLES语句,TABLES语句后可接多个表格请求式,每个请求式可包含任何数量的变量,从而得到所需的表格。
如果TABLES语句缺省,则FREQ过程对数据集中的所有变量都给出相应的一维频数表。不规定任何选项时,若需某变量的一维频数,FREQ给出该变量每一水平的频数(freqency)、累积频数(cumulative freqency)、频数的百分比(percent)和累积百分比(cumulative percent);若需二维频数表,FREQ产生交叉分组列表,即包括各格的频数、总频数的格百分数、行频数的格百分数和列频数的格百分数。
请求式由一个或多个用“*”连接起来的变量名组成。几个变量可放在括号中,如:
TABLES A*(B C);等价于TABLES A*B A*C;
TABLES (A-C)*D;等价于TABLES A*D B*D C*D;
下列选项可用于TABLES语句中“/”的后面:
- 普通选项
- OUT=数据集 建立一个包含变量值和频数计数的输出数据集。如果TABLES语句中不止一个请求式,数据集的内容相应于TABLES语句中最后一个请求。
- 统计分析选项
- CHISQ 对每层作c 2检验,包括Pearson c 2、似然比c 2和Mantel-Haenszel c 2。此外还给出与c 2检验有关的关联指标包括Phi系数、列联系数和Cramer’s V。对于2×2表,给出Fisher精确概率。
- AGREE 进行配对c 2检验。
- EXACT 对大于2×2的列联表计算Fisher精确概率。同时也给出CHISQ选项的全部统计量。
- MEASURES 对每层的二维表计算一系列关联指标及相应的标准误,包括Pearson和Spearman相关系数,以及Gamma和Kendall系数等。对于2×2表,还给出常用的危险度指标及其标准误。
- CMH 给出Cochran-Mantel-Haenszel统计量,可检验在调整了TABLES语句中其它变量后,行变量与列变量之间的关联程度。对于2×2表,FREQ过程给出相对危险度估计及其可信区间,还给出各层关联度指标是否齐性的Breslow检验。
- ALL 给出CHISQ、MEASURES、CMH所请求的全部统计量。
- ALPHA=p 给出检验水准。缺省为0.05。
- 有关表格信息选项
- EXPECTED 给出期望频数
- DEVIATION 给出每格的实际频数与期望频数的差值
- CELLCHISQ 给出每格对总c 2的贡献,即计算每格的(实际频数-期望频数)2/期望频数。
- CUMCOL 给出累积列百分数
- 禁止输出选项
- NOFREQ 不给出列联表中的格频数
- NOPERCENT 不给出列联表中的格百分数
- NOROW 不给出列联表中各格的行百分数
- NOCOL 不给出列联表中各格的列百分数
- NOCUM 不给出频数表的累积频数和累积百分数
- NOPRINT 不给出表格,但给出CHISQ、MEASURES或CMH等语句所指定的统计量。
【WEIGHT语句】
通常每个观察值提供数值1给频数计数,当WEIGHT语句出现时,每个观察值提供的是该观察值的加权变量值。该值必须非负,但可不必为整数。只能使用一个WEIGHT语句,且该语句作用于所有的表。
6.2.3 结果解释
当 TABLES语句不带任何选项时,FREQ过程只输出N维频数表,只有在选项中指定统计方法后才输出相应的检验结果。下面以本章例8.1的输出为例,解释FREQ过程的结果。
TABLE OF ROW BY COLUMN
每个单元格给出以下结果:ROW为行变量,COLUMN为列变量
|
ROW COLUMN |
频数,指格频数 |
Frequency| |
百分数 |
Percent | 百分数即指该格频数占总频数的百分比 |
行百分数 |
Row Pct | 指该格频数占该行总频数的百分比 |
列百分数 |
Col Pct | 1| 2 | Total 行变量的不同取值及合计 |
|
---------+-------+-------+ |
列 |
1 | 54 | 8 | 62 |
变 |
| 42.86 | 6.35 | 49.21 |
量 |
| 87.10 | 12.90 | |
的 |
| 55.10 | 28.57 | |
不 |
---------+-------+-------+ |
同 |
2 | 44 | 20 | 64 |
取 |
| 34.92 | 15.87 | 50.79 |
值 |
| 68.75 | 31.25 | |
及 |
| 44.90 | 71.43 | |
合 |
---------+-------+-------+ |
计 |
Total 98 28 126 |
|
77.78 22.22 100.00 |
STATISTICS FOR TABLE OF ROW BY COLUMN
Statistic DF Value Prob
------------------------------------------------------
Pearson c2 Chi-Square 1 6.133 0.013
似然比c2 Likelihood Ratio Chi-Square 1 6.304 0.012
c2M-H Continuity Adj. Chi-Square 1 5.118 0.024
Mantel-Haenszel Chi-Square 1 6.084 0.014
Fisher's Exact Test (Left) 0.997
(Right) 0.011
(2-Tail) 0.018
Phi Coefficient 0.221
Contingency Coefficient 0.215
Cramer's V 0.221
Sample Size = 126 样本例数为126
以上统计结果的最后三行为三个系数,三项均无P值,只给出具体的统计量值。它们都是用于刻划行变量、列变量两个分类变量之间关联强度的描述性统计量。
给大家讲件真事,也是笑话,如果你笑得出来。有位同学做课题,考虑到统计不太熟,就找另一位研究生(当然不是统计专业的)来帮他。这位朋友用FREQ过程得出c 2检验结果,同学看了直犯愁,便问道:“这么多P值,用哪个呀?”朋友反问:“你是想有差别还是无差别?”他回答:“当然是有差别喽。”答曰:“那就用P值最小的那个!”
6.2.4 应用实例
例 6.2 某地测得6094人的血型结果如下,问ABO血型与MN血型有无关联?(医学统计学第二版P.197 2.11题)
血 型 |
M |
N |
MN |
合计 |
O |
431 |
490 |
902 |
1823 |
A |
388 |
410 |
800 |
1598 |
B |
495 |
587 |
950 |
2032 |
AB |
137 |
179 |
325 |
641 |
合 计 |
1451 |
1666 |
2977 |
6094 |
解:程序如下:
data.yt2_11; |
do a=1 to 4; |
do b=1 to 3; |
input count @@; |
output; |
end; |
end; |
cards; |
431 490 902 388 ... |
; |
proc freq; |
tables a * b/chisq; |
weight count; |
run; |
例6.3 用甲乙两种培养基培养结核杆菌45份,问两种培养基何者为优?(医学统计学第一版P.310 1.14题)
乙 培 养基
|
|
甲培养基 |
|
|
+ |
- |
合计 |
+ |
12 |
16 |
28 |
- |
4 |
13 |
17 |
合计 |
16 |
29 |
45 |
解 :程序如下(结果给出c2及其P值):
data a.yt1_14; |
input r c num @@; |
cards; |
1 1 12 1 2 16 2 1 4 2 2 13 |
; |
proc freq; |
tables r*c/agree; |
weight num; |
run; |
注:该方法在ASSIST视窗中无法实现,在低版本的SAS中也无法实现。
|