分享

SAS统计分析系列:描述性统计分析 (四)

 芦荟开花 2020-01-10

在前面的文章中介绍了运用MEANS过程计算描述性统计量的基本用法,文本介绍一下MEANS过程的更多功能和用法。

MEANS过程的更多功能

统计量列表

下面列出了MEANS过程中各种描述性统计量和位置统计量的关键字及计算方法。MEANS过程在处理数据时,数据可以是详细数据,即每条数据代表一个个体或者观测,也可是分组数据,即每条数据代表一组个体或者观测,这种分组数据在医学统计上非常常见。

描述性统计量如表9.2所示。

表9.2 常见描述性统计量

表9.3 常见位置统计量

选项WEIGHT=和WEIGHT语句

若计算描述性统计量(均值、标准差、标准误差、总和、权重和等)时,需要使用权重变量,可以通过两种方法指定权重变量,一种是在VAR语句中使用选项WEIGHT=,第二种是直接在PROC步中使用WEIGHT语句来指定权重变量。如果既使用了WEIGHT语句,又在VAR语句中使用了选项WEIGTH=,那么系统优先使用选项WEIGHT=中指定的变量作为VAR语句中变量的权重变量。极差、极值和缺失值个数等统计量不受权重变量影响。

需要注意的是,权重变量必须是数值型变量。

  • 当权重变量的取值等于0时,系统会将该条观测计入非缺失值个数N中。

  • 当权重变量的取值小于0时,系统将自动将取值转换成0,并将该条观测计入非缺失值个数N中。

  • 当权重变量的取值为缺失时,系统在处理过程中将自动忽略该条观测。

当权重变量的取值等于0时,系统会将该条观测计入非缺失值个数N中。

当权重变量的取值小于0时,系统将自动将取值转换成0,并将该条观测计入非缺失值个数N中。

当权重变量的取值为缺失时,系统在处理过程中将自动忽略该条观测。

FREQ语句也可以用来指定观测的频数,如果FREQ语句指定的变量的取值为非整数,系统只取其整数部分;当该变量的取值小于1或者缺失时,系统在进行分析时会自动忽略该条观测。

注意:当MEANS过程或者UNIVARIATE过程中使用WEIGTH语句时,系统将不会计算偏度系数和峰度系数,输出的偏度系数和峰度系数都为缺失值。

输出SAS数据集

默认情况下,MEANS过程中计算的各种描述性统计量都是输出到结果窗口的。但往往在实际应用中,计算描述性统计量只是进行数据分析的第一步,在得到各种统计量后,需要对其做进一步的加工分析。在这种情况下,将输出结果保存成SAS数据集是非常必要的。OUTPUT语句使得用户可以自行选择需要存储成SAS数据集的统计量。使用方法为:

OUTPUT OUT=输出数据集<统计量关键字1<变量列表1><=列名1>

<统计量关键字2<变量列表2><=列名2>…>>/<AUTONAME>;

其中:

  • 选项OUT=指定了输出数据集的名称,统计量关键字指定需要输出到数据集中的统计量关键字,变量列表指定需要计算描述性统计量并输出到数据集中的变量的名称,等号右边的列名表示存储到数据集中时统计量关键字的变量名称。OUTPUT语句中指定统计量关键字只影响输出到数据集中的统计量,而PROC MEANS语句中的统计量关键字序列则影响输出到结果窗口的统计量,两者不相互影响。

  • 使用选项AUTONAME时,系统自动为存储到数据集中的统计量指定变量名称,变量名称自动置为“分析变量_统计量关键字”。

选项OUT=指定了输出数据集的名称,统计量关键字指定需要输出到数据集中的统计量关键字,变量列表指定需要计算描述性统计量并输出到数据集中的变量的名称,等号右边的列名表示存储到数据集中时统计量关键字的变量名称。OUTPUT语句中指定统计量关键字只影响输出到数据集中的统计量,而PROC MEANS语句中的统计量关键字序列则影响输出到结果窗口的统计量,两者不相互影响。

使用选项AUTONAME时,系统自动为存储到数据集中的统计量指定变量名称,变量名称自动置为“分析变量_统计量关键字”。

