SAS备课笔记 - 简单线性回归、多元线性回归 - 图文

更新时间:2024-03-01 05:10:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2009_SAS备课笔记_回归分析

回归分析-简单线性回归、多元线性回归

比较:方差分析是处理试验数据的一类统计方法。这类统计方法的特点是所考察的指标(因变量)Y是测量得到的数值变量(连续变量),而影响指标的因子(自变量)水平是试验者安排的几个不同值(称这种因子为分类变量或离散变量)。试验的目的是找出影响指标的主要因子及水平。

在实际问题中,还经常遇到这样一些数据,它们不是有意安排的试验得到的数据,而是对生产过程测量记录下来的数据。对它们进行分析,目的是想找出对我们所关心的指标(因变量)Y有影响为因素(也称自变量或回归变量)x1,x2,......,xm,并建立用x1,x2,......,xm预报Y的经验公式。

对于现实世界,不仅要知其然,而且要知其所以然。顾客对商品和服务的反映对于商家是至关重要的,但是仅仅有满意顾客的比例是不够的,商家希望了解什么是影响顾客观点的因素,以及这些因素是如何起作用的。类似地,医疗卫生部门不能仅仅知道某流行病的发病率,而且想知道什么变量影响发病率,如何影响发病率的。发现变量之间的统计关系,并且用此规律来帮助我们进行决策才是统计实践的最终目的。

一般来说,统计可以根据目前所拥有的信息(数据)来建立人们所关心的变量和其他有关变量的关系。这种关系一般称为模型(model)。假如用Y表示感兴趣的变量,用X表示其他可能与Y有关的变量(x也可能是若干变量组成的向量)。则所需要的是建立一个函数关系Y=f(X)。这里Y称为因变量或响应变量(dependent variable, response variable),而X称为自变量,也称为解释变量或协变量(independent variable,explanatory variable, covariate)。建立这种关系的过程就叫做回归(regression)。

一旦建立了回归模型,除了对各种变量的关系有了进一步的定量理解之外,还可以利用该模型(函数或关系式)通过自变量对因变量做预测(prediction)。这里所说的预测,是用已知的自变量的值通过模型对未知的因变量值进行估计,它并不一定涉及先后的概念,更不必要有因果关系。

回归分析是统计分析的一项重要内容,它可以帮助我们找出变量之间的数量关系。例如,影响企业盈利情况的因素可能包括企业的资产负债率、银行的利率水平、所在国的GDP增长率。对一些企业进行调查之后,我们可以获得企业的盈利情况、资产负债率、利率水平、GDP增长率的数据。使用回归分析就可以得出由资产负债率、银行的利率水平、所在国的GDP增长率三个变量表示的企业盈利水平。作得到了回归结果后,就可以对企业的经营作出一些有用的决策。

SAS/STAT中提供的关于回归的过程很多,包括REG(回归)过程、RSREG(二次响应面回归)过程、ORTHOREG(病态数据回归)过程、NLIN(非线性回归)过程、TRAANSREG(变换同归)过程、CALIS(线性结构方程和路径分析)过程、GLM(一般线性回归)过程、GENMOD(广义线性回归)过程等等。

2009_SAS备课笔记_回归分析

一、回归分析知识点

1. 一元线性回归分析

这里所指的单变量,是针对自变量个数而言的,在不特别说明的情况下,应变量均为单个变量。单变量线性回归为回归分析中最为简单的情形,也是其它类型回归分析的基础。

【例题1】 某医生为了探讨缺碘地区母婴TSH水平的关系,应用免疫放射分析测定了160名孕妇(15-17周)及分娩时脐带血TSH水平(mU/L),现随机抽取10对数据,见下表,分娩时脐带血TSH水平(mU/L)受母血TSH水平的影响,试进行回归分析。(数据编号:data7_01)

10名孕妇及其分娩时脐带血TSH水平 母血TSH 脐带血TSH 1.21 3.90 1.30 4.50 1.39 4.20 1.42 4.83 1.47 4.16 1.56 4.93 1.68 4.32 1.72 4.99 1.98 4.70 2.10 5.20 此例资料中,脐带血TSH水平随母血TSH水平的变化而变化,前者应被看作为应变量,用y表示,后者为自变量,用x表示。编制如下程序。

【SAS程序】

data sasuser.data7_01; input x y@@; datalines;

1.21 3.90 1.30 4.50 1.39 4.20 1.42 4.83 1.47 4.16 1.56 4.93 1.68 4.32 1.72 4.99 1.98 4.70 2.10 5.20 ; proc reg; model y=x; run;

2009_SAS备课笔记_回归分析

虽然reg过程选项、语句复杂,但我们经常用到的一般比较简单,此例即为最简单的情形,达到了reg过程程序代码的最低限度。提交上述程序,结果如下。

结果第一部分为模型的方差分析结果。第二部分给出模型的有关重要统计量,如R(R-Square)、校正R

2

2

(Adj R-Sq)等指标。第三部分为模型的参数估计情况,分别给出截距项和自变量回归系数等的估计值以及对应的假设检验结果。

2009_SAS备课笔记_回归分析

2. 多元线性回归

