当前位置:文档之家› Ch6 SAS基本统计过程(二) freq

Ch6 SAS基本统计过程(二) freq


乙组 56
19
建立SAS数据集,行变量row,列 变量col,行列交叉对应的频数f
Data a; Input row col f; Cards; 1 1 74 1 2 51 2 1 56 2 2 19 ; Run;
Slide 6
彭斌
Proc freq data=a; Tables row*col; 无weight语句 Run; 产生结果如下: row col
65 53 67 79 48 77 68 68 61
94 79 83 71 60 70 68 65 65 103 74 64 69 81 75 75 75 70 89 104 86 77 87 75 79 61 60 85 60 83 74 80 68 88 94 72
Slide 9
Data ex491; Set ex49;
彭斌
小孩腹泻 腹泻次数 小孩体重 分娩方式 喂养方式 母亲年龄 教育程度 2 0 2750 2 1 31 2 1 2 3390 1 1 27 2 2 0 3200 1 1 28 1 2 0 3150 1 1 28 1 1 1 2550 2 2 23 3 1 2 3050 1 1 26 1 1 2 3550 1 2 30 1 2 0 2900 2 1 28 1 1 3 4350 1 2 32 1 2 0 3200 1 3 29 2 2 0 3100 1 1 35 3 1 2 2750 1 1 29 1 2 0 3050 1 1 27 1 1 2 3000 1 1 24 2 1 1 3250 2 1 36 2 2 0 3250 1 1 29 1 3400 1 2 25 2 2 0 2 0 3600 2 1 29 3 1 3 2900 1 2 30 2 1 1 3200 2 2 35 3 2 0 3200 1 1 33 1 1 3 3300 1 1 26 2 2 0 3600 1 1 26 1
彭斌
Slide 1
1. PROC FREQ <option(s)>; 这里的options常用的有 Data=SAS-data-set,指定输入数据集名,若省略,则 用最近建立的数据集。
彭斌
Slide 2
2. TABLES request(s) </ option(s)>; TABLES语句是该过程中非常重要的一条语句。在 一个PROC FREQ过程中,可以有任意多个tables语句; 如果没有tables语句,FREQ对数据集中的每个变量 都生成一个单向频数表; 如果tables语句没有任何说明选项(options),FREQ 对tables语句中规定的变量的每个水平将计算频数、累 计频数、占总频数的百分数及累计百分数。
ቤተ መጻሕፍቲ ባይዱ
可见,有无weight语句对结果产生很大的差异,对于该资料, 由于是频数资料,因此一定要加上weight语句。
彭斌
Slide 7
例4-8:频数表的编制
某年某地149名成人脉博资料(次/分)的测定数据如下: 试作频数表。 58 58 60 70 74 79 55 79 71 84 64 75 79 94 57 59 83 58 71 75 68 65 62 79 68 71 68 97 52 83 72 68 73 57 68 67 75 68 63 96 81 68 88 53 71 95 57 79 73 81 81 83 80 75 77 77 93 72 78 68 91 70 83 70 68 74 71 86 63 68 63 58 95 59 56 88 70 72 73 83 69 54 60 79 54 84 94 72 73 67 68 72 72 71 82 79 56 68 86 66 97 66 94 72 65 53 67 79 48 77 68 68 61 94 79 83 71 60 70 68 65 65 103 74 64 69 81 75 75 75 70 89 104 86 77 87 75 79 61 60 85 60 83 74 80 68 88 94 72
关于gchart过程,感兴趣的同学可以在SAS命令框里输入 “help gchart”并回车得到帮助。
彭斌
Slide 12
彭斌
Slide 13
例4-9 某研究人员收集了婴儿的相关资料,试进行描述性 分析
1=有 2=无 1=手术 2=顺产 1=母乳 2=牛奶 3=混合 1=高 2=中 3=差
编号 1 2 3 4 5 7 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Slide 14
分析内容
------《一维表》------- 小孩腹泻发生比例是多少? 发生次数怎样? 分娩方式:手术产和顺产比例分别是多少? 喂养方式构成?(母乳、牛奶、混合) ------《交叉表》------- 不同喂养方式的腹泻发生率怎样? 分娩方式 与喂养方式有无关联?
第五章 计数资料的统计描述与推断
关于计数资料的统计推断,最为常用的是 FREQ过程。 FREQ过程可以用于两个目的:一是描述分析,产生频 数表和列联表,可简洁地描述数据;二是统计推断,产生 各种统计量,可分析变量间的关系。 该过程主要由下列语句控制: PROC FREQ <option(s)> TABLES request(s) </ option(s)>; WEIGHT variable; 该过程PROC FREQ语句是必需的,其它语句都是可选的。
Proc freq data=a; Tables row*col; Weight f; row Run; col Frequency| Percent | 产生结果如下:
Row Pct | Col Pct | 1| 2| Total ---------+--------+--------+ 1 | 74 | 51 | 125 | 37.00 | 25.50 | 62.50 | 59.20 | 40.80 | | 56.92 | 72.86 | ---------+--------+--------+ 2 | 56 | 19 | 75 | 28.00 | 9.50 | 37.50 | 74.67 | 25.33 | | 43.08 | 27.14 | ---------+--------+--------+ Total 130 70 200 65.00 35.00 100.00
彭斌
Slide 11
如果要将上面的频数表以频数图的形式表达 出来,可以使用如下程序:
Proc gchart data=ex491; /*调用gchart过程*/ hbar x /space=0 /*生成直方图,直条间无空隙*/ midpoints=47.5 to 102.5 by 5 /*直条对应的组中值*/ freq cfreq percent cpercent ; /*输出统计量*/ Run;
利用表达式对 数据进行分组
grp=int((x-45)/5)*5+45;
Run;
确定起始分组和组距: 组距:5, 起始分组:45 - 50
int()取整函数 int(1.7)=1 int(5.2)=5 int(0.4)=0
grp=int((x-45)/5)*5+45; 语句将每一个脉搏值进行分组,例如脉搏 82,被分入
Frequency| Percent | Row Pct | Col Pct | 1| 2| Total ---------+--------+--------+ 1 | 1 | 1 | 2 | 25.00 | 25.00 | 50.00 | 50.00 | 50.00 | | 50.00 | 50.00 | ---------+--------+--------+ 2 | 1 | 1 | 2 | 25.00 | 25.00 | 50.00 | 50.00 | 50.00 | | 50.00 | 50.00 | ---------+--------+--------+ Total 2 2 4 50.00 50.00 100.00
彭斌
Slide 4
2) 在TABLES语句的斜杠(/)后面可以使用如下选 项:
CHISQ:要求进行卡方检验(Chi-Square Test) Fisher:要求对大于2×2的表进行Fisher的精确检验; Agree:做配对卡方检验; ALPHA=p:确定置信区间的水平是100(1-p)%的置信区 间,默认p=0.05; ALL:要求所有由CHISQ、MEASURES和CMH选项给 出的检验和度量; NOCOL、NOROW、NOPERCENT、NOFREQ 最为常用的选项是CHISQ和FISHER。
分组 频数 百分比
对分组变量grp进行频数分析, 产生以下结果:
累积频数 累积百分比 Cumulative Cumulative Grp Frequency Percent Frequency Percent -------------------------------------------------------45 1 0.67 1 0.67 50 5 3.36 6 4.03 55 12 8.05 18 12.08 60 13 8.72 31 20.81 65 27 18.12 58 38.93 70 29 19.46 87 58.39 75 23 15.44 110 73.83 80 16 10.74 126 84.56 85 9 6.04 135 90.60 90 7 4.70 142 95.30 95 5 3.36 147 98.66 100 2 1.34 149 100.00
彭斌
Slide 3
1) 在TABLES语句中,用request(s)指定制表要求。这里,可 以是用*连接起来的一个变量或多个变量。在一个TABLES 语句中可以给出任意多个制表要求。 例如: 。Tables a; 对指定变量a产生一个单向频数表; 。Tables a*b; 产生以b为列、a为行的二维列联表; 。Tables a*b*c; 产生以c列、b为行、a为分层的三维列联 表。这里,按照a的不同取值形成b*c的不同列联表。 。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;
相关主题