例9.4:数据集sashelp.shoes中包含了某鞋类公司全球范围内各种产品的销售和库存情况,共有7个变量,变量Region代表地区,Product代表产品,Subsidiary代表分公司,Stores代表门店个数,Sales代表销售额,Inventory代表库存所占资金,Returns代表退货。计算各地区、各种产品的平均销售额、平均库存金额、总销售金额、总库存金额及标准差等统计量,并保存到SAS数据集中。

示例代码如下:

proc means data=sashelp.shoes mean median sum std;

title 'Output Decsriptive Statistics to SAS Dataset';

var sales inventory;

class region product;

output out=work.outstat mean(sales)=sales_mean sum(sales)=sales_sum mean(inventory)=invnt_mean sum(inventory)=invnt_sum;

run;

proc print data=work.outstat;

run;

这里使用CLASS语句指定了两个分类变量,运行上面的程序后,结果窗口输出两个输出列表,第一个是MEANS过程的输出结果,第二个是PRINT过程的输出结果,数据来自MEANS过程中输出的SAS数据集WORK.OUTSTAT。

图9.27和图9.28中是部分输出结果。

图9.27 例9.4中MEANS过程输出内容

图9.28 例9.4中PRINT过程输出内容

MEANS过程的输出报表和输出到数据集work.outstat的数据有两点不同:

第一,在MEANS过程的输出结果(第1张报表)中,含有均值、中位数、总和和标准差4个统计量;而SAS数据集中,只包含了并未包含统计量中位数,并且Sales的均值统计量被命名为Sales_mean,Sales的总和被命名为Sales_sum,Inventory的均值被命名为Invnt_mean,Inventory的总和被命名为Invnt_sum。如果不需要将统计结果输出到结果窗口,可以在PROC MEANS语句中使用选项NOPRINT。

第二,MEANS过程的输出结果和输出的SAS数据集观测的条数也不一样。与MEANS过程的输出结果相比较,SAS数据集中包含了所有分类变量组合的统计结果。系统用_TYPE_变量表示分类变量组合的种类,_TYPE_=0表示不使用分类变量的情形,也就是所有观测的统计结果,_TYPE_=1 或_TYPE_=2表示仅使用一个分类变量的情形,_TYPE_=3表示同时使用两个分类变量得出的分类结果。

WAYS语句和TYPES语句

在CLASS语句指定多个分类变量时,MEANS过程提供了WAYS语句、TYPES语句和选项NWAY,便于用户选择需要计算和保存的分类变量组合的统计结果。

WAYS语句的基本语法为:

WAYS 数值1 数值2 数值3 …;

数值的取值为0到分类变量个数之间的任一整数(包括0和分类变量个数),当数值=0时,表示输出不含分类变量情形下的描述性统计量;当数值=1时,表示输出所有只使用一个分类变量情形下的统计结果;当数值=2时,表示输出所有包含两个分类变量情形下的描述性统计量。WAYS语句中可以指定多个数值,以下是WAYS语句的简单的例子。

class varA varB varC;

ways 1 2;

系统将会输出分别按varA、varB、varC分类的统计结果,及varA*varB、varA*varC及varB*varC交叉组合分类后的统计结果。

TYPES语句的基本语法为:

TYPES 分类组合要求;

例如:

class varA varB varC;

types varA varB varC varA*varB varA*varC varB*varC;

上面的TYPES语句和“ways 1 2;”的作用是一样的。

注意:如果仅需要输出不使用分类变量的统计结果,可以使用“WAYS 0;”或者“TYPES ();”。使用TYPES语句来选择需要输出到数据集中的分类组合的种类,比在数据集后面使用选项WHERE=更加节约时间和内存。

另外,在PROC MEANS语句中使用选项NWAY,可以使得输出数据集中只包含使用所有分类变量的情形。在例9.4中使用选项NWAY的示例如下:

proc means data=sashelp.shoes noprint nway;

title 'Output Decsriptive Statistics to SAS Dataset';

var sales inventory;

class region product;

output out=work.outstat mean(sales)=sales_meansum(sales)=sales_sum mean(inventory)=invnt_mean sum(inventory)=invnt_sum;

run;

proc print data=work.outstat;

run;

输出内容如图9.29所示。