多元线性回归(multiple linear regression)为线性回归中自变量在两个以上的情形,此时回归模型的选择具有很大的灵活性。对于全部自变量,可以将它们全部放在模型中,也可以只选择其中一部分进行回归分析,而选择变量的途径也有多种,一般常用的有前进法(forward)、后退法(backward)以及逐步回归法(stepwise)。

我们先来看看全模型(将所有变量纳入模型)的回归分析方法。

【例题2】某学校20名一年级女大学生体重(公斤)、胸围(厘米)、肩宽(厘米)及肺活量(升)实测值如下表所示,试对影响女大学生肺活量的有关因素作多元回归分析。(数据编号:data7_02)

20名一年级女大学生肺活量及有关变量测量结果

编号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 体重X1(公斤) 51.3 48.9 42.8 55.0 45.3 45.3 51.4 53.8 49.0 53.9 48.8 52.6 42.7 52.5 55.1 45.2 51.4 48.7 51.3 45.2 胸围X2(厘米) 73.6 83.9 78.3 77.1 81.7 74.8 73.7 79.4 72.6 79.5 83.8 88.4 78.2 88.3 77.2 81.6 78.3 72.5 78.2 74.7 肩宽X3(厘米) 36.4 34.0 31.0 31.0 30.0 32.0 36.5 37.0 30.1 37.1 33.9 38.0 30.9 38.1 31.1 30.2 36.5 30.0 36.4 32.1 肺活量Y(升) 2.99 3.11 1.91 2.63 2.86 1.91 2.98 3.28 2.52 3.27 3.10 3.28 1.92 3.27 2.64 2.85 3.16 2.51 3.15 1.92

【SAS程序】(先建立一个SAS数据集,存放上述数据,然后程序可以直接调用。)

proc reg data=sasuser.data7_02; model y=x1 x2 x3; run;

2009_SAS备课笔记_回归分析

从此例的结果中,我们看到并不是所有自变量的回归作用都具有统计学意义,这时我们需要建立一个最优模型,这就要涉及到自变量的选择问题。有关自变量的选择方法有许多种,这些方法也都有各自所依据的评优标准,我们所常用的就是前述的三种方法,其中逐步回归法更是最为常用。

逐步回归法的SAS程序只需在上述程序的model语句后添加“selection=stepwise”选项以及“slentry=”和“slstay=”选项即可。此处我们将进入模型和剔除出模型的门槛都定为α=0.05,model语句如下。

model y=x1 x2 x3 /selection=stepwise slentry=0.05 slstay=0.05;

【SAS程序】

proc reg data=sasuser.data7_02;

model y=x1 x2 x3 /selection=stepwise slentry=0.05 slstay=0.05; run;

【SAS程序运行结果】

2009_SAS备课笔记_回归分析

2009_SAS备课笔记_回归分析

逐步回归的结果内容较多,涉及到每一步回归分析的详细信息。每一步的信息都有相应的标志来标识,如“Stepwise Selection: Step 1”表示逐步回归的第一步,每一步都对当前的模型进行方差分析和参数的估计并对参数进行检验,这样整个模型选择的过程我们就会一目了然。最后给出模型选择的结果和选择过程的概略信息,籍此可以确定最终的回归方程。

2009_SAS备课笔记_回归分析

【例题3】下表是对32个企业的年赔偿费用y(单位:千元),年销售额x1(单位:百万元),年利润x2(单位:百万元)和雇佣人数x3的调查数据。 考虑建立如下模型:y=β0+β1 ln x1+β2 ln x2+β3 ln x3+εi (数据编号:data7_03)

No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

【SAS程序】

y 450 387 368 277 676 454 507 496 487 383 311 271 524 498 343 354 x1 4600.6 9255.4 1526.2 1683.2 2752.8 2205.8 2334.6 2746.0 1434.0 470.6 1508.0 464.4 9329.3 2377.5 1174.3 724.7 x2 128.1 733.9 136.0 179.0 231.5 329.5 331.8 237.9 222.3 63.7 149.5 30.0 577.3 250.7 82.6 61.5 x3 4800 5590 1378 2777 3400 2650 3030 4100 2590 860 2108 687 3900 3430 1941 359 No. 17 18 19 20 21 22 23 24 25 26 27 28 20 30 31 32 y 324 225 254 208 518 406 332 340 698 306 613 302 540 203 528 456 x1 724.7 578.9 966.8 591.0 4933.1 7613.2 3457.4 545.3 2361.0 2611.1 1013.2 4560.3 855.7 1211.6 5440.1 x2 90.3 63.3 42.8 48.5 310.6 491.6 228.0 54.6 203.0 201.0 121.3 194.6 63.4 352.1 655.2 x3 391 414 626 1061 6539 8940 5520 780 33712 5200 5050 1863 9794 1230 7180 8770 22862.8 3011.3 2009_SAS备课笔记_回归分析

二、回归分析SAS编程—reg过程

reg过程只是SAS中众多关于回归的过程之一,reg是用于一般目的回归分析的过程,而其它过程则具有各自特殊的用途。reg过程涉及到较多的语句和选项,所以显得稍微复杂一些。下面我们来看看reg过程的语句和基本格式。

PROC REG < 选项列表 > ;

