【SAS Says】基础篇:8. 相关、回归等初步统计

2018-04-04 15:50:15 浏览数 (1)

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

本节目录:

8.1 用proc univariate检验数据分布

8.2 用proc means产生统计量

8.3 用proc freq检验数据分类

8.4 用proc corr检验相关性

8.5 用proc reg做简单回归分析

8.6 读取proc reg的输出

8.7 用proc anova做方差分析

8.8 读取proc anova的输出

8.9 统计分析的图形界面


【SAS Says】基础篇:8. 相关、回归等初步统计

8.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:

结果为:

8.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%的置信区间:

结果为:

8.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,

结果为:

8.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值。

8.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中讨论

8.6 读取proc reg的输出

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

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

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

参数估计的结果如下:

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

Distance=-11.00859 2.89466*Height

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

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

8.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.8 读取proc anova的输出

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

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

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

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

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

8.9 统计分析的图形界面

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

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

sas

0 人点赞