图9.29 例9.4使用选项NWAY的输出内容

这里对MEANS过程的各种语句稍作总结一下。

PROC MEANS DATA=数据集<统计量关键字选项其他选项>;

VAR 分析变量1 <分析变量2 …> ;

CLASS 分类变量1 分类变量2 …;

BY BY变量1BY变量2 …;

FREQ 变量n;

WEIGHT 变量m;

OUTPUT OUT=输出数据集<统计量关键字1<变量列表1><=列名1> …></AUTONAME>;

TYPES分类组合要求;

WAYS <数值1><数值2><数值3 …>;

RUN;

在MEANS过程中,除了PROC MEANS语句和RUN语句,其他各个语句的顺序可以互换,这个性质在SAS的其他PROC步中也适用。

SUMMARY过程和MEANS过程的语法和作用非常相似,和MEANS过程不同的地方在于:

  • SUMMARY过程在默认情况下不会将统计结果输出到结果窗口,如果需要输出到结果窗口,则要在PROC SUMMARY语句中使用选项PRINT。

  • 在MEANS过程中,如果不使用VAR语句指定分析变量,系统会默认输出所有数值型变量的描述性统计量。但是在SUMMARY过程中,如果在PROC SUMMARY语句中指定了统计量关键字,却没有使用VAR语句,系统将给出ERROR信息,并停止运行。

SUMMARY过程在默认情况下不会将统计结果输出到结果窗口,如果需要输出到结果窗口,则要在PROC SUMMARY语句中使用选项PRINT。

在MEANS过程中,如果不使用VAR语句指定分析变量,系统会默认输出所有数值型变量的描述性统计量。但是在SUMMARY过程中,如果在PROC SUMMARY语句中指定了统计量关键字,却没有使用VAR语句,系统将给出ERROR信息,并停止运行。

本系列文章结束。

结束语

本系列文章第一部分介绍了统计学中一些基本概念,如总体、个体和样本的定义,简单随机抽样的基本原理,参数和统计量的区别和联系,自由度的定义,随机变量和概率分布的定义,以及在统计学中具有重大作用的三种概率分布(二项分布、泊松分布和正态分布)。然后介绍了描述性统计分析在统计学中的重要作用,分别讨论了描述数据集中趋势、数据离散程度及数据分布形态的描述性统计量的定义及计算方法,并通过实例讲解如何运用SAS中的MEANS过程和UNIVARIATE过程计算这些描述性统计量。

小贴士

读者回复关键字“安全”,可以查看“SAS智能平台安全管理”相关文章。

读者可以从以下链接获取SAS公司提供的免费环境:

SAS大学版(SAS@ University Edition)是SAS为在校大学生免费提供的基于虚拟机和网页的SAS环境。

下载路径:

https://www./en_us/software/university-edition/download-software.html

SAS学术版(SAS® OnDemand for Academics)是 SAS 为学术届人士免费提供的、在线的、基于SAS 私有云上的应用服务环境。

用户首先需要注册,然后按照提示信息就可登录。

注册路径:

http://odamid.oda.

本文转自《深入解析SAS — 数据处理、分析优化与商业应用 》

作者:夏坤庄、徐唯、潘红莲、林建伟

如若转载本文,请在文章顶部标注 “本文转自SAS知识 (ID: SASadvisor),摘自《深入解析SAS — 数据处理、分析优化与商业应用 》”

作者介绍

夏坤庄

《深入解析SAS — 数据处理、分析优化与商业应用》第一作者, SAS软件研究开发(北京)有限公司客户职能部总监。在承担研发工作的同时,夏及其团队负责对SAS非英语市场提供技术支持,并且与在美国及其它地区的团队一起,服务于SAS的SaaS/RaaS业务,同时提供和验证关于SAS产品和技术在应用领域的最佳实践。在加入SAS软件研究开发(北京)有限公司之前,夏就职于SAS中国公司,历任资深咨询顾问、项目经理、首席顾问、咨询经理,拥有丰富的咨询和项目实施经验。在长期的从业经历中,不但为SAS的金融行业客户成功实施了众多深受好评的项目,而且在近年领导实施了非金融行业的多个大数据分析项目。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多