< 标签: > MODEL 应变量列表=<自变量列表> < / 选项列表 > ; BY 变量名列表 ; FREQ 变量名 ; ID 变量名列表 ; VAR 变量名列表 ; WEIGHT 变量名 ; ADD 变量名列表 ; DELETE 变量名列表 ;

< 标签: > MTEST <方程式<, ... , 方程式>> < / 选项列表 > ; OUTPUT < OUT=数据集名 > keyword=变量名列表 < ... keyword=变量名列表> ; PAINT <条件表达式 | ALLOBS>

< / 选项列表 > | < STATUS | UNDO> ; PLOT <=符号>

< ...y变量名*x变量名> <=符号> < / 选项列表 > ; PRINT < 选项列表 > < ANOVA > < MODELDATA > ; REFIT;

RESTRICT 条件表达式, ... , 条件表达式; REWEIGHT <条件表达式 | ALLOBS> < / 选项列表 > | < STATUS | UNDO> ;

< 标签: > TEST 变量表达式,<, ...,变量表达式> < / 选项 > ;

2009_SAS备课笔记_回归分析

Proc reg语句标志reg过程的开始,其后的选项条目较多,功能复杂,这里的选项所具有的功能将会影响到此过程中的所有model语句。各选项及其功能详见下表。

Proc reg语句各选项及其功能 选项(依字母顺序) all alpha=数值 annotate=数据集名 corr covout data=数据集名 edf gout=图形目录 lineprinter | lp noprint outest=数据集名 outseb outsscp=数据集名 outstb outvif pcomit=数值列表 press ridge=数值列表 rsquare simple singular=n tableout usscp 功能描述 执行所有选项的功能(特定语句环境下合法的选项) 以指定的数值为水准计算各种可信区间 指定包含注释信息的数据集用以向plot语句所绘图形添加特定信息 指定SAS对model语句和var语句中的所有变量输出相关矩阵 向outest选项指定的输出数据集输出协方差矩阵 指定用于进行回归分析的数据集 向outest选项指定的数据集输出自变量个数、误差自由度、R2等 指定输出图形元素保存的路径,默认值为work.gseg 以点阵方式(行式打印机方式)输出plot语句绘制的图形 禁止分析结果的输出 将参数估计值以及模型拟合过程统计量(可选)输出到指定的数据集 输出参数估计值的标准误到outest选项所指定的数据集 将SSCP矩阵内容输出到指定的数据集中 将标准化的参数估计值输出到outest选项指定的数据集中 将VIF(方差膨胀因子)输出到outest选项指定的数据集中 对列表中每一个数值进行非完全主成分分析,并输出到outest数据集 计算并输出Press统计量到outest数据集 以列表中的每一个数值为ridge常数K进行ridge回归分析,结果输出到outest数据集 向outest选项指定的数据集输出自变量个数、误差自由度、R2等 将合计、均数、方差、标准差、离均差平方和等输出到结果中 控制用来检验变量奇异性的参数n,此选项较少用到 将参数估计值的标准误、可信区间、t值、P值输出到outest数据集 将reg过程中用到的所有变量的未校正的SSCP矩阵输出到结果中

model语句

model语句用以指定所要拟合的回归模型。其最前面的标签为可选项,可以是不超过8个字符的字符串,用来对定义的模型进行标识,以便于在结果中分辨不同的模型,一般情况下系统会以默认的方式对模型进行标识,你可以省略此项。关键字model后所列的是模型表达式,和方差分析中anova过程的model语句相似。模型表达式中等号的左边为反应变量,等号的右边为自变量列表,自变量间以空格相分隔。这里所用到的所有变量必须存在于所分析的数据集中,而且是数值型的。如果要用到几个变量产生的综合变量,必须在数据步完成新变量的创建过程,model语句中的组合型变量将被视为非法。

Model语句后可设定众多的选项,选项数目比proc reg语句的要多,这里不再一一列出。不过大家不用担心,这里的选项相当一部分和proc reg语句的完全相同,功能也一样,只是作用的范围有所差别,这里的选项只作用于model语句所涉及的功能范围。但有一些选项这里需要介绍一下,因为他们非常常用并且行使重要的功能,见下表。

2009_SAS备课笔记_回归分析

reweight语句

reweight语句用于重新指定各条用于拟合回归方程的观测的权重系数,它可以改变观测的权重系数,也可将观测的权重系数设置为0,等同于将相应的观测排除出模型拟合过程,但它并不会将这些观测删除。Reweight语句可被多次使用,reweight语句对其后面的语句发生作用,它产生作用的同时会改变模型的标签,以表示一个新的不同的模型。

Reweight语句的内容格式与paint语句的完全相同,大家可参考paint语句来运用reweight语句,需要注意的是,reweight语句只改变符合条件的观测。另外语句后的选项“weight=数值”用以对符合条件的观测指定新的权重系数,其中的“数值”须为非负实数。如果忽略此选项,新的权重系数将被默认地设置为零。

Reweight语句不会对相应的统计量立即进行重新计算,所以其后的paint语句或其它reweight语句可能发挥不了原先设想的作用。比如以下语句:

Reweight r.>0; Reweight r.>0;

其设想的作用是用残差大于零的观测重新拟合模型,在此基础上再选出残差大于零的观测再重新拟合模型,但由于reweight语句不会立即对相应统计量重新计算,第二条语句所用的条件与第一条语句完全相同,因此不能起到应有的作用,即将新模型中残差小于等于零的观测剔除出去。

