tsingkong
请教各位,我球几个变量几何均数,请高手指教,给一下语句,谢谢!
djun
由于几何均数无法直接得到,因此将数据集加以对数变换,求出均数后再行反对数变换得到几何均数
50例链球菌咽峡炎患者的潜伏期如下,计算其均数、中位数和几何均数(卫统p233 1.3题)。
12~
24~
36~
48~
60~
72~
84~
96~
108~120
1
7
11
11
7
5
4
2
2
解:由于几何均数无法直接得到,因此将数据集加以对数变换,求出均数后再行反对数变换得到几何均数,程序如下:
libname a 'c:\user';
指定c:\user文件夹为数据库a
data a.wt1_3;
数据步开始,指定要建立的数据集为a库的wt1_3
input x f @@;
输入的变量为x和f,采用连续输入的格式
x=x+6;
将变量x的值更正到每个组段的组中值处
logx=log(x);
定义新变量logx为变量x的自然对数,用于算出几何均数
cards;
数据块开始
12 1 24 7 36 11 48 11 60 7 72 5 84 4 96 2 106 2
数据块
;
数据块结束
proc print;
将数据集a.wt1_3的内容打印输出
proc univariate data=a.wt1_3 noprint;
调用程序步univariate,并且禁止在OUTPUT视窗中输出
var x logx;
要分析的变量为x和logx
freq f;
指定变量f代表分析变量x的频数
output out=temp n=n mean=xbar logxmean median=m ;
输出数据集和统计量的定义
data temp2;
数据步开始,指定要建立的数据集为work.temp2
set temp;
让work.temp2继承work.tmep的全部数据
g=exp(logxmean);
产生新变量g,它等于elogxmean
drop logxmean;
在work.temp2中删除临时变量logxmean
proc print data=temp2;
输出数据集work.temp2中的数据
run;
开始运行以上程序
请注意,这里UNIVARIATE过程有两个分析变量X和LOGX,因此在OUTPUT语句中MEAN=后跟了两个变量名,它们分别存储两个变量的均数,而其余的关键字后只有一个变量名,则它们只存储分析变量序列的第一个变量X的统计结果。
tsingkong
谢谢 djun帮助!!
jthu
几何均数?是几何平均数(geometric mean)吗?这个SAS9有内置的函数,跟Excel内置的函数一样,都是geoMean()。当然,这个函数只能求一行而不是一列的几何均值,转置一下就可以了。
djun
[quote]引用第3楼jthu于2008-01-01 22:32发表的“”:
几何均数?是几何平均数(geometric mean)吗?这个SAS9有内置的函数,跟Excel内置的函数一样,都是geoMean()。当然,这个函数只能求一行而不是一列的几何均值,转置一下就可以了。[/quote]
哦,那我说的可能是较早的版本,嘿嘿,原来SAS9已经有内置函数了,学习学习!
也谢谢jtsu