前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【SAS Says】基础篇:8. 相关、回归等初步统计

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

作者头像
数说君
发布2018-04-04 15:50:15
2.1K0
发布2018-04-04 15:50:15
举报

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数说工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 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 统计分析的图形界面
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档