【SAS Says】基础篇:基本统计、相关分析与回归分析

特别说明:本节【SAS Says】基础篇:SAS宏初步,用的是数说君学习《The little SAS book》时的中文笔记,我们认为这是打基础的最好选择

SAS是一个专业的统计软件,前面我们介绍了很多数据管理、输出美化的东西,本节终于要介绍一点SAS做统计的知识了,不过,在基础篇中我们只大概介绍一下,更多统计分析的东西放在进阶篇中。

本节目录:

1. 用proc univariate检验数据分布

2. 用proc means产生统计量

3. 用proc freq检验数据分类

4. 用proc corr检验相关性

5. 用proc reg做简单回归分析

6. 读取proc reg的输出

7. 用proc anova做方差分析

8. 读取proc anova的输出

9. 统计分析的图形界面


【SAS Says】基础篇:基本统计、相关分析与回归分析

1. 用PROC UNIVARIATE检验数据分布

PROC UNIVARIATE是Base SASsoftware的一部分,产生统计量以描述单个变量的分布。这些统计量包括均值、中位数、mode、标准差、偏度和峰度。

Proc UNIVARIATE的使用很简单,在proc语句之后,用var语句指定一个或多个变量:

PROC UNIVARIATE;

VAR variable-list;

没有var语句,SAS会计算所有数值变量的统计量。Proc语句中也可以指定其他选项,比如plot或normal:

PROC UNIVARIATE PLOT NORMAL;

Normal选项进行正态测试,PLOT画出数据的三个图(stem-and-leaf plot,box plot,and normal probability plot),可以使用BY语句来对单个组进行分析。(前提是要进行sort排序)

例子 下面的数据是一个班级的学生分数,每一行是10位同学的分数:

下面代码读取数据并运行PROCUNIVARIATE:

结果为:

2. 用proc means产生统计量

由Procunivariate产生的统计量,大部分都可以由proc means产生,前提是你要要求它产生。Proc univariate会默认打印所有的统计量:mean,variance,skewness,quantiles,extremes,t tests,standard error。而用proc means你可以要求打印你需要的统计量。

Means过程只需要一个语句:

PROC MEANS statistic-keywords;

默认means会产生均值、缺失值数、标准差、每一个数值变量的最小最大值,下面的list列出可以需要的统计量,可以将它们加入proc mean语句中:

  • CLM 双侧置信区间
  • RANGE 范围
  • CSS 调整的平方和
  • SKEWNESS 偏度
  • CV 变异系数
  • STDDEV 标准差
  • KURTOSIS 峰度
  • STDERR 平均标准差
  • LCLM 单侧(低侧)置信区间
  • SUM 总和
  • MAX 最大值
  • SUMWGT 权数变量之和
  • MEAN 平均数
  • UCLM 单侧(高侧)置信区间
  • MIN 最小值
  • USS 未调整的平方和
  • N 非缺失变量值的个数
  • VAR 方差
  • NMISS 缺失值变量个数
  • PROBT t统计量概率分布
  • MEDIAN 中位数
  • T t统计量
  • Q1(P25) 25%分位数
  • Q3(P75) 75%分位数
  • P1 1%分位数
  • P5 5%quantile
  • P10 10%分位数
  • P90 90%分位数
  • P95 95%分位数
  • P99 99%分位数

置信区间 默认置信区间的置信水平为0.05或95%,用在means语句中使用ALPHA=option可以得到不同的置信度。比如现在想要90%的置信区间,就要指定ALPHA=0.10,并要有clm选项,语句为:

PROC MEANS ALPHA=.10 CLM;

VAR语句 means会默认为所有的数值型变量产生统计量,如果不需要,那么用var语句中指定你需要的变量,基本形式:

PROC MEANS options;

VAR variable-list;

例子 如下是书店中关于儿童读物的书本页数:

Means可以产生平均页数及90%的置信区间:

结果为:

3. 用proc freq检验分类数据

PROC FREQ,是base SAS的一部分,可以产生很多统计量来检验分类数据的相关性。基本形式为:

PROC FREQ;

TABLES variable-combinations/options;