解决的办法就是在两条语句之间加入其它可以对新模型立即进行重新计算的语句,最常用的是refit语句,简单高效。

test语句

test语句用于对指定的假设进行检验。语句前面的标签为可选项,用以标识不同的假设检验。 Test语句对指定的变量表达式(检验假设)进行检验,变量表达式具有与restrict语句中条件表达式完全相同的格式,为model语句中自变量及截距项之间的任何线性组合式,具体格式请参见restrict语句的内容。同一条test语句内可指定多个变量表达式用于检验,各表达式之间用逗号隔开。

与restrict语句所不同的是,test语句变量表达式中的变量名代表自身的回归系数,而非自变量本身,如以下语句:

model y=x1 x2 x3; test x1=0, x2=x3;

test语句所检验的假设为:变量x1的系数b1等于零,变量x2的系数等于变量x3的系数,即b2=b3。 Test语句可以设置一个选项,即“print”选项,其功能是将假设检验过程中所有的中间计算过程输出到结果中加以显示。

2009_SAS备课笔记_回归分析

三、各种分析工具的回归分析

用Analyst 计算回归方程

Statistics → Regression → Simple 以一元为例

Statistics → Regression → Linear 以多元为例

Insight计算回归方程: Analyze → Fit (Y X)

2009_SAS备课笔记_回归分析

【案例1】 数据库中的数据是摘自世界卫生组织的数据,有192个国家的21个变量。其中包括区域(这里把世界各国分成6个区域)、(在城镇和乡村)使用清洁水的百分比、生活污水处理的百分比、饮酒量(每年每人消费的纯酒精,单位升)、(每万人中)内科医生数目、护士和助产士数、卫生工作者数。病床数、护士助产士和内科医生之比、卫生开支占总开支的百分比、占政府开支的百分比、人均卫生开支、成人识字率、人均收入、每千个出生中5岁前死亡人数、人口增长率、(男女的)预期寿命(年)、每10万生育的母亲死亡数等。这些变量之间的相关性很大。作为例子,我们关注每1000个5岁之前儿童的死亡人数。(数据编号:Riskfac)

首先通过用描述性的点图来看哪些变量和我们所关心的5岁前儿童的死亡率有关,有什么关系。我们发现,最相关的为女性的预期寿命(男性的预期寿命和女性的预期寿命密切相关,我们就不考虑了),以及区域这个定性变量。下面两个图分别给出了儿童死亡率和女性预期寿命的散点图和分区域的儿童死亡率的盒形图。图告诉我们:女性预期寿命以及所在区域与儿童死亡率有密切关系之外,还可以看出各个区域的儿童死亡率的分布很不一样。显然这和各地区发展不平衡有关。我们将对这些关系做进一步的讨论。

【案例2】 数据库中的数据是美国60个著名商学院的数据,包括的变量有GMAT分数,学费,进入MBA前后的工资等等。下图为进入MBA学习前后的工资的散点图。可以看出,进入MBA前工资高的,毕业后也高。我们希望能够建立一个模型描述这个关系。(数据编号:Bschool)

【案例3】数据库中的数据是120个不同年龄和收入(两水平:中低收入、高收入)对是否需要加强社会保险的观点的数据。这里年龄是连续变量,收入是中低和高(分别用1和2,或L和H表示)两个水平的定性变量,而变量观点则为包含加强社会保险(用1表示)和不必加强(用0表示)两个水平的定性变量。人们想要知道的是究竟年龄和收入对观点有没有影响,有什么样的影响,以及是否可以用模型表示出这个关系。(数据编号:Mr)

根据数据,可以点出年龄和观点的散点图。这里仅有年龄是连续变量,而观点是仪仅有两个代码0和1的定量变量。该图看上去很怪异。当然,还是可以大致看出,大年龄的支持加强社会保险的多,小年龄的少。通过收入与观点的条形图可以看出,中低收入的比高收入的希望加强社会保险的多。这里因变量(观点)是定性变量,而自变量既有定量变量(年龄),又有定性变量(收入),如何能够找出一个数学模型来描述它们的关系呢?

2009_SAS备课笔记_回归分析

【案例4】数据库中的数据是50个从初中升到高中的学生(数据编号:highschool)。为了比较初三的成绩是否和高中的成绩相关,收集了他们在初三(J3)和高一(S1)的各科平均成绩。散点图如下图。

对这两个变量的数据进行线性回归,就是要找到一条直线来适当地代表上图中的那些点的趋势。这样做就要在所有可能的直线中进行挑选。首先需要确定选择这条直线的标准。当然,有很多标准,结果也不尽相同。这里介绍的是最小二乘回归(least squares regression)。古汉语“二乘”是平方的意思。最小二乘法就是寻找一条直线,使得所有点到该直线的竖直距离(即按因变量方向的距离)的平方和最小。这样的直线很容易通过计算机得到。用数据寻找一条直线的过程也叫做拟合(fit)一条直线。根据上面的数据计算初三成绩和高一成绩的回归直线。SPSS输出:截距(Constant)26. 444和斜率(变量j3的系数0.651)。

