SAS统计分析学习笔记(七)——相关和简单回归分析

1.简介
描述两个连续变量之间线性关系强度的常用统计指标,被称为皮尔逊相关系数,也简称相关系数。相关系数是-1到1之间的一个数字。
2.相关
DATA CORR_EG;
  INPUT GENDER $ HEIGHT WEIGHT AGE;
DATALINES;
M 68 155 23
F 61 99 20
F 63 115 21
M 70 205 45
M 69 170 .
F 65 125 30
M 72 220 48
;
PROC CORR DATA=CORR_EG;
  TITLE "Example of a Correlation Matrix";
  VAR HEIGHT WEIGHT AGE;
RUN;

PROC CORR用于计算VAR变量的简单描述统计量和相关矩阵。矩阵的每个每行或每列都显示了相关系数(最上面的数)、p值(第二个数)以及用来计算相关的配对组数量。可以看到HEIGHT和WEIGHT的相关系数是0.97165,显著性水平时0.0003,p值很小,意味着如果7名被试是从相关为0的人群中随机挑选出来的,得到0.97165这般高的相关的可能性非常小。
要生成相关矩阵,可以用下面的一般句式:
PROC CORR options;
  VAR list-of-variables;
RUN;
选项options可以选择SPEARMAN用来计算斯皮尔曼等级相关,KENDALL计算肯德尔系数,HOEFFDING对应的是Hoeffding的D统计量。假如采取了其中任意一个选项,例如SPEARMAN,如果还想计算皮尔逊相关,则需要加上PEARSON,如果不想进行简单描述统计,则在选项列中加上NOSIMPLE,如果在PROC CORR的选项中添加BEST=number,可以将相关系数按降序排列,number决定输出的矩阵列数。
PROC CORR DATA=CORR_EG PEARSON SPEARMAN NOSIMPLE BEST=2;
  VAR HEIGHT WEIGHT AGE;
  TITLE "Example of a Correlation Matrix";
RUN;
如果只想看一组变量和另一组变量之间的相关,可以运用WITH语句。PROC CORR将计算WITH 列表中每个变量和VAR列表中每个变量的相关。假如数据集results中含有变量IQ和GPA,以及学生在10个测验上的成绩,要计算这两个变量和每个测验之间的相关系数如下:
PROC CORR DATA=RESULTS;
  VAR IQ GPA;
  WITH TEST1-TEST10;
RUN;
3.相关系数的显著性
一般认为当相关系数的p小于0.05时显著。
4.偏相关
要知道移除其他变量影响后,某两个变量之间的关系强度,需要计算偏相关系数。
PROC CORR DATA=CORR_EG NOSIMPLE;
  TITLE "Example of Partial Correlation";
  VAR HEIGHT WEIGHT;
  PARTIAL AGE;
RUN;
5.线性回归
通常采用最小二乘法:
PROC REG DATA=CORR_EG;
  TITLE "Regression Line for Geight-Weight Data";
  MODEL WEIGHT=HEIGHT;
RUN;
6.生成散点图和回归线
下面使用PLOC GPLOT对身高体重的数据绘制坐标图。运用SYMBOL语句改变默认设置,当然也可以不更改。
SYMBOL VALUE=DOT  COLOR=GREEN;
PROC GPLOT DATA=CORR_EG;
  PLOT WEIGHT*HEIGHT;
RUN;
SAS显示数据点和回归线的方法主要有两种,一种是PROC REG中使用PLOT,格式如下:
PLOT  y_variable *x_variable/ options;
操作过程:
SYMBOL1 VALUE=TRIANGLE COLOR=BLACK;
PROC REG DATA=CORR_EG;
  TITLE "Regression and Residual Plots";
  MODEL WEIGHT = HEIGHT;
  PLOT WEIGHT * HEIGHT
       RESIDUAL. *HEIGHT;*绘制残差关于身高的图形;
RUN;

第二种方法是PROC GPLOT过程中使用适当的SYMBOL 语句。
GOPTIONS CSYMBOL=BLACK;*将所有的绘图记号颜色设为黑色;
SYMBOL1 VALUE=DOT;*指定圆点作为绘图记号;
SYMBOL2 VALUE=NONE I=RLCLM95; *I=(插值法)是呈现回归线和y的平均值95%的置信区间;
SYMBOL3 VALUE=NONE I=RLCLI95 LINE=3; *I=(插值法)是呈现回归线和y的个体的95%的置信区间;
PROC GPLOT DATA=CORR_EG;
  TITLE "Regression Lines and 95% CI's";
  PLOT WEIGHT * HEIGHT=1
       WEIGHT * HEIGHT=2
	   WEIGHT * HEIGHT=3/OVERLAY;
RUN;
7.在回归方程中加入二次项
如果身高和体重之间存在二次关系,首先需要在DATA步骤中添加一行,在INPUT语句之后添加:
HEIGHT2=HEIGHT*HEIGHT;或者HEIGHT2=HEIGHT**2;
采用PLOT或者PROC REG过程来绘制模型残差图:
SYMBOL VALUE=DOT COLOR=BLUE;
PROC REG DATA=CORR_EG;
  MODEL WEIGHT= HEIGHT HEIGHT2;
  PLOT R.*HEIGHT;
  ***R. is short for RESIDUAL.;
RUN;
8.转换非线性模型
首先对一组数据绘图和建立方程:
DATA HEART;
  INPUT DOSE HR @@;
DATALINES;
2 60 2 58 4 63 4 62 8 67 8 65 16 70 16 70 32 74 32 73
;
SYMBOL VALUE= DOT COLOR=BLACK I=SM;
***I=SM produces a smooth line through the data points.YOU can follow SM by a number from 0 to 99 
to control how much the line should try to touch each data point;
PROC GPLOT DATA=HEART;
  PLOT HR*DOSE;
RUN;
PROC REG DATA=HEART;
  MODEL HR=DOSE;
RUN;
输出图为:

可以看出这个关系是一个非线性的,下面建立对数模型:
DATA HEART;
  INPUT DOSE HR @@;
  LDOSE=LOG(DOSE);
  LABEL LDOSE="Log of Dose";
DATALINES;
2 60 2 58 4 63 4 62 8 67 8 65 16 70 16 70 32 74 32 73
;
PROC REG DATA=HEART;
  TITLE "Investigating the Dose /HR Relationship";
  MODEL HR=LDOSE;
RUN;

SYMBOL VALUE=DOT;
PROC GPLOT DATA=HEART;
  PLOT HR*LDOSE;
RUN;














  • 7
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值