第八章 直线回归、直线相关与logistic回归(上)
直线回归与相关是联系非常紧密的两种统计分析方法,事实上SAS用于回归分析的程序步REG也可提供相关分析的结果,但进一步的深入分析仍应采用相应的程序步--CORR才能实现。本章前三节主要介绍两个常用的用于直线回归和相关分析的程序步――REG过程和CORR过程。后两节则介绍多元线性回归和Logistic回归的方法和所用的过程。
§8.1 引 例
例 8.1 今测定20名糖尿病人血糖水平(mmol/L)与胰岛素水平(mU/L),试以血糖为应变量Y,胰岛素为自变量X建立直线回归方程,并求两者的相关系数(医统第二版P104例6.1)。
解:显然,在建立数据集时应指定血糖与胰岛素两个变量。再调用 GPLOT过程绘制散点图观察有无直线趋势,然后调用REG过程求出直线回归方程,最后调用CORR过程求出相关系数。
① 设定数据库环境:
LIBNAME A ’C:\USER’;
② 数据步,建立数据集:
DATA A.YTLI7_1; |
INPUT Y X @@; |
CARDS; |
12.21 15.2 14.54 16.7 12.27 11.9 12.04 14.0 7.88 19.8 11.10 16.2 |
10.43 17.0 13.32 10.3 19.59 5.9 9.05 18.7 6.44 25.1 9.49 16.4 |
10.16 22.0 8.38 23.1 8.49 23.2 7.71 25.0 11.38 16.8 10.82 11.2 |
12.49 13.7 9.21 24.4 |
; |
RUN; |
③ 做散点图,估计两变量有无直线趋势:
PROC GPLOT DATA=A.YTLI7_1; |
PLOT Y*X; |
RUN; |
④ REG过程,进行直线回归分析:
PROC REG DATA=A.YTLI7_1; |
MODEL Y = X; |
RUN; |
⑤ CORR过程,进行相关分析:
PROC CORR DATA=A.YTLI7_1; |
VAR X Y ; |
RUN; |
§8.2 REG过程
SAS/STAT 模块提供了近十个用于回归分析的过程,其中REG过程是进行一般线性回归分析最常用的过程,该过程采用最小二乘法拟合线性模型,可产生有关数据的一些描述统计量、参数估计和假设检验以及散点图,输出预测值、残差、学生化残差、可信限等,并可将这些结果输出到一个新的SAS数据集中。
8.2.1 语法格式
REG 过程的语法格式如下:
PROC REG [DATA=<数据集名> [选项] ] ; |
MODEL 应变量名=自变量名列/ [选项] ;[1] |
[VAR 变量名列;[2] |
FREQ 变量名; |
WEIGHT 变量名; |
BY 变量名列; |
OUTPUT <OUT=新数据集名 关键字=新变量名> ...; |
PLOT <纵坐标变量*横坐标变量[=绘图符号]...> / [选项];[3]] |
8.2.2 语法说明
程序中全部语句中只有第一行和 MODEL语句是必需的,其他都可以省略。
MODEL语句,必需语句,定义回归分析模型
VAR语句为可选的,指定用于计算交叉积的变量
PLOT语句为可选的,用于绘制变量间的散点图,还可添加回归线。
【过程选项】
- OUTEST=
数据集名 指定统计量和参数估计输出的新数据集名。
- NOPRINT
禁止统计结果在OUTPUT视窗中输出。
- SIMPLE
输出REG过程中所用的每个变量的基本统计量。
- CORR
输出MODEL语句或VAR语句中所列变量的相关矩阵。
- ALL
等价于MODEL语句加上全部选项,即输出该语句所有选项分析结果。
【MODEL语句】
MODEL 语句定义模型中的因变量、自变量、模型选项及结果输出选项。语句中的变量只能是数据集中的变量,任何形式的变换都必须先产生一个新变量,然后用于分析。如X1的二次项,不能在模型中直接指定X1*X1,而要产生另一个新变量代表X1*X1,方可引入模型。
MODEL 语句中常用的选项有:
- NOINT
在模型中不拟合常数项。
- STB
输出标准化回归系数。
- CLI
输出个体预测值 的95%可信区间上下限。
- CLM
输出因变量期望值(均值)的95%可信区间上下限。
- R
输出个体预测值、残差及其标准误。
- P
输出实际值Yi、预测值 和残差等。如已选择了CLI、CLM和R,则无需选择P。
【关键字】
REG 过程中OUTPUT语句的用法和UNIVARIATE过程中的用法相同,只是会用到另一些关键字。关键字用来定义需要输出到新数据集中的统计量,常用的关键字及其含义有:
PREDICTED |
因变量预测值(简写为P) |
RESIDUAL |
残差(简写为R) |
L95M、U95M |
均数95%可信区间上下限 |
L95、U95 |
个体预测值95%可信区间上下限 |
STDP |
期望值的标准误 |
STDR |
残差的标准误 |
STDI |
预测值的标准误 |
STUDENT |
学生化残差(即残差与标准误之比) |
【 PLOT语句】
PLOT 语句用于输出变量间的散点图,其用法和GPLOT过程中的PLOT语句非常相似。PLOT语句定义的两变量可为MODEL语句或VAR语句中定义的任何变量。SYMBOL选项可定义散点图中点的标记,如SYMBOL=’*’,则每个点以“*”表示。
8.2.3 结果解释
REG 过程的默认输出结果和方差分析输出结果相似,这是因为它们所用的统计模型相同。刚才的例4.1输出结果如下:
Model: MODEL1 第一个模型
Dependent Variable: Y 应变量名为Y ----以下是REG过程给出的直线回归方程是否有统计学意义的检验结果,使用的检验方法为方差分析---
Analysis of Variance
Sum of Mean
Source DF Squares Square F Value Prob>F
变异来源 自由度 离均差平方和 均方 F值 P值
回归变异 Model 1 114.70324 114.70324 43.060 0.0001
误 差 Error 18 47.94816 2.66379
总变异 C Total 19 162.65140 误差的均方根 Root MSE 1.63211 R-square 0.7052 确定系数R2
Dep Mean 10.85000 Adj R-sq 0.6888 调整的R2
Y的变异系数 C.V. 15.04250
--------以下是参数估计及其假设检验结果,采用的是t检验-------- Parameter Estimates Parameter Standard T for H0:
Variable DF Estimate Error Parameter=0 Prob > |T|
变量名 自由度 参数估计值 估计值的标准误Sb t值 P值
截距 INTERCEP 1 18.796143 1.26472741 14.862 0.0001
X 1 -0.458520 0.06987466 -6.562 0.0001
如果在 MODEL语句中使用CLI、CLM选项,则系统输出因变量均值以及个体预测值的95%可信区间上下限,输出如下: Dep Var Predict Std Err Lower95% Upper95% Lower95% Upper95%
Obs Y Value Predict Mean Mean Predict Predict
1 12.2100 11.8266 0.394 10.9986 12.6547 8.2991 15.3541
记录号 Y的实测值 预测值 预测值的标准误 可信区间的上下限 个体预测值可信区间的上下限
Y ( ) ( ) Obs Residual
记录号 残差
1 0.3834 Sum of Residuals 0 残差和
Sum of Squared Residuals 47.9482 残差平方和
Predicted Resid SS (Press) 66.8422 预测残差平方和
§8.3 CORR过程
CORR 过程计算变量间的相关系数,包括Pearson积矩相关系数、Spearman等级相关系数等,同时也可给出一些单变量描述统计结果。
8.3.1 语法格式
CORR 过程的语法格式如下:
PROC CORR [选项] ; |
[VAR 变量名列 ;[1] |
WITH 变量名列;[2] |
WEIGHT 变量名; |
FREQ 变量名; |
BY 变量名列;] |
8.3.2 语法说明
除了 PROC语句为必需,其他语句都是可选的,如果省略所有的可选语句,则对所有变量作相关分析。
VAR语句,可选的语句,定义相关分析的变量
WITH语句,可选的语句,定义分析相关性的另一组变量
【过程选项】
- 数据集选项
数据集名 指定要分析的数据集名。
OUTP=数据集名 要求产生一个包含Pearson相关分析结果的新数据集,该选项应和Pearson选项一起使用方有效。
OUTS=数据集名 要求产生一个包含Spearman相关分析结果的新数据集。
-
相关类型选项
要求计算PEARSON相关,系统在默认的情况下就计算PEARSON相关系数。
SPEARMAN 要求计算SPEARMAN相关,也就是等级相关(秩相关)。如果使用了WEIGHT语句,该选项无效。
-
其它选项
去除含有缺失值的所有记录。
NOPRINT 禁止统计结果在OUTPUT视窗中输出。
NOSIMPLE 取消每个变量的简单统计描述。但如果指定了输出数据集,则VAR语句中的每个变量的简单统计描述仍会输出到指定的数据集。
【 VAR语句和WITH语句】
VAR 语句给出希望计算相关的变量名。若省略该语句,则CORR过程计算指定数据集中所有数值变量间各种组合的相关系数。
WITH 语句必须和VAR语句一同使用。如果我们要得到特定变量组合的相关系数,则可在VAR语句中列出相关矩阵上部出现的变量,在WITH语句中列出相关矩阵左侧出现的变量。如有程序步如下:
PROC CORR ;
VAR A B ;
WITH X Y Z ;
则产生下列组合的相关系数矩阵:
|
A |
B |
X |
rXA |
rXB |
Y |
rYA |
rYB |
Z |
rZA |
rZB |
8.3.3 结果解释
CORR 过程的默认输出结果主要包括各个变量的简单统计描述和一个相关系数矩阵。例8.1的CORR过程的具体输出如下: Correlation Analysis 2 'VAR' Variables: X Y 相关阵中的变量有X、Y Simple Statistics 简单统计描述 Variable N Mean Std Dev Sum Minimum Maximum
变量名 例数 均数 标准差 总和 最小值 最大值
X 20 17.330000 5.358623 346.600000 5.900000 25.100000
Y 20 10.850000 2.925850 217.000000 6.440000 19.590000 Pearson Correlation Coefficients / Prob > |R| under Ho: Rho=0 / N = 20
-------矩阵第一列为PEARSON相关系数,第二列为相应的P值。并且该样本的例数为20-----
X Y X 1.00000 -0.83977
0.0 0.0001 Y -0.83977 1.00000
0.0001 0.0
本例X与Y的相关系数达到-0.83977,检验相关系数检验的P值为0.0001,按α=0.05水准,拒绝H0,接受H1,相关系数检验由统计学意义,血糖和胰岛素之间由直线相关关系。
8.3.4 应用实例
例 8.2 下表给出了12名不同年龄(岁,X)妇女的收缩压测量值(mmHg,Y),试进行回归分析。
妇女 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
年龄 |
56 |
42 |
72 |
36 |
63 |
47 |
55 |
49 |
38 |
42 |
68 |
60 |
血压 |
147 |
125 |
160 |
118 |
149 |
128 |
150 |
145 |
115 |
140 |
152 |
155 |
- 制作散点图;
(2) 建立由X预报 的回归方程,制作回归直线;
(3) 对回归方程及回归系数b进行假设检验;
(4) 绘制 的95%可信区间;
(5) 建立单个Y值的预报方程;
(6) 计算积矩相关系数,并进行假设检验。
解:程序如下:
data a.yt4_10; |
input x y @@; |
cards; |
56 147 ... ... 60 155 |
; |
proc gplot; |
plot y*x y*x/overlay; |
symbol1 v=star c=pink ; |
symbol2 i=rlcli c=blue ; |
proc corr; |
var x y; |
proc reg; |
model y = x / cli clm; |
run; |
GPLOT 过程绘制高分辨率的图形,在PLOT语句中作了两层图,用OVERLAY选项让它们在同一坐标系中绘制,第一层图绘制散点图,用星号表示散点,颜色为粉红色;第二层图绘制回归直线和个体预测值95%可信区间,颜色为兰色。用了两个SYMBOL语句分别控制这两层图的输出效果。该过程的输出在GRAPH窗口。
其他两个过程的输出同前类似,不再赘述。
|