根据这里得到的截距和斜率,可以把回归直线加到初三和高一成绩的散点图上。由于这条回归直线的截距为26.444,斜率为0.651,该直线的方程为:

y?26.44?0.65x

这个直线实际上是对所假设的下面线性回归模型的估计:

y??0??1x??

这里的?是误差项。该模型假定,变量x和y有上面的线性关系,而凡是不能被该线性关系描述的y的变化都由这个误差项来承担。由于误差,观测值不可能刚好在这条直线上,如果这个模型有道理的话,这些观测值就不会离这条直线太远。这里得到的截距和斜率(26.444和0.651)是对?0和?1的估计。由于不同的样本产生不同的估计,所以估计量是个随机变量(通常用?0和?1表示),它们也有分布,也可以用由他们构造检验统计量来检验?0和?1是不是显著。拿回归主要关心的?1来说,假设检验问题是

^^H0:?1?0?H1:?1?0

如果显著,则认为回归有意义,也就是说,x的变化会引起y的变化。上面的SPSS输出也给出了这个检验:检验统计量为9. 089,而p值号为0.000 ,所以该检验很显著。当然,这些检验需要满足一些条件。

2009_SAS备课笔记_回归分析

回归中假设检验所需要的条件:最小二乘回归本身并不需要什么假定的条件,但是要对回归系数进行t检验或后面要介绍的关于拟合好坏的F检验就采要对模型作出一些假定。这些假定是关于误差项的:(1)

(2)?的方差(或标准差)对于所有x的值不变;(3)?的值互相独立;(4)? 为均值为零的随机变量;

?为正态分布随机变量。后面要引进的各种回归中的t检验和F检验均需要这些条件。这些条件中的前3项是多数这一类回归所假定的,而最后一个是为了检验所必须的。在前三个条件成立时,回归模型的误差项?被认为是随机误差,也就是说,回归模型是适当的。但是这些条件并不是自动成立的。在模型不适当时误差项是不会满足头三个条件的。

除了对?1的检验之外,还有一个说明自变量解释因变量变化百分比的度量,叫做决定系数(coefficient of determination,也叫测定系数或可决系数)用R2表示。如R2=0.632,这说明这里的自变量可以大约解释63%的因变量的变化。R2越接近1,回归就越成功。由于R2有当变量数目增加而增大的缺点,人们对其进行修改,因此,计算机输出还有一个修正的R2(adjusted R square)。对于上例,它等于0.625,当然,它和R2有类似的意义。此外,计算机还计算了一个在零假设下有下分布的检验统计量,它是用来检验回归拟合好坏的(零假设是因变量和自变量没有关系)。上例中F检验的p值也是0.000。这些结果在下面的两个SPSS输出表中:

细心的读者可能会问,这里的F检验和对?1检验都是关于模型拟合好坏的,它们究竟有什么不同。实际上,对于只有一个自变量的情况,不仅这两个检验是等价的,而且R也等于这两个变量的Pearson相关系数r的平方。但是,当多于一个自变量时,代表所有变量整体拟合情况的F检验就和个别变量系数的检验不同,R也和一个变量情况不同了。另外,这里的两个检验都是前面所说的关于?的假定下进行的。如果没有这些假定,最小二乘法照样可以用来估计回归系数(斜率截距等),但这两个检验就没有什么意义了。

22

2009_SAS备课笔记_回归分析

和刚才简单的回归模型类似,一般的有k个(定量)自变量x1,x2,......,xk,的对因变量y的线性回归模型为(称为多元回归)

y??0??1x1??2x2?......??kxk??

这里?1,?2,......?称为回归系数。对计算机来说,对多个自变量进行回归和一个自变量的情况类似,只不过多选自变量就是了,计算机也会自动输出相应的检验结果。而这些检验也只有在前面说的关于误差项?的各种假定成立时才有意义。

当选定一个模型,并且用数据来拟合时,并不一定所有的变量都显著,或者说并不一定所有的系数都有意义。软件中一般都有一种一边回归,一边检验的所谓逐步回归(stepwise regression)方法。该方法或者从只有常数项开始,逐个把显著的变量加入,或者从包含所有变量的模型开始,逐步把不显著的变量减去。注意不同方向逐步回归的结果也不一定相同。比方说,如果一组变量和另一组变量都提供了类似的信息,这时选择哪一组都有道理。

用案例2的数据来说明逐步回归的过程。我们关心的是Salary Post MBA(y)和什么有关。我们利用逐步回归进行选择。通过SPSS软件得到三个自变量:Salary Pro MBA(xl),Five Year Gain($ thousand) (x2)和Years To Payback(x3)。最后得到的模型为:

y??106.892?1.055x1?0.883x2?32.442x3

而单独和Salary Pro MBA(x1)回归得到的模型为:

y??11.403?2.829x1

2009_SAS备课笔记_回归分析

自变量中有定性变量的回归:案例4中的数据,还有一个自变量是收入,但它是定性变量,以虚拟变量或哑元(dummy variable)的方式出现。哑元就是在计算机数据中定性变量的直用没有实际意义的数字代表(这里收入的“低”,“中”,“高”,用1,2,3来代表)。所以,如果要用这种哑元进行回归就没有道理了。怎么办呢? 可以用下面的模型来描述:

