SAS编程PROC步——描述性统计量分析_数据分析师培训
描述性统计指标的计算可以用四个不同的过程来实现,它们分别是means过程、summary过程、univariate过程以及tabulate过程。它们在功能范围和具体的操作方法上存在一定的差别,下面我们大概了解一下它们的异同点。
相同点:他们均可计算出均数、标准差、方差、标准误、总和、加权值的总和、最大值、最小值、全距、校正的和未校正的离差平方和、变异系数、样本分布位置的t检验统计量、遗漏数据和有效数据个数等,均可应用by语句将样本分割为若干个更小的样本,以便分别进行分析。
不同点:
(1)means过程、summary过程、univariate过程可以计算样本的偏度(skewness)和峰度(kurtosis),而tabulate过程不计算这些统计量;
(2)univariate过程可以计算出样本的众数(mode),其它三个过程不计算众数;
(3)summary过程执行后不会自动给出分析的结果,须引用output语句和print过程来显示分析结果,而其它三个过程则会自动显示分析的结果;
(4)univariate过程具有统计制图的功能,其它三个过程则没有;
(5)tabulate过程不产生输出资料文件(存储各种输出数据的文件),其它三个均产生输出资料文件。
统计制图的过程均可以实现对样本分布特征的图形表示,一般情况下可以使用的有chart过程、plot过程、gchart过程和gplot过程。大家有没有发现前两个和后两个只有一个字母‘g’(代表graph)的差别,其实它们之间(只差一个字母g的过程之间)的统计描述功能是相同的,区别仅在于绘制出的图形的复杂和美观程度。
chart过程和plot过程绘制的图形类似于我们用文本字符堆积起来的图形,只能概括地反映出资料分布的大体形状,实际上这两个过程绘制的图形并不能称之为图形,因为他根本就没有涉及一般意义上图形的任何一种元素(如颜色、分辨率等)。而gchart过程和gplot过程给出的是真正意义上的图形,可以用很多的语句和选项来控制图形的各方面的性质和特征。
chart和gchart与plot和gplot的区别则体现在不同的作图功能,前两个过程可以绘制出的图形主要有条形图(包括横条和竖条)、圆图、环形图和星形图等,后两个过程通常用一个记录中的两个变量值表示点的坐标来绘制图形,如散点图和线图等。
描述性统计过程的一般格式
1. means过程的一般格式
proc means 选项列表; |
by 变量名称(分组变量); |
class 变量名称(分组变量); |
freq变量名称(数值变量,用以表示相应记录出现的频数) |
weight变量名称(数值变量,用以表示相应记录的权重系数) |
var 变量名称(待分析的数值变量); |
run; |
Proc means 语句后的选项主要用来指定所要计算的统计量,默认情况下,Means过程会给出频数、均数、标准差、最大值和最小值等,其余统计量的计算均需要在选项中指定。class语句所指定的分组变量用来进行分组,而by语句所指定的分组变量是用来将数据分为若干个更小的样本,以便SAS分别在各小样本内进行各自独立的处理。freq语句和weight语句分别引导代表记录出现频数和权重系数的数值变量。var语句引导所要进行分析的所有变量的列表,SAS将对var语句所引导的所有变量分别进行描述性统计分析。
2. summary过程的一般格式
proc summary 选项列表; |
by 变量名称(分组变量); |
class 变量名称(分组变量); |
freq变量名称(数值变量,用以表示相应记录出现的频数) |
weight变量名称(数值变量,用以表示相应记录的权重系数) |
output <out=数据集名> <统计量关键字=自定义变量名> |
var 变量名称(待分析的数值变量); |
run; |
summary过程的格式和means过程可以说是完全相同的,各条语句和选项的含义也是相同的,包括在means过程中未列出的output语句也可以应用于means过程,只是此语句在summary过程应用较多(这样才能将分析结果显示出来),所以才将其列入一般格式中。output语句用来对分析结果输出为数据文件进行控制,其后的选项可有可无,若无则SAS按照默认方式进行。“out=数据集名”用来定义输出数据文件的文件名称,文件名的格式和数据步中数据文件名相同。“统计量关键字=自定义变量名”用来自定义输出数据文件中各种统计量的变量名称,前者是系统定义的(和proc语句后选项中的统计量关键字完全相同),必须正确无误,后者可自行定义。默认状态下输出统计量只有频数、均数、标准差、最大值和最小值,在默认状态不能满足需要时这一选项则是必需的。
3. univariate过程的一般格式
proc univariate 选项列表; |
by 变量名称(分组变量); |
class 变量名称(分组变量); |
freq变量名称(数值变量,用以表示相应记录出现的频数) |
weight变量名称(数值变量,用以表示相应记录的权重系数) |
histogram 变量名称/选项列表 |
output <out=数据集名> <统计量关键字=自定义变量名> pctlpts=<百分位数…> <指定需要的百分位数> pctlpre=<新变量名列> <指定所需百分位数对应的输出变量名> |
var 变量名称(待分析的数值变量); |
run; |
univariate过程和以上两个过程的格式非常相似,相同的语句和选项其含义也相同,所不同的是某些统计量只能在univariate过程中计算(如众数),以及univariate过程中所具有的绘图功能。histogram语句即用来指示SAS对其后所指定的变量绘制直方图,其后的选项用来指示SAS添加不同类型的拟合图形(如正态分布的分布密度曲线)。
4. tabulate过程的一般格式
proc tabulate 选项列表; |
by 变量名称(分组变量); |
class 变量名称(分组变量); |
freq变量名称(数值变量,用以表示相应记录出现的频数) |
weight变量名称(数值变量,用以表示相应记录的权重系数) |
table <<页变量表达式>,<行变量表达式>,<列变量表达式>></表格选项> |
var 变量名称(待分析的数值变量,统计量列入相应的表单元格); |
run; |
tabulate过程和上述几个过程的格式也基本相似,相同的语句和选项也代表相同的含义。最大的不同也是tabulate过程中最为重要的是table语句,他用来定义表格的具体格式以及表格中所要包括的统计量。
5. gchart过程的一般格式
proc gchart 选项列表; |
||||||||||||||||||||
图形关键词变量名称/选项列表 |
||||||||||||||||||||
run;
|
此过程格式简单,复杂的地方在于图形关键字(每个图形关键字对应一种图形类型)所引导的语句,这里是控制图形类型及图形要素的地方,涉及到众多的关键字和选项。gchart过程可以使用的图形关键字及其所绘制的图形类型见下表(表2.1)。
表2.1gchart过程可以使用的图形关键字及其所绘制的图形类型
图形关键字后的变量名用以指定进行图形描述时的分组变量,可以是数值型的(此时以各组的组中值为分组的标志),也可以是字符型的。其后的选项比较重要的有:(1)type=统计量关键字,表示以图形对变量(sumvar所指定的变量)的哪一种统计量进行描述,比如频数(freq)、均数(mean)、总计(sum)、频数百分比(pctn)等;(2)subgroup=变量名(分组变量),指定要进行分组(各组段内再分组)的变量;(3)sumvar=变量名(数值变量),指定要进行统计计算的变量,也就是“type=统计量关键字”选项中统计量的计算所依据的变量。其它的选项较少用到或系统默认值即可基本满足要求,这里还是少罗嗦,以后用到再说。
6. gplot过程的一般格式
proc gplot 选项列表; |
bubble 散点图表达式 |
bubble2 散点图表达式 |
plot散点图表达式 |
plot2散点图表达式 |
run; |
从gplot过程的一般格式中我们就可看出,此过程只能绘制两种类型的图形,bubble语句指示SAS绘制泡状散点图,plot语句指示SAS绘制点状散点图。bubble2语句和plot2语句指示SAS在同一区域内(bubble2和bubble在同一区域,plot2和plot在同一区域)绘制第二个图形,两者的横坐标相同(同一变量),纵坐标分别位于左右两侧(可以是同一变量,也可以是两个不同的变量)。
7. 散点图表达式的一般形式为:
(1)bubble和bubble2语句:纵坐标变量名*横坐标变量名=泡尺寸变量名(变量值以泡的大小表示),三者均应为数值变量;
(2)plot和plot2语句:纵坐标变量名*横坐标变量名<=n/分类变量名>,此处等号及其后的部分可以省略,此时SAS以默认的散点类型绘制散点图;若等号后为n(n为正整数,是散点类型的编号),SAS则以指定的编号对应的散点类型绘制散点图;若等号后为分类变量名(可为字符型或数值型,为数值型时作为离散型变量处理,每一个值将被当作一个类别),此变量的具体值(或与每个具体值对应的图形)将被作为散点用来绘制散点图。
chart过程和plot过程的一般格式及各选项使用方法分别与gchart过程和gplot过程是基本相同的,不同之处仅在于后两者中涉及到有关三维和图形元素(颜色等)的语句和选项在前两者中是无效的。例如vbar3d语句在chart过程中无效,bubble语句在plot过程中无效。其余的语句和选项使用方法完全相同,所以在掌握了gchart过程和gplot过程后,chart过程和plot过程你会不学自通。
描述性统计关键字及其含义
SAS中可计算的描述性统计量多达二十余种,大部分可在以上介绍的前四个过程中计算,个别统计量在某些过程中不能计算,大家需要注意,要不然系统显示错误信息时还不知道是怎么回事。
我经常遇到这种情况,系统提示错误(此类提示信息显示在log窗口中)时总是摸不着头脑,费半天劲才能搞明白。没办法,摸着石头过河嘛!不过这样也并非一无是处,最起码可以积累很多使用经验。
下表(表2.2)列出SAS中可以计算的所有描述性统计量关键字及其含义,供大家使用时参考。
表2.2SAS中可以计算的描述性统计量关键字及其含义
关键字 |
所代表的含义 |
n |
有效数据记录数 |
nmiss |
缺失数据记录数 |
mean |
均数 |
std |
标准差 |
stderr |
标准误 |
var |
方差 |
median |
中位数 |
mode |
众数 |
cv |
变异系数 |
max |
最大值 |
min |
最小值 |
range |
全距 |
sum |
总计 |
sumwgt |
加权值总计 |
css |
校正的离均差平方和 |
uss |
未校正的离均差平方和 |
clm |
可信限(上下界值) |
lclm |
可信限下侧界值 |
uclm |
可信限上侧界值 |
skew(skewness) |
偏度 |
kurt(kurtosis) |
峰度 |
t |
分布位置假设检验之t统计量 |
probt |
上述t统计量对应的概率值 |
q1 |
第一四分位数 |
q3 |
第三四分位数 |
qrange |
四分位数间距 |
p1 |
第一百分位数 |
p5 |
第五百分位数 |
p10 |
第十百分位数 |
p90 |
第九十百分位数 |
p95 |
第九十五百分位数 |
p99 |
第九十九百分位数 |
数据分析咨询请扫描二维码
需求持续增长 - 未来数据分析师需求将持续上升,企业对数据驱动决策的依赖加深。 - 预测到2025年,中国将需要高达220万的数据人 ...
2024-11-22《Python数据分析极简入门》 第2节 4 Pandas条件查询 在pandas中,可以使用条件筛选来选择满足特定条件的数据 importpanda ...
2024-11-22数据分析师的工作内容涉及多个方面,主要包括数据的收集、整理、分析和可视化,以支持商业决策和问题解决。以下是数据分析师的一 ...
2024-11-21数据分析师必须掌握的技能可以从多个方面进行归纳和总结。以下是数据分析师需要具备的主要技能: 统计学基础:数据分析师需要 ...
2024-11-21数据分析入门的难易程度因人而异,总体来看,入门并不算特别困难,但需要一定的学习和实践积累。 入门难度:数据分析入门相对 ...
2024-11-21数据分析是一项通过收集、整理和解释数据来发现有用信息的过程,它在现代社会中具有广泛的应用和重要性。数据分析能够帮助人们更 ...
2024-11-21数据分析行业正在迅速发展,随着技术的不断进步和数据量的爆炸式增长,企业对数据分析人才的需求也与日俱增。本文将探讨数据分析 ...
2024-11-21数据分析的常用方法包括多种技术,每种方法都有其特定的应用场景和优势。以下是几种常见的数据分析方法: 对比分析法:通过比 ...
2024-11-21企业数字化转型是指企业利用数字技术对其业务进行改造和升级,以实现提高效率、降低成本、创新业务模式等目标的过程。这一过程不 ...
2024-11-21数据分析作为一个备受追捧的职业领域,吸引着越来越多的女性加入其中。对于女生而言,在选择成为一名数据分析师时,行业选择至关 ...
2024-11-21大数据技术专业主要学习计算机科学、数学、统计学和信息技术等领域的基础理论和技能,旨在培养具备大数据处理、分析和应用能力的 ...
2024-11-21《Python数据分析极简入门》 第2节 3 Pandas数据查看 这里我们创建一个DataFrame命名为df: importnumpyasnpi ...
2024-11-21越老越吃香的行业主要集中在需要长时间经验积累和专业知识的领域。这些行业通常知识更新换代较慢,因此随着年龄的增长,从业者能 ...
2024-11-20数据导入 使用pandas库的read_csv()函数读取CSV文件或使用read_excel()函数读取Excel文件。 支持处理不同格式数据,可指定分隔 ...
2024-11-20大数据与会计专业是一门结合了大数据分析技术和会计财务理论知识的新型复合型学科,旨在培养能够适应现代会计业务新特征的高层次 ...
2024-11-20要成为一名数据分析师,需要掌握一系列硬技能和软技能。以下是成为数据分析师所需的关键技能: 统计学基础 理解基本的统计概念 ...
2024-11-20是的,Python可以用于数据分析。Python在数据分析领域非常流行,因为它拥有丰富的库和工具,能够高效地处理从数据清洗到可视化的 ...
2024-11-20在这个数据驱动的时代,数据分析师的角色变得愈发不可或缺。他们承担着帮助企业从数据中提取有价值信息的责任,而这些信息可以大 ...
2024-11-20数据分析作为现代信息时代的支柱之一,已经成为各行业不可或缺的工具。无论是在商业、科研还是日常决策中,数据分析都扮演着至关 ...
2024-11-20数字化转型已成为当今商业世界的热点话题。它不仅代表着技术的提升,还涉及企业业务流程、组织结构和文化的深层次变革。理解数字 ...
2024-11-20