WEIGHT 变量; BY 变量表;
PROC FREQ 语句为必须语句,其他语句为可选语句。
1.PROC FREQ 语句
PROC FREQ [选择项]; 选择项有:
DATA=SAS数据集 规定此过程使用的数据集。如省略,则FREQ过程使用最新建立的数据集。
ORDER=FREQ|DATA|INTERNAL|FORMATTED 规定变量各级被报告出来的次序。
ORDER=FREQ 按递减的频数计数次序排列,即最大频数在前。 ORDER=DATA 按它们首先出现在输入数据集中的顺序放置。 ORDER=INTERNAL 按值的内部表示排列。 ORDER=FORMATTED 按外部的格式值排列。 缺省值是ORDER=INTERNAL。ORDER=选择项不适用于缺项值,缺项值总是排在前面。
2.TABLES语句
TABLES 请求式?/选择项;
请求式由一个或多个由“*”号连起来的变量组成。一维表由一个变量名产生;二维表由“*”相连的二个变量名产生,任何数量的变量能被联起来得到多维的表格。FREQ过程可有多个TABLES语句,每个TABLES语句也可以有多个请求式。
下面的TABLES语句中,左边二栏与右边一栏意义一致。 TABLES A*(B C): 等同于 TABLES A*B A*C;
TABLES (A B)*(C D); 等同于 TABLES A*C A*D B*c 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 A-C*D;不合法。
如无TABLES语句,FREQ对数据集中所有变量求一维频数。如需要某变量的一维频数表并不规定选择项,FREQ对变量的每一个水平产生频数、累计频数、百分数和累计百分数。如需要一个二维表,且不规定任何选择项,FREQ产生交叉分组列表。此表包括各格的频数,总频数的百分数,行频数的百分数和列频数的百分数。每个变量的缺项被从表中排除了,但缺项的总频数打印在每一表的下面。
放在TABLES语句中“/”后面的选择项有: 1)一般选择项:
MISSING 象分析非缺项值那样分析缺项值,且在百分数计算和其他统计计算时包括缺项值。
LIST 不是用列联表而是用列表格式打印两维或多维表格。当需统计检验和联合测量时则不能使用LIST选择项。
OUT=SAS数据集 建立一个包括变量值和频数的输出数据集。如TABLES语句中有多个请求式,则输出数据集的内容为最后一个表请求式。
2)请求统计分析的选择项
CHISQ 请求卡方(?2)检验和基于卡方的有关测量。检验包括泊松卡方、似然卡方和曼特尔-享塞尔(Mantel一Haenszel)卡方。测量包括斐(phi)系数、列联系数和克莱姆系数V(Cramer’v)。对于2*2表也包括费雪尔(Fisher)精确检验。
EXACT 请求对大于2*2的表进行Fisher精确检验。
此外还有CMH、ALL、MEASURES等选择项。
3)请求附加的表格信息的可选项
EXPECTED 请求打印在独立(或齐性)假设下的期望格频数。 DEVIATION 请求打印出各格的格频数和期望值的偏差。 CELLCHI2 请求打印出每一格对总?2(卡方)统计的贡献。 CUMCOL 请求在格中打印累计列百分数。 MISSPRINT 要求打印缺项值频数。
SPARSE 使过程打印出在请求表中几个变量水平的所有可能组合的信息。即使某些水平的组合不在数据中,此选择项影响在LIST选择项下的打印输出和输出的数据集。
4)禁止打印选择项
NOFREQ 禁止打印列联表中的格频数。 NOPERCENT 禁止打印列联表中的百分数。
NOROW 禁止打印列联表中各格的行百分数。 NOCOL 禁止打印列联表中各格的列百分数。
NOCUM 禁止打印一维频数表和用LIST格式的频数表的累计频数和累计百分数。
NOPRINT 禁止打印表格,但由CHISQ、MEASURES、CMH和ALL所指定的统计值例外。
8.2.3 打印输出
1.显示变量频数分布的一维表 打印下面的内容: 1)变量名和变量值
2)FREQUENCY 频数,给出每种值的频数 3)CUMULATIVE FREQUENCY 累计频数
4)PERCENT 百分数,给出代表该值占总数的百分数
5)CUMULATIVE PERCENT 累计百分数
2.二维表
二维表可以以列联表(缺省)和清单(指定LIST)的形式打印。列联表的每个表格包含第6~9项。 6)FREQUENCY 频数
7)PERCENT 代表该格的频数占总频数的百分数
8)ROW PCT 行百分数,代表该格的频数占该行的总频数计数的百分数
9)COL PCT 列百分数,代表该格的频数占该列的总频数计数的百分数
10)如指定了CHISQ选择项,则对每个二维表打印联合检验和测量
11)如指定了EXPECTED、DEVIATION、CELLCHl2等选择项,还可打印出它们各自代表的值。
8.2.4 举例
例1:下列例子说明了FREQ过程和TABLES语句中某些选择项的应用。(yp79.sas)
DATA A;
INPUT A B @@; CARDS;
1 2 2 1 . 2 . . 1 1 2 1 ;
PROC FREQ; TABLES A*B;
TITLE '2 -- Way Contingency Table'; PROC FREQ;
TABLES A*B /LIST;
TITLE '2 -- Way Frequency Table, ORDER=DATA'; RUN;
例2:卡方检验
卡方检验为一种用途较广的显著性检验方法,常用于检验两个或两个以上样本率或构成比之间差别的显著性。 用FREQ过程进行卡方检验的步骤: 1)假设样本率或构成比之间无差别 2)在TABLES语句中指定CHISQ选择项
3)根据给出的结果,进行分析得出结论
例 在吸烟诱发癌症的实验中,分吸烟与不吸烟两组,问两组发癌率的差别有无显著性。(yp80.sas)
发癌数 未发癌数 吸烟组 52 19 不吸烟组 15 36
据上表数据建立数据集,对分组变量请求卡方检验。程序如下:
DATA ABC;
DO A=1 TO 2; DO B=1 TO 2; INPUT F @@; OUTPUT; END; END; CARDS;
52 19 15 36 ;
PROC FREQ; WEIGHT F;
TABLES A*B /CHISQ EXPECTED NOPERCENT NOCOL; RUN;
第三节 TABULATE 过程
8.3.1 简介
TABULATlE过程以表格的形式输出满足用户要求的描述性统计。表格可达三维:页、行和列。TABULATE过程的特点是给用户一个直观的统计结果;表格的形式可由用户自由安排;
TABULATE过程能对数据进行诸如均值、频数、百分数、最大值、最小值、标准误差、方差等的统计分析。可见,TABULATlE过程既是一个统计分析过程,又是一个报表过程。
例:某单位的职工基本情况表如下表。表中描述了8位职工的姓名、性别、职称和年龄四项信息。如果对表中内容按职称进行分类的话,可把职工分为教授(P)、副教授(AP)和讲师(L)三类。如果要找出每类职称的人数、最大年龄、最小年龄、平均年龄这些统计量,程序如下。为了简化程序,未对人数(N)一栏作整数输出限制。
职工基本情况表 姓名(Name) 性别(Sex) 职称(Titl) 年龄(Age) Zhouli M P 50 Yuke W AP 48 Liping W AP 47 Liuling M L 37 Wangfang W L 28 Leiming M AP 32 Fangjin M L 26 Liuming W AP 36 程序如下:(yp82.sas)
DATA D1;
INPUT NAME $ SEX $ TITL $ AGE @@; CARDS;
Zhouli M P 50 Yuke W AP 48 Liping W AP 47 Liuling M L 37 Wangfang W L 28 Leiming M AP 32 Fangjin M L 26 Liuming W AP 36 ;
PROC TABULATE FORMCHAR='|----|+|---'; CLASS TITL; VAR AGE;
TABLE TITL ALL,AGE*(N MAX MIN MEAN); RUN;
8.3.2 语句说明
在TABULATE过程中可使用下列语句: PROC TABULATE [选择项]; CLASS 分类变量表; VAR 分析变量表; FREQ 变量; WEIGHT 变量;
FORMAT 变量 格式?; LABEL 变量=标记?;
KEYLABEL 关键字=‘文本’?;
TABLE 表达式 [,表达式][,表达式][/选择项];
在TABULATE过程中,PROC TABULATE语句说明过程的开始,并通过其后的选择项定义一些有关的选择内容。与之紧密联系的语句是TABLE语句,它指出输出表格的格式。TABLE语句及VAR或CLASS语句是必需的。变量表是用空格分开的多个变量。 1.PROC TABULATE 语句
PROC TABULATE [选择项];
PROC TABULATE语句可包含如下选择项:
DATA=SAS数据集 说明TABULATE过程所使用的数据集,如不说明这个选择项,TABULATE过程使用最新建立的SAS数据集。
MISSING 有MISSING选择项时,TABULATE过程把分类变量的缺项值作为有效水平。否则,TABULATE在分析中将不包含分类变量有缺项值的观测值。
FORMAT=格式名 规定表格输出的宽度。缺省值为12.2。
2.TABLE语句
TABLE 表达式[,表达式][,表达式][/选择项];
TABLE 语句是整个TABULATE过程的核心。其中包含了很多重要概念。 一个TABLE语句最多可以定义三个表格表达式。这三个表达式分别表达了输出表格的页、行和列的有关规定。当缺省一个表达式时,表示TABLE语句定义了一个二维表格。同理,当缺省两个表达式时,TABLE语句定义