y??0??1x1??1??,代表家庭收入的哑元?1时y??0??1x1??2??,代表家庭收入的哑元?2时y??0??1x1??3??,代表家庭收入的哑元?3时

这里?0为截距,?1为初三成绩变量的斜率,?1,?2,?3代表三种家庭收入所导致的截距的变化。现在只要估计?0、?1和?1,?2,?3即可。显然,带有定性变量的回归模型要比只有定量变量的麻烦些。但对于计算机就不算什么了。

【SPSS操作】选择Analize - General linear model - Univariate,再在主对话框中把因变量(sl)选入Dependent Variable,把定量自变量(j3)选入Covariate,把定性自变量(income)选入Factor中。为了输出估计的参数,在Option、中的Display中选择Parameter estimates; 回到主对话框后,再点击Model,在Specify Model中选Custom,再把两个有关的自变量选入右边,再在下面Building Term中选Main effect。然后就Continue- OK,就得到结果了。输出的结果有回归系数和一些检验结果。如果要求拟合值或预测值,那么只要在Save选项中点击Predicted Values中的内容,比如Unstandardized,如果要输出残差,也可在Residuals中选择感兴趣的残差。在预测中,那些只有自变量的行都给予了估计值。

这时的拟合直线有三条,对三种家庭收入各有一条:

y?28.708?0.688x?11.066,(低收入家庭) y?28.708?0.688x?4.679,(中等收入家庭)

y?28.708?0.688x,(高收入家庭)

显然,这三条线是平行的(仅截距不同)。这个模型显然比没有包括家庭收入时更加准确。此外,SPSS

还输出了关于模型及各个变量显著性的检验。这些检验也是在总体的正态性假设下有意义。

注意,这里进行的线性回归,仅仅是回归的一种,也是历史最悠久的一种。但是,任何模型都是某种近似,线性回归也不例外。因为数学上相对简单,长期以来被广泛深入地研究,成为其他回归的一个基础。

2009_SAS备课笔记_回归分析

【案例5】用电量的例子: 房主对空调器在他家电量消耗方面的影响是很关注的,因此他记录了21天中每天空调器使用的小时数。他还监测了这些天的电表并计算出使用的干瓦时(度)数。同时还记录了烘干器每天使用的次数。试建立用电量KWH与空调器使用的小时数AC和烘干器每天使用的次数DRYER的经验公式。

【用“分析家”工具(Statistics-Regression-Linear)与结果】

【程序】

编号:prog7_14

proc plot data=sasuser.kwh;

plot kwh*ac='*'; title 'KWH和AC的散点图'; plot kwh*dryer='^'; title 'KWH和DRYER的散点图'; run;

proc reg data=sasuser.kwh; model kwh= ac dryer;

title 'KWH与AC和DRYER的二元回归模型'; run;

编号:prog7_14_1

proc reg data=sasuser.kwh; model kwh= ac dryer;

title 'KWH与AC和DRYER的二元回归模型'; print cli clm;

plot kwh*ac='o' pred.*ac='-' l95.*ac='L' u95.*ac='U' /overlay; run;

2009_SAS备课笔记_回归分析

【案例6】发动机性能例子:数据库中的数据是一组检验某种工业用的发动机性能试验的数据。该试验使用的原料是柴油和从有机原料中通过蒸馏产生的气体的混合物。在各种不同的速度SPEED(用每分钟转几百转度量)下,测量发动机产生的马力POWER,试建立马力POWER与转速SPEED的关系式。

在有些实际问题中,因变量Y与x的关系不是线性关系。它们之间的关系有时可根据专业知识知道,有时通过画散点图可猜测y与z的函数形式。常见函数的曲线图有:指数函数、幂函数、对数函数和双曲函数。对这类不满足线性关系的回归问题,首先初步确定函数形形式,然后对变量y或x作适当的变换,目的是化为线性回归(一元线性或多元线性),然后求出变换后的线性关系式,最后转化为回归曲线。

【用“分析家”工具(Statistics-Regression-Simple)与结果】

2009_SAS备课笔记_回归分析

【程序】

编号:prog7_15

proc reg data=sasuser.engine graphics; model power= speed;

plot power*speed /conf95 pred95; symbol v=star; run;

编号:prog7_15_1 data temp;

set sasuser.engine; speedsq=speed*speed; run;

proc reg data=temp;

model power= speed speedsq; run;

编号:prog7_15_2 data temp;

set sasuser.engine; speedsq=speed*speed; run;

proc reg data=temp;

model power= speed speedsq; print cli;

plot power*speed='a' pred.*speed='p' l95.*speed u95.*speed/overlay symbol='L'; run;

回归曲线拟合好坏的度量:线性回归的效果可用决定系数R和误差均方s来判断;曲线回归也有类似的统计量-相关指数用于度量回归曲线的拟合效果,一元曲线回归中的曲线回归模型的剩余标准差。

多元线性回归:一、多元线性回归模型;二、参数估计方法一最小二乘准则;三、假设检验问题:1.回归方程的显著性检验;2.回归系数的显著性检验

在这些例子中都是研究一个(或几个)因变量Y与另一些变量的相互依赖关系。具体地说,我们研究:

(1)建立因变量Y与x1,x2,......xk的经验公式(回归方程); (2)对经验公式的可信度进行检验;

