二、计数资料的统计描述
2012-04-17 生物谷 不详
二、计数资料的统计描述 计数资料的描述性统计量,最为主要的是相对数,即率、构成比、相对比等。统计图形表述方式有圆图和百分条图等。下面我们将例2-1的数据转换为计数资料的形式,用以展示计数资料统计描述的SAS编程实现方法。 例2-3 我们假设甘油三酯水平高于1.5者为异常,将160名女子划分为正常和异常两组。分别计算正常组和异常组占总人数的构成比,并用圆图和百分条图展示其构成情况。
二、计数资料的统计描述
计数资料的描述性统计量,最为主要的是相对数,即率、构成比、相对比等。统计图形表述方式有圆图和百分条图等。下面我们将例2-1的数据转换为计数资料的形式,用以展示计数资料统计描述的SAS编程实现方法。
例2-3 我们假设甘油三酯水平高于1.5者为异常,将160名女子划分为正常和异常两组。分别计算正常组和异常组占总人数的构成比,并用圆图和百分条图展示其构成情况。
此处我们引入一个变量g,用以表示样本的分组情况,正常组取值为0,异常组取值为1,采用如例2-1中的条件语句为变量g进行赋值。对于计数资料各组构成比或率等统计量的计算,我的经验是用Tabulate过程比较方便。Tabulate过程的主要功能是按照给定的分组变量制作各种形式的表格,这里我们也只是用到它的强大功能的一小部分。
在做百分条图时,我们用制作水平条图的hbar语句,将变量g作为某个分组因素中的亚分组因素,所以还要引入一个分组变量i,但i的取值只有一个(因此处只有一个大组)。Pie语句是用来制作圆图的,它与hbar语句的格式均类似于前面例子中用到的vbar语句,仅在个别选项的使用上存在一些差异。
这次我们将计算统计量和作图过程编入一个程序文件,一次完成两个步骤。SAS程序如下。
libname a 'e:\data\'; |
data temp; |
set a.case2_1; |
i=1; |
if x<=1.5 then g=0; |
if x>1.5 then g=1; |
proc tabulate; |
class g; |
table g*(n pctn |
run; |
proc gchart; |
pie g/type=freq discrete slice=arrow value=inside; |
hbar i/type=freq discrete subgroup=g width=8; |
run; |
proc gchart; |
hbar i/type=freq discrete subgroup=g width=8; |
run; |
这次的data步不同于以前的例子,这次我们将数据定义为临时文件,然后使用set语句将永久数据集文件(例2-1所建立)中的记录导入当前文件。Set语句的功能就是将其后所跟数据集文件中的记录按照相应选项(set语句后可有相应的控制选项)的控制导入到data语句所指定的文件中。引入的分组变量i我们取唯一值1,直接使用赋值语句,g要根据不同的x值取0或1,使用条件语句对其赋值。此处还可以将两个条件语句简化为一个,即
if x<=1.5 then g=0 else g=1;
tabulate过程中table语句用来实现具体的表格绘制过程,其后是作为表格三个维度的分组变量,表示三个维度的变量间以逗号分隔,三个维度分别是页(page)、横轴(side)和纵轴(top)。三个维度不必全部指定,如果只指定一个维度(如本例),SAS将其当作纵轴处理;如果指定两个,SAS将其作为横轴和纵轴处理,前面的变量为横轴,后面的变量为纵轴;若指定三个维度,在最前的变量为页,中间的为横轴,最后的为纵轴。
同一维度可以是一个变量,也可以是多个变量的排列组合,多个变量的排列组合形式如下:
(1)并列:变量间以空格相间隔,如 “a b”的表格形式如下:
a1 |
a2 |
a3 |
b1 |
b2 |
b3 |
|
|
|
|
|
|
(2)交叉:变量间以星号(*)相连接,如“a*b”的表格形式如下:
a1 |
a2 |
a3 | ||||||
b1 |
b2 |
b3 |
b1 |
b2 |
b3 |
b1 |
b2 |
b3 |
|
|
|
|
|
|
|
|
|
(3)混合形式:变量间以空格或星号分隔,必要时加圆括号,如“a*(b c)”的表格形式如下:
a1 |
a2 | ||||||
b1 |
b2 |
c1 |
c2 |
b1 |
b2 |
c1 |
c2 |
另外,和变量一同在table语句中出现的还有一些表示特定统计量的SAS关键词,可以控制相应统计量在表格中的显示。Tabulate过程可以计算的统计量及其在table语句中的名称如下表(表2.6)。
表 2.6 Tabulate过程可以计算的统计量及其在table语句中的名称
名称 |
所代表的统计量 |
n |
单元格频数 |
nmiss |
单元格上有遗漏数据的记录个数 |
mean |
均数 |
min |
最小值 |
max |
最大值 |
sum |
合计 |
std |
标准差 |
range |
全距,即最大值与最小值之差 |
uss |
未校正的总平方和 |
pctn |
频数百分比,须指定相应的分母项 |
pctsum |
某变量(数值型)合计占指定合计值的百分比 |
css |
校正的总平方和 |
tderr |
均数的标准误 |
cv |
变异系数 |
t |
用来检测均数是否为零的单侧t值 |
prt |
上述t值的统计显著程度 |
var |
方差 |
sumwgt |
加权值的总和 |
本例中语句table g*(n pctn
Gchart过程中,pie语句后的选项discrete表示将变量g当作离散型变量来处理(否则将当作连续性变量计算其组中值),这样就等同于g为字符型变量的情况(若g为字符型则不需要此选项)。Silce选项用来指定对代表各组的扇形区域进行标识的方式,value是用来指定对各扇形区域标注统计量的位置,slice选项和value选项后所能跟的具体项目名称和含义是完全相同的,各项目名称及含义见下表(表2.7)。
表2.7 各项目名称及含义
arrow |
inside |
none |
outside |
标注在外部,以箭头连接 |
标注在内部 |
不标注 |
标注在外部 |
百分条图的制作是通过对变量i做水平条图实现的,将g看作各i分组中的下层分组变量。Subgroup选项用来在每个组的横条中按照其指定的下层分组变量再分组,各下层分组的相应部分用不同的颜色表示,这里我们指定下层分组变量为g。
程序中有关制图的两个gchart过程可以简化为一个gchart过程的两个步骤,即
proc gchart; |
pie g/type=freq discrete slice=arrow value=inside; |
hbar i/type=freq discrete subgroup=g width=8; |
run; |
将以上程序提交执行,结果如下。
(1)各组频数及其结构百分比
g | |||
0 |
1 | ||
N |
PctN(%) |
N |
PctN(%) |
141 |
88.13 |
19 |
11.88 |
(2)圆图(图2.3)
图2.3
(3)百分条图(图2.4)
图2.4
好了,这一章的内容先讨论这些,因水平有限,错误与不足在所难免,还请各位多多指点,互相学习嘛!
第三章将讨论两组资料均数比较的SAS编程实现,即t检验与u检验的编程操作方法,请各位耐心等待。
本网站所有内容来源注明为“梅斯医学”或“MedSci原创”的文字、图片和音视频资料,版权均属于梅斯医学所有。非经授权,任何媒体、网站或个人不得转载,授权转载时须注明来源为“梅斯医学”。其它来源的文章系转载文章,或“梅斯号”自媒体发布的文章,仅系出于传递更多信息之目的,本站仅负责审核内容合规,其内容不代表本站立场,本站不负责内容的准确性和版权。如果存在侵权、或不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
在此留言