选项 这里有一些统计选项:

  • AGREE:检测分类性,包括McNemar’stest,Bowker’s test,Cochran’s Q test,and kappa statistics
  • CHISQ:用卡方统计量检测一致性和同类性。
  • CL:一致性检测的置信区间
  • CMH:Cochran-Mantel-Haenszel statistics
  • EXACT:Fisher’s exact test for tables larger than2X2
  • MEASURES:一致性测量,包括Pearson and Spearman correlation coefficients,gamma,Kendall’s tau-b,Stuart’s tau-c,Somer’sD。
  • PLCORR:polychoric correlation coefficient
  • RELRISK:relative risk measures for 2X2 tables
  • TREND:the Cochran-Armitage test for trend

例子 有人抱怨公交班车总是到站太慢,而快速巴士却可以准时到达。现在想弄明白车的种类与是否准时之间的关系。现在有一组数据,包括两个变量:车类型(E for express or R for regular),是否准时(L for late orO for on time),每一行包含10个观测值:

下面的代码读取数据,用chisq选项运行proc freq,

结果为:

4. 用proc corr检测相关性

基本形式为:

PROC CORR;

它告诉SAS计算最近创建的数据集中的所有数值变量两两相关系数。可以和VAR和with来指定变量:

VAR variable-list;

WITH variable-list;

VAR语句中的变量出现在交叉表顶部,而with的变量出现在左侧。

默认情况下,proc corr计算Pearson积差相关系数。可以增加选项要求非参数的相关系数。下面的SPEARMAN选项告诉SAS计算Spearman’s rank correlations,而不是Pearson’scorrelations:

PROC CORR SPEARMAN;

其他还有如HOEFFDING(forHoeffding’s D statistic)何KENDALL(for Kendall’stau-b coefficients)

例子 有一份关于学生学习的数据,变量为考试分数,一周花在电视上的小时数,一周花在学习上的小时数,注意每行包括五个学生数据:

代码为:

结果为:

报告开始于每个变量的描述统计量,接着列出相关矩阵,包括:相关系数(pearson)、P值。

5. 使用proc reg做简单的回归分析

REG过程使用最小二乘法拟合线性回归模型,是SAS/STAT 产品的一部分。Reg使用逐步法、前进法、后退法进行自变量的筛选。SAS/STAT其他的产品可以进行非线性、混合线性、logit回归。SAS/ETS产品中有时间序列回归的分析。

Reg只需两步:用PROC REG语句开始,用MODEL语句指定分析模型。基本形式为:

PROC REG;

MODEL dependent=independent;

Model语句中,自变量在左边,因变量在右边。

Plot语句是reg过程中许多可选的语句之一。可以用plot语句产生数据的散点图。如果安装了SAS/GRAPH模块,PROC REG将使用这个模块来产生散点图。产生散点图语句:

PLOT dependent*independent;

如果没有SAS/GRAPH模块,则需要在procreg语句中使用LINEPRINTER选项,以产生plots。由于没有SAS/GRAPH模块不能产生回归线,需要用预测值代替观测值来拟合出线。下面的代码显示了用reg过程产生数据的单个散点图和预测值:

PROC REGLINEPRINTER;

MODEL dependent=independent;

PLOT dependent*independent='symbol'P.*independent='symbol'/OVERLAY;

Symbol的值指定SAS使用哪种标记来标注数据点,如果不指定,SAS会直接使用数字。P.是代表预测值的关键词。

有很多中选项可以选择,来绘出回归分析的结果。比如可以绘出残差值、学生化残差、Cook’s D influence statistics、置信区间。如果有SAS/GRAPH模块,那么有很多方法来高质量的控制输出的外观。

例子 在儿童垒球比赛上,有人说,选手多高,他就能将球击多远。想从统计角度来验证,收集了如下的数据,分别是身高(英尺)、三次击球最长的长度(英尺)。

下面代码读取数据并做回归:

在model和plot语句中,距离是自变量、高度是因变量。输出结果在6中讨论

6. 读取proc reg的输出

Reg的输出有几个部分,方差分析和参数估计通常输出在一页。有些选项语句,比如plot,在另外的页面中产生。

这部分的输出是由如下proc reg语句产生的结果:

第一部分是方差分析的结果,给出了模型对数据拟合的程度:

参数估计的结果如下:

参数分析的结果可以构建模型:

Distance=-11.00859+2.89466*Height

下面的图形显示了plot语句的结果,如果有SAS/GRAPH模块,proc reg会描出数据点和回归线。上面打印出方程,右边显示统计量:

就这个例子来看,球飞出去的长度确实和击球人的身高有关系,模型是显著的,但是两者之间的关系不是很明显(R-square=0.3758),可能年龄、经验会是比身高更好的预测变量。

7. 使用proc anova做方差分析

Procanova是SAS/STAT模块的一部分,许可证独立于BASE SAS。

方差分析有两个基本语句:CLASS 和MODEL,基本形式为:

PROC ANOVA;

CLASS variable-list;

MODEL dependent=effects;

Class描述分类变量,并要在model语句之前,对于单因素方差分析,只需要列出一个变量。Model语句描述了自变量和效应(effects)。对于单因素方差分析,效应就是分类变量。每组的观测值数要求一样,这样的数据为平衡的。

Procanova有很多选择语句,最常用的是means,计算出model语句中任何一种主效应的自变量的均值。另外,means还可以做几种多重比较检验,包括Bonferroni t tests(BON),Duncan’smultiple-rangetest(DUNCAN),Scheffe’smultiple-comparisonprocedure(SCHEFFE),pairwise t tests(T),和Tukey’s studentized range test(TUKEY)。Means语句的基本形式为:

MEANS effects/options;

Effect可以为model语句中的主效应。选项为希望使用的多重比较检验的名字。

例子 有一份关于几个篮球队员身高的数据,变量为队名、身高,注意每行有六个观测值:

因为每组都有12个队员,所以数据是平衡的。现在想知道哪一组最高,因此还要用means语句,并选择Scheffe’s multiple-comparison过程来比较均值。代码为:

结果将在8中讨论:

8. 读取proc anova的输出

Procanova的输出至少有两个部分,首先打印出有一个表,给出分类变量的信息:水平数、变量值、观测值数。再次打印出变量表的分析。如果使用了类似means这样的语句,那么其结果将接在后面。

7中想要检验是否组与组之间的升高有区别,使用proc anova语句如下:

第一部分给出了分类变量的信息:

分类变量team有五个水平:blue,gold,gray,pink,和red。第二部分是方差分析的表:

因为模型是显著的,因此可以认为不是所有组的队员身高都相同。Means语句中的SCHEFFE选项比较了不同组的身高。

9. 统计分析的图形界面

统计分析的结果也可以用Graphical User Interfaces来完成。

SAS Enterprise Guide、分析家 、SAS/LAB和SAS/INSIGHT

原文发布于微信公众号 - 数说工作室(shushuojun)

原文发表时间:2015-08-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据结构与算法

20:球弹跳高度的计算

20:球弹跳高度的计算 总时间限制: 1000ms 内存限制: 65536kB描述 一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下...

4895
来自专栏数据结构与算法

【BZOJ3203】保护出题人(动态规划,斜率优化)

在最优情况下,肯定是存在某只僵尸在到达重点的那一瞬间将其打死 我们现在知道了每只僵尸到达终点的时间,因为僵尸要依次打死。 所以我们假设血量的前缀和是\(s_...

2025
来自专栏算法修养

POJ-1088 滑雪 (记忆化搜索,dp)

滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 86318 ...

3787
来自专栏炉边夜话

考场安排---图的着色原理之运用

试设计一算法,当给定一个图时G=(V,E),|V|=n,(Vi,Vj)ЄE,当且仅当有一个同学选了课程i和课程j,试给出一个考试安排方案N1,N2,N3…Nk,...

1451
来自专栏生信技能树

二代测序数据拼接之原理篇

前前后后接触了一些基因组和转录组拼接的工作,而且后期还会持续进行。期间遇到了各种各样莫名其妙的坑,也尝试了一些不同的方法和软件,简单做一个阶段性小结,本篇是原理...

1.6K5
来自专栏数据结构与算法

cf932E. Team Work(第二类斯特灵数 组合数)

$$m^n = \sum_{i = 0}^m C_{n}^i S(n, i) i!$$

1114
来自专栏数据的力量

一大波常用函数公式,值得收藏!

1684
来自专栏大数据文摘

动图,用Python追踪NBA球员的运动轨迹

6784
来自专栏行者常至

007.python科学计算库matplotlib(下)

版权声明:本文为博主原创文章,允许转载,请标明出处。 https://blog.csdn.net/qwdafedv/article/deta...

2452
来自专栏逍遥剑客的游戏开发

Direct3D学习(四):高级着色语言初探

1547

扫码关注云+社区

领取腾讯云代金券