(3)判断每个自变量xi(i?1,2,......k)对Y的影响是否显著; (4)利用经验公式进行预报、控制及指导生产; (5)诊断经验公式是否适合这组数据。

22

2009_SAS备课笔记_回归分析

【案例7】水泥数据:水泥在凝固时单位质量所释放的热量为Y卡/克与水泥中下列四种化学成分有关:

x1?3CaO?Al2O3的成分%,x2?3CaO?SiO2的成分%, x3?4CaO?Al2O3?Fe2O3的成分%,x4?2CaO?SiO2的成分%,

共观测了13:组数据,试求出y与x1,x2,x3,x4的关系式。

【逐步回归】

在实际问题中,影响因变量Y的因素(自变量)可能很多,人们希望从中挑选出影响显著的自变量来建立回归关系式,这就涉及到变量选择问题。

在回归方程中若漏掉对Y影响显著的变量,那么建立的回归式用于预测时会产生大的偏差。但回归式中若包含的变量太多,且其中有些对Y影响不大,显然这样的回归式不仅使用不方便,而且反而会影响预测的精度。因而适当选择变量用于建立一个“最优”的回归方程是十分重要的问题。

什么是“最优”回归方程?直观考虑应该是方程中包含的所有变量对因变量Y的影响都是显著的,而不包含在方程中的变量对Y的影响是不显著的(可忽略)。.也就是从自变量集中选出适当的子集,使得建立y与其的回归方程就是这样的“最优”,这就是回归变量的选择问题。

回归变量的选择问题在实用上和理论上都是十分重要的,这个问题最大的困难就是如何比较不同选择(即不同子集)的优劣,即最优选择的标准。从不同的角度出发,可以有不同的比较准则,在不同的准则下“最优”回归方程也可能不同。

最优选择的标准:(1)均方误差最小 (2)预测均方误差最小 (3)Cp统计量最小准则

(4)AIC或BIC准则 (5)修正R2准则(最大)

选择“最优”子集回归的方法:(1)选择“最优”子集的简便方法包括:逐步筛选法(STEPWISE)、向前引入法(FORWARD)和向后剔除法(BACKWARD) (2)计算量最大的全子集法:通过计算所有可能回归子集后按最优选择的标准选择最优回归方程。包括R2选择法(RSQUARE)、Cp选择法(CP)和修正R选择法(ADJRSQ)。 (3)计算量适中的选择法:没有计算所有可能回归子集,但比较的子集个数多于(1)中提到的逐步筛选等一些选择法,如最小R增量法(MINR)和最大R增量法(MAXR)。 逐步回归的基本思想:逐个引入自变量,每次引入对Y影响最显著的自变量,并对方程中的老变量逐个进行检验,把变为不显著的变量逐个从方程中剔除掉。最终得到的方程中既不漏掉对Y影响显著的变量,又不包含对Y影响不显著的变量。

【程序】

编号:prog7_16

proc reg data=sasuser.heat;

model y= x1-x4 /seletion=stepwise

sle=0.1 sls=0.1;

print cli; run;

222

2009_SAS备课笔记_回归分析

基本回归诊断

基本回归诊断和拟合回归模型总是搅合在一起。首先拟合模型,然后用回归诊断检验这个模型。诊断结果可能导致你接着拟合第二个模型,再用回归诊断方法检验它。这个过程一直进行,直到求出拟合这组数据的最佳模型为止。

一、残差分析:1. 残差图 2. 方差齐性的诊断及修正方法 3.异常点的识别 二、贡献分析:1. 影响函数 2. Cook距离 3. WK统计量

三、共线性诊断:共线性问题是指拟合多元线性回归时,自变量之间存在线性关系或近似线性关系。自变量之间的线性关系将会隐蔽变量的显著性,增加参数估计的方差,还会产生一个很不稳定的模型。共线性诊断的方法是基于对自变量的观测数据构成的矩阵X'X进行分析,使用各种反映自变量间相关性的指标。共线性诊断常用统计量有方差膨胀因子VIF((或容限TOL)条件指数和方差比例等。

【程序】

编号:prog7_16_1

proc reg data=sasuser.heat; model y= x1-x4 /vif collinoint; run;

2009_SAS备课笔记_回归分析

处理多元线性回归中自变量共线性的几种方法 一、筛选变量的方法

二、岭回归方法

【经济分析数据的岭回归分析】考察进口总额Y与三个自变量:国内总产值工x1、存储量x2、总消费量x3。现收集了11年的数据。(数据编号:import)

【程序】

proc reg data=sasuser.import corr; model y=x1-x3 /vif collin; run;

【程序-岭回归】

proc reg data=sasuser.import outset=Oimport graphics outvif; model y=x1-x3 /ridge=0.0 to 0.1 by 0.01 0.2 0.3 0.4 0.5; plot / ridgeplot; proc print data=Oimport; run;

三、主分量回归法

【程序】

proc reg data=sasuser.import outset=Oimport; model y=x1-x3 /pcomit=1,2 outvif; run;

proc print data=Oimport; run;

2009_SAS备课笔记_回归分析

四、偏最小二乘回归法

【程序】

proc pls data=sasuser.import outset=Oimport cv=one method=simple; model y=x1-x3; run;

proc print data=Oimport; run;

