展示各种与数据相关联的图形是统计中呈现数据的重要方法,当数据经过审核、筛选、排序等预处理后,可以把它做成统计图。统计图一般是用点、线、面或立体图像鲜明地表达数量或变化动态。医学统计中常用的统计图有线图、直方图、条形图和统计地图等。一个好的统计图能够把数据在图中清楚、准确、有效地表达出来。统计软件SAS可以帮助我们把存贮在SAS数据集中的数据以图形的方式形象直观地显示出来。
但是绘制和应用统计图也是有一定的原则和要求的,违背这些原则和要求的统计图是不规范的,有时会给读者造成完全错误的印象。对于不同类型的数据,所适用的统计图和SAS程序也是不同的。
常用数据类型及适用的统计图
数据类型 分类 例 统计图 品质数据 定类数据 心血管病的死亡原因 条形图;饼图 定序数据 碳氧血红蛋白的含量 累积分布图 数值型数据 分组数据 食物中毒患者的潜伏期 折线图 未分组数据 110名男大学生身高 直方图;茎叶图;箱线图;散点图 时间序列数据 10年某小学的麻疹曾患率(%) 间隔图形 地域性数据 某省痢疾流行时的患者分布 统计地图
定类数据-条形图
条形图是用宽度相同的条形的高度或长短来表示数据变动的图形。一般用条形图的高度来表示各类别数据的频数。它常用于两个或多个组某指标大小的比较。
条形图的类型一般有三种: 简单条形图,用于表现单个指标的大小; 分组条形图,用于表现两个或多个指标,比如同时进行男、女性血红细胞和血红蛋白值的比较; 分段条形图,用于表现每个直条中某个因素各水平的构成情况,比如男女两种性别的某指标构成的比较。
1) 简单条形图 例1 某地1980年居民心血管病死亡资料[1]。关注的指标是死亡率的性比。 死亡原因 男 女 死亡率性比 死亡人数 死亡率 构成比 死亡人数 死亡率 构成比 肺心病 13952 101.9 76.2 19369 146.8 76.5 0.69 风心病 1336 9.8 7.3 2265 17.2 8.9 0.57 高血压性心脏病 926 6.8 5.1 1264 9.6 5.0 0.71 冠心病 654 4.8 3.6 862 6.5 3.4 0.74 先心病 516 3.8 2.8 479 3.6 1.9 1.06 克山病 316 2.3 1.7 359 2.7 1.4 0.85 其它心血管病 611 4.5 3.3 736 5.6 2.9 0.80 合计 18311 133.7 100.0 25334 192.0 100.0 0.70 SAS程序如下: 引用: data ratio; input case$ ratio@@; cards; a1 0.69 a2 0.57 a3 0.71 a4 0.74 a5 1.06 a6 0.85 a7 0.80 ; goptions reset=all ; proc format; value $ss a1='肺心病' a2='风心病' a3='高血压' a4='冠心病' a5='先心病' a6='克山病' a7='其它'; proc gchart; vbar case/sumvar=ratio; format case $ss.; pattern v=x5 c=gray; run;
2) 分组条形图 例2 同例1数据,关注的指标是男、女性死亡率的比较。 SAS程序如下: 引用: data ratio; input case$ gender$ ratio@@; cards; a1 m 101.9 a1 f 146.8 a2 m 9.8 a2 f 17.2 a3 m 6.8 a3 f 9.6 a4 m 4.8 a4 f 6.5 a5 m 3.8 a5 f 3.6 a6 m 2.3 a6 f 2.7 a7 m 4.5 a7 f 5.6 ; goptions reset=all ; proc format; value $ss a1='肺心病' a2='风心病' a3='高血压' a4='冠心病' a5='先心病' a6='克山病' a7='其它'; value $qq f='男性' m='女性'; proc gchart; where gender in ('m', 'f'); vbar gender/group=case sumvar=ratio patternid=midpoint; format case $ss. gender $qq.; pattern1 v=l5 c=gray; pattern2 v=x5 c=gray; run;
3) 分段条形图 引入一个分段变量,此变量必须是离散的,按此变量取值的个数把每一个条形分为几段,每一段的长度代表此变量的一个取值对应的观测对要考察的统计量的贡献。 例3 同例1数据,关注的指标是构成男女两种性别的死亡率比较。 SAS程序如下: 引用: data ratio; input case$ gender$ ratio@@; cards; a1 m 101.9 a1 f 146.8 a2 m 9.8 a2 f 17.2 a3 m 6.8 a3 f 9.6 a4 m 4.8 a4 f 6.5 a5 m 3.8 a5 f 3.6 a6 m 2.3 a6 f 2.7 a7 m 4.5 a7 f 5.6 ; goptions reset=all ; proc format; value $ss a1='肺心病' a2='风心病' a3='高血压' a4='冠心病' a5='先心病' a6='克山病' a7='其它'; value $qq f='男性' m='女性'; proc gchart; where gender in ('m', 'f'); vbar case/subgroup=gender sumvar=ratio; format case $ss. gender $qq.; pattern1 v=x2 c=gray; pattern2 v=s c=gray; run;
定类数据-饼图
饼图通常用来表示数据的部分与整体之间的比例关系。其中,整个圆的面积表示整体,各部分面积的大小对应于所占构成比的大小。 饼图一般有单一饼图和分组饼图两种。 1) 单一饼图 例4 某市1980年和1990年5种传染病发病情况。关注的指标是1980年各种传染病所占的比例。 疾病 1980年 1990年 病例数 构成比(%) 病例数 构成比(%) 痢疾 3604 49.39 2032 37.92 肝炎 1203 16.49 1143 21.33 流脑 698 9.56 542 10.11 麻疹 890 12.20 767 14.31 腮腺炎 902 12.36 875 16.33 合计 7297 100.00 5359 100.00 SAS程序如下: 引用: data per; input case$ per@@; cards; a1 49.39 a2 16.49 a3 9.56 a4 12.20 a5 12.36 ; goptions reset=all ; proc format; value $ss a1='痢疾' a2='肝炎' a3='流脑' a4='麻疹' a5='腮腺炎'; proc gchart; pie case/sumvar=per; pattern1 v=ps c=gray; pattern2 v=p2x c=gray; pattern3 v=pe c=gray; pattern4 v=p2x135 c=gray; pattern5 v=p2n60 c=gray; format case $ss.; run;
2) 分组饼图 例5 同例4数据,关注的指标是1980年、1990年各种传染病所占的比例。 SAS程序如下: 引用: data per; input case$ year per@@; cards; a1 1980 49.39 a1 1990 37.92 a2 1980 16.49 a2 1990 21.33 a3 1980 9.56 a3 1990 10.11 a4 1980 12.20 a4 1990 14.31 a5 1980 12.36 a5 1990 16.33 ; goptions reset=all ; proc format; value $ss a1='痢疾' a2='肝炎' a3='流脑' a4='麻疹' a5='腮腺炎'; proc gchart; pie case/sumvar=per group=year across=2; pattern1 v=ps c=gray; pattern2 v=p2x c=gray; pattern3 v=pe c=gray; pattern4 v=p2x135 c=gray; pattern5 v=p2n60 c=gray; format case $ss.; run;
(责任编辑:泉水) |