2009_SAS备课笔记_回归分析

【编程】 SAS/STAT 中有许多具有回归分析功能的过程,功能最为全面的是过程REG。

基本格式:

proc reg data=数据集;

model 因变量名=自变量名; run;

例题-data7_04 一元线性回归

程序(prog7_04):

proc reg data=sasuser.data7_04; model y=x; run;

运行结果:

2009_SAS备课笔记_回归分析 拟合不含常数项的回归(prog7_04_1): proc reg data=sasuser.data7_04; model y=x/noint; run;

运行结果:

预测-点(prog7_04_2):

proc reg data=sasuser.data7_04; model y=x/p; id x; run;

在model语句中使用选项p 可以对数据进行预测。 id x 是要求输出结果时增加变量x作为标识变量。

运行结果:

2009_SAS备课笔记_回归分析 对另外一些数据进行预测(prog7_04_3): data new; input x @@; datalines; 8000 9000 10000 ;

proc sort data=sasuser.data7_04 out=sorted; by x; data new;

set sorted new; run;

proc reg data=new; model y=x/p; id x; run;

运行结果:

也可以先在数据集中存放要预测是数据,然后运行:

proc reg data=sasuser.data7_04_1; model y=x/p; id x; run;

2009_SAS备课笔记_回归分析 预测-区间(prog7_04_4): proc reg data=sasuser.data7_04; model y=x/cli clm; run;

运行结果:

在model语句中使用选项cli,提供对个别观测预测区间;使用选项clm,提供回归均值的预测区间。

作图(prog7_04_5):

proc reg data=sasuser.data7_04; model y=x; plot y*x;

symbol v=dot h=0.7 w=2 color=orange; run;

运行结果:

2009_SAS备课笔记_回归分析 例题-data7_05 多元线性回归

程序(prog7_05):

proc reg data=sasuser.data7_05; model y=x1 x2; run;

运行结果:

2009_SAS备课笔记_回归分析

例题-data7_06 多元线性回归

程序(prog7_06):

proc reg data=sasuser.data7_06; model y=x1 x2 x3; run;

结果:

有不能通过检验的系数,故用逐步回归。

程序修改为:

proc reg data=sasuser.data7_06;

model y=x1 x2 x3 /selection=stepwise p; id x1 x2 x3; run;

2009_SAS备课笔记_回归分析

2009_SAS备课笔记_回归分析 例题-data7_07 一元线性回归(加权)

【程序prog7_07】

proc reg data=sasuser.data7_07; model y=x; freq f; run;

【SAS运行结果】

2009_SAS备课笔记_回归分析

练习-data7_08 一元线性回归(加权)

建立运材运量与单位运材成本的线性回归模型,并进行检验;估计当木材运量达到53万立方米时,运材成本的区间范围。

单位运材成本y (元/立方米) 16-21 11-16 6-11 合计

【程序prog7_08】

proc reg data=sasuser.data7_08; model y=x; freq f; run;

【SAS运行结果】

木材运量x(万立方米) 1-11 2 5 7 11-21 1 3 3 7 21-31 4 3 7 31-41 1 1 2 41-51 1 1 合计 3 13 8 24

2009_SAS备课笔记_回归分析

【程序】

proc reg data=sasuser.data7_08_1; model y=x /cli clm; freq f; id x; run;

【结果】

2009_SAS备课笔记_回归分析 练习-data7_09 多元线性回归 家庭信用卡消费多寡与家庭年收入及家庭人口有关,具体数据如下表。建立线性回归方程,并预测当年收入为6万元,家庭人口为3人时,信用卡消费金额的可能范围。

被调查对象的家庭年收入(万元)、家庭人口和信用卡消费的金额(元) 年收入 5.4 3.0 3.2 5.0 3.1 5.5 3.7 4.0 6.6 5.1 2.5 4.8 2.7 3.3 6.5 6.3 4.2

【程序prog7_09】

proc reg data=sasuser.data7_09;

model y=x1 x2 /cli clm selection=stepwise; id x1 x2; run;

【SAS运行结果】

家庭人口 消费金额 4 5 1 4 3 3 4 1 3 4 6 1 5 6 3 7 2 4016 3159 5100 4742 1864 4070 2731 3348 4764 4110 4208 4219 2477 2514 4214 4965 4412 年收入 家庭人口 消费金额 5.4 3.0 4.8 3.4 6.7 5.0 6.7 5.5 5.2 6.2 6.4 2.2 2.9 3.9 3.5 3.9 5.4 6 1 2 4 6 2 2 4 1 4 3 6 4 4 6 1 2 5573 2583 3866 3586 5037 3605 5345 5370 3890 4703 4157 3579 3890 2972 3121 4183 3730 年收入 家庭人口 消费金额 3.7 6.2 2.1 5.5 4.2 4.1 2.6 6.1 3.0 2.2 4.6 6.6 2.1 4.4 2.3 2.7 5 1 4 3 3 4 2 2 4 1 4 3 7 4 4 6 4171 5678 3623 5301 3020 4828 4603 4273 3067 3074 4820 5149 2448 2995 4127 2921

均值区间估计[4316 4949] 个别值区间估计[3128 6138]

本文来源:https://www.bwwdw.com/article/wqia.html

Top