这里是佳奥!欢迎来到回归篇的学习!
一般来说,回归分析可以用来挑选与响应变量相关的解释变量,可以描述两者的关系,也可以生成一个等式,通过解释变量来预测响应变量。
这一篇章会有些长,
首先,我们将看一看如何拟合和解释回归模型,然后回顾一系列鉴别模型潜在问题的方法,并学习如何解决它们。
其次,我们将探究变量选择问题。
对于所有可用的预测变量,如何确定哪些变量包含在最终的模型中?
再次,我们将讨论一般性问题。
模型在现实世界中的表现到底如何?
最后,我们再看看相对重要性问题。
模型所有的预测变量中,哪一个最重要,哪一个第二重要,哪一个最无关紧要?
那么我们开始吧!
1 回归的多面性
回归有许多特殊变种:
在这一章中,我们的重点是普通最小二乘(OLS)回归法,包括简单线性回归、多项式回归和多元线性回归。
1.1 OLS回归的适用情境
OLS回归是通过预测变量的加权和来预测量化的因变量,其中权重是通过数据估计而得的参数。
以下问题都可以通过OLS方法进行处理:1、铺路表面的面积与表面盐度有什么关系(Montogomery,2007)?2、一个用户哪些方面的经历会导致他沉溺于大型多人在线角色扮演游戏(MMORPG;Hsu,Wen& Wu,2009)?3、教育环境中的哪些因素与最能影响学生成绩得分?4、血压、盐摄入量和年龄的关系是什么样的?对于男性和女性是相同的吗?5、运动场馆和职业运动对大都市的发展有何影响(Baade & Dye,1990)?6、哪些因素可以解释各州的啤酒价格差异(Culbertson & Bradford,1991)?
1.2 基础回顾
下面的几节将介绍如何用R函数拟合OLS回归模型、评价拟合优度、检验假设条件以及选择模型。
2 OLS回归
OLS回归拟合模型的形式:
其中,n 为观测的数目,k 为预测变量的数目。等式中相应部分的解释如下:
我们的目标是通过减少响应变量的真实值与预测值的差值来获得模型参数(截距项和斜率)。具体而言,即使得残差平方和最小。
为了能够恰当地解释OLS模型的系数,数据必须满足以下统计假设:
1、正态性 对于固定的自变量值,因变量值成正态分布。
2、独立性 Yi值之间相互独立。
3、线性 因变量与自变量之间为线性相关。
4、同方差性 因变量的方差不随自变量的水平不同而变化。
2.1 用lm( )拟合回归模型
在R中,拟合线性模型最基本的函数就是lm( ),格式为:
formula指要拟合的模型形式,data是一个数据框,包含了用于拟合模型的数据。
结果对象(本例中是myfit)存储在一个列表中,包含了所拟合模型的大量信息。
表达式(formula)形式如下:
~左边为响应变量,右边为各个预测变量,预测变量之间用+符号分隔。
下表中的符号可以不同方式修改这一表达式。除了lm( ),还列出了其他一些对做简单或多元回归分析有用的函数。
R表达式中常用的符号:
对拟合线性模型非常有用的其他函数:
当回归模型包含一个因变量和一个自变量时,我们称为简单线性回归。
当只有一个预测变量,但同时包含变量的幂(比如X、X^2、X^3)时,我们称之为多项式回归。
当有不止一个预测变量时,则称为多元线性回归。
2.2 简单线性回归
基础安装中的数据集women提供了15个年龄在30~39岁间女性的身高和体重信息,我们想通过身高来预测体重,获得一个等式可以帮助我们分辨出那些过重或过瘦的个体。
可以预测等式:
因为身高不可能为0,你没必要给截距项一个物理解释,它仅仅是一个常量调整项。
在Pr(>|t|)栏,可以看到回归系数(3.45)显著不为0(p<0.001),表明身高每增高1英寸,体重将预期增加3.45磅。
R平方项(0.991)表明模型可以解释体重99.1%的方差,它也是实际和预测值之间的相关系数(R2 = r2ŶY)。
残差标准误(1.53 lbs)则可认为是模型用身高预测体重的平均误差。
F统计量检验所有的预测变量预测响应变量是否都在某个几率水平之上。
图形表明我们可以用含一个弯曲的曲线来提高预测的精度。这就需要多项式回归。
2.3 多项式回归
可以通过添加一个二次项(即X^2)来提高回归的预测精度:
I(height^2)表示向预测等式添加一个身高的平方项。I函数将括号的内容看做R的一个常规表达式。
多项式拟合回归:
新的预测等式为:
在p<0.001水平下,回归系数都非常显著。模型的方差解释率已经增加到了99.9%。
二次项的显著性(t = 13.89,p<0.001)表明包含二次项提高了模型的拟合度。
一般来说,n次多项式生成一个n-1个弯曲的曲线。拟合三次多项式,可用:
另外,car包中的scatterplot()函数,它可以很容易、方便地绘制二元关系图:
身高与体重的散点图。直线为线性拟合,虚线为曲线平滑拟合,边界为箱线图:
spread=FALSE选项删除了残差正负均方根在平滑曲线上的展开和非对称信息。
lty.smooth=2选项设置loess拟合曲线为虚线。
pch=19选项设置点为实心圆(默认为空心圆)。
2.4 多元线性回归
从一个例子开始吧:
以基础包中的state.x77数据集为例,我们想探究一个州的犯罪率和其他因素的关系,包括人口、文盲率、平均收入和结霜天数(温度在冰点以下的平均天数)。因为lm( )函数需要一个数据框(state.x77数据集是矩阵),为了以后处理方便,需要做如下转化:
这行代码创建了一个名为states的数据框,包含了我们感兴趣的变量。
本章的余下部分,我们都将使用这个新的数据框。
多元回归分析中,第一步最好检查一下变量间的相关性。
cor( )函数提供了二变量之间的相关系数,car包中scatterplotMatrix( )函数则会生成散点图矩阵:
检测二变量关系:
scatterplotMatrix( )函数默认在非对角线区域绘制变量间的散点图,并添加平滑(loess)和线性拟合曲线。
对角线区域绘制每个变量的密度图和轴须图。
从图中可以看到,谋杀率是双峰的曲线,每个预测变量都一定程度上出现了偏斜。
谋杀率随着人口和文盲率的增加而增加,随着收入水平和结霜天数增加而下降。
同时,越冷的州府文盲率越低,收入水平越高。
现在使用lm( )函数拟合多元线性回归模型。
多元线性回归:
当预测变量不止一个时,回归系数的含义为,一个预测变量增加一个单位,其他预测变量保持不变时,因变量将要增加的数量。
例如本例中,文盲率的回归系数为4.14,表示控制人口、收入和温度不变时,文盲率上升1%,谋杀率将会上升4.14%,它的系数在p<0.001的水平下显著不为0。
相反,Frost的系数没有显著不为0(p=0.954),表明当控制其他变量不变时,Frost与Murder不呈线性相关。
总体来看,所有的预测变量解释了各州谋杀率57%的方差。
2.5 有交互项的多元线性回归
以mtcars数据框中的汽车数据为例,若对汽车重量和马力感兴趣,可以把它们作为预测变量,并包含交互项来拟合回归模型:
有显著交互项的多元线性回归:
可以看到Pr(>|t|)栏中,马力与车重的交互项是显著的,这意味着什么呢?若两个预测变量的交互项显著,说明响应变量与其中一个预测变量的关系依赖于另外一个预测变量的水平。
因此此例说明,每加仑汽油行驶英里数与汽车马力的关系依车重不同而不同。
预测mpg的模型为:
mpg = 49.81 - 0.12×hp - 8.22×wt + 0.03×hp×wt
通过effects包中的effect( )函数,可以用图形展示交互项的结果:
term即模型要画的项,mod为通过lm()拟合的模型,xlevels是一个列表,指定变量要设定的常量值,multiline=TRUE选项表示添加相应直线。
一直报错,是哪里出了问题呢?
在stackoverflow论坛搜了一下,出现错误是因为您没有命名xlevels参数,所以添加一行:
hp*wt的交互项图形。图形展示了wt三种值时mpg和hp的关系。
从图中可以很清晰地看出,随着车重的增加,马力与每加仑汽油行驶英里数的关系减弱了。
当wt = 4.2时,直线几乎是水平的,表明随着hp的增加,mpg不会发生改变。
3 回归诊断
在上一节中,我们使用lm( )函数来拟合OLS回归模型,通过summary( )函数获取模型参数和相关统计量。
虽然summary( )函数对模型有了整体的描述,但是它没有提供关于模型在多大程度上满足统计假设的任何信息。
为什么这很重要?因为数据的无规律性或者错误设定了预测变量与响应变量的关系,都将致使模型产生巨大的偏差。
现在让我们通过confint( )函数的输出来看看states多元回归的问题:
结果表明,文盲率改变1%,谋杀率就在95%的置信区间 [2.38,5.90] 中变化。
另外,因为Frost的置信区间包含0,可以得出结论说,当其他变量不变时,温度的改变与谋杀率无关。
3.1 标准方法
最常见的方法就是对lm( )函数返回的对象使用plot( )函数,可以生成评价模型拟合情况的四幅图形:
为理解这些图形,我们来回顾一下OLS回归的统计假设:
1、正态性 当预测变量值固定时,因变量成正态分布,则残差值也应该是一个均值为0的正态分布。正态Q-Q图(Normal Q-Q,右上)是在正态分布对应的值下,标准化残差的概率图。若满足正态假设,那么图上的点应该落在呈45度角的直线上;若不是如此,那么就违反了正态性的假设。
2、独立性 你无法从这些图中分辨出因变量值是否相互独立,只能从收集的数据中来验证。上面的例子中,没有任何先验的理由去相信一位女性的体重会影响另外一位女性的体重。假若你发现数据是从一个家庭抽样得来的,那么可能必须要调整模型独立性的假设。
3、线性 若因变量与自变量线性相关,那么残差值与预测(拟合)值就没有任何系统关联。换句话说,除了白噪声,模型应该包含数据中所有的系统方差。在“残差图与拟合图”(Residuals vs Fitted,左上)中可以清楚的看到一个曲线关系,这暗示着你可能需要对回归模型加上一个二次项。
4、同方差性 若满足不变方差假设,那么在位置尺度图(Scale-Location Graph,左下)中,水平线周围的点应该随机分布。该图似乎满足此假设。最后一幅“残差与杠杆图”(Residuals vs Leverage,右下)提供了你可能关注的单个观测点的信息。从图形可以鉴别出离群点、高杠杆值点和强影响点。
下面来详细介绍:
1、一个观测点是离群点,表明拟合回归模型对其预测效果不佳(产生了巨大的或正或负的残差)。
2、一个观测点有很高的杠杆值,表明它是一个异常的预测变量值的组合。也就是说,在预测变量空间中,它是一个离群点。因变量值不参与计算一个观测点的杠杆值。
3、一个观测点是强影响点(influential observation),表明它对模型参数的估计产生的影响过大,非常不成比例。强影响点可以通过Cook距离即Cook’s D统计量来鉴别。
让我们再看看二次拟合的诊断图:
这第二组图表明多项式回归拟合效果比较理想,基本符合了线性假设、残差正态性(除了观测点13)和同方差性(残差方差不变)。
观测点15看起来像是强影响点(根据是它有较大的Cook距离值),删除它将会影响参数的估计。
事实上,删除观测点13和15,模型会拟合得会更好。使用:
即可拟合剔除点后的模型。但是对于删除数据,要非常小心,因为本应是模型去匹配数据,而不是反过来。
最后,我们再应用这个基本的方法,来看看states的多元回归问题:
正如从图上看到的,除去Nevada一个离群点,模型假设得到了很好的满足。
3.2 改进的方法
car包提供了大量函数,大大增强了拟合和评价回归模型的能力:
1.正态性
qqPlot()函数提供了更为精确的正态假设检验方法,它画出了在n-p-1个自由度的t分布下的学生化残差(studentized residual,也称学生化删除残差或折叠化残差)图形,其中n是样本大小,p是回归参数的数目(包括截距项)。
id.method = "identify"选项能够交互式绘图——待图形绘制后,用鼠标单击图形内的点,将会标注函数中label选项的设定值。敲击Esc键,从图形下拉菜单中选择Stop,或者在图形上右击,都将关闭这种交互模式。此处,我已经鉴定出了Nevada异常。当simulate=TRUE时,95%的置信区间将会用参数自助法
除了Nevada,所有的点都离直线很近,并都落在置信区间内,这表明正态性假设符合得很好。但是你也必须关注下Nevada,它有一个很大的正残差值(真实值—预测值),表明模型低估了该州的谋杀率。特别地:
可以看到,Nevada的谋杀率是11.5%,而模型预测的谋杀率为3.9%。
可视化误差还有其他方法。residplot( )函数生成学生化残差柱状图(即直方图),并添加正态曲线、核密度曲线和轴须图。
绘制学生化残差图的函数:
除了一个很明显的离群点,误差很好地服从了正态分布。
2.误差的独立性
例如,时间序列数据通常呈现自相关性——相隔时间越近的观测相关性大于相隔越远的观测。
car包提供了一个可做Durbin-Watson检验的函数,能够检测误差的序列相关性。
在多元回归中,使用下面的代码可以做Durbin-Watson检验:
p值不显著(p=0.282)说明无自相关性,误差项之间独立。
滞后项(lag=1)表明数据集中每个数据都是与其后一个数据进行比较的。
该检验适用于时间独立的数据,对于非聚集型的数据并不适用。
注意,durbinWatsonTest( )函数使用自助法来导出p值,如果添加了选项simulate=FALSE,则每次运行测试时获得的结果都将略有不同。
3.线性
通过成分残差图(component plus residual plot)也称偏残差图(partial residual plot),可以看看因变量与自变量之间是否呈非线性关系,也可以看看是否有不同于已设定线性模型的系统偏差。图形可用car包中的crPlots( )函数绘制。
结果如图所示。
若图形存在非线性,则说明可能对预测变量的函数形式建模不够充分,那么就需要添加一些曲线成分,比如多项式项,或对一个或多个变量进行变换(如用log(X)代替X),或用其他回归变体形式而不是线性回归。
谋杀率对州各因素回归的成分残差图:
4.同方差性
car包提供了两个有用的函数,可以判断误差方差是否恒定。
ncvTest( )函数生成一个计分检验,零假设为误差方差不变,备择假设为误差方差随着拟合值水平的变化而变化。
若检验显著,则说明存在异方差性(误差方差不恒定)。
spreadLevelPlot( )函数创建一个添加了最佳拟合曲线的散点图,展示标准化残差绝对值与拟合值的关系。
检验同方差性:
可以看到,计分检验不显著(p=0.19),说明满足方差不变假设。
还可以通过分布水平图看到这一点,其中的点在水平的最佳拟合曲线周围呈水平随机分布。
若违反了该假设,将会看到一个非水平的曲线。
代码结果建议幂次变换(suggested power transformation)的含义是,经过p次幂(Y^p)变换,非恒定的误差方差将会平稳。
例如,若图形显示出了非水平趋势,建议幂次转换为0.5,在回归等式中用√Y代替Y,可能会使模型满足同方差性。若建议幂次为0,则使用对数变换。
对于当前例子,异方差性很不明显,因此建议幂次接近1(不需要进行变换)。
3.3 线性模型假设的综合验证
gvlma( )函数能对线性模型假设进行综合验证,同时还能做偏斜度、峰度和异方差性的评价。
线性模型假设的综合检验:
从输出项(Global Stat中的文字栏)我们可以看到数据满足OLS回归模型所有的统计假设(p=0.597)。
3.4 多重共线性
多重共线性可用统计量VIF(Variance Inflation Factor,方差膨胀因子)进行检测。
VIF的平方根表示变量回归参数的置信区间能膨胀为与模型无关的预测变量的程度(因此而得名)。
car包中的vif( )函数提供VIF值。数值大于2表示存在多重共线性问题。
检测多重共线性:结果表明没有多重共线性问题。
4 异常观测值
一个全面的回归分析要覆盖对异常值的分析,包括离群点、高杠杆值点和强影响点。
4.1 离群点
离群点是指那些模型预测效果不佳的观测点。
判别方法:Q-Q图,落在置信区间带外的点即可被认为是离群点。或者:标准化残差值大于2或者小于-2的点可能是离群点。
car包也提供了一种离群点的统计检验方法。outlierTest( )函数可以求得最大标准化残差绝对值Bonferroni调整后的p值:
此处Nevada被判定为离群点(p=0.048)。
当结果不显著,则说明数据集中没有离群点;若显著,则必须删除该离群点,然后再检验是否还有其他离群点存在。
4.2 高杠杆值点
高杠杆值观测点,即是与其他预测变量有关的离群点。
换句话说,它们是由许多异常的预测变量值组合起来的,与响应变量值没有关系。
高杠杆值的观测点可通过帽子统计量(hat statistic)判断。
若观测点的帽子值大于帽子均值的2或3倍,即可以认定为高杠杆值点。
水平线标注的即帽子均值2倍和3倍的位置。定位函数(locator function)能以交互模式绘图:单击感兴趣的点,然后进行标注,停止交互时,用户可按Esc键退出。
此图中,可以看到Alaska和California非常异常:Alaska收入比其他州高得多,而人口和温度却很低;California人口图灵比其他州府多得多,但收入和温度也很高。
高杠杆值点可能会是强影响点,也可能不是,这要看它们是否是离群点。
4.3 强影响点
强影响点,即对模型参数估计值影响有些比例失衡的点。
有两种方法可以检测强影响点:Cook距离,或称D统计量,以及变量添加图(added variableplot)。
Cook’s D值大于4/(n-k-1),则表明它是强影响点,其中n 为样本量大小,k 是预测变量数目。
绘制Cook’s D图形:
通过图形可以判断Alaska、Hawaii和Nevada是强影响点。若删除这些点,将会导致回归模型截距项和斜率发生显著变化。
Cook’s D图有助于鉴别强影响点,但是并不提供关于这些点如何影响模型的信息。变量添加图弥补了这个缺陷。
car包中的avPlots( )函数可提供变量添加图:
鉴别出Alaska为强影响点。图中的直线表示相应预测变量的实际回归系数。
左下角的图(“Murder|others” VS“Income|others”),若删除点Alaska,直线将往负向移动。
删除Alaska,Income的回归系数将会从0.000 06变为-0.000 85。
当然,利用car包中的influencePlot( )函数,还可以将离群点、杠杆值和强影响点的信息整合到一幅图形中:
圆圈大小与影响成比例,圆圈很大的点可能是对模型参数的估计造成的不成比例影响的强影响点。
反映出Nevada和Rhode Island是离群点,New York、California、Hawaii和Washington有高杠杆值,Nevada、Alaska和Hawaii为强影响点。
5 改进措施
措施:删除观测点、变量变换、添加或删除变量、使用其他回归方法。
5.1 删除观测点
删除离群点通常可以提高数据集对于正态假设的拟合度,而强影响点会干扰结果,通常也会被删除。
删除最大的离群点或者强影响点后,模型需要重新拟合。
若离群点或强影响点仍然存在,重复以上过程直至获得比较满意的拟合。
5.2 变量转换
当模型不符合正态性、线性或者同方差性假设时使用。
常见的变换:
若Y是比例数,通常使用logit变换[ln (Y/1-Y )]。
当模型违反了正态假设时,通常可以对响应变量尝试某种变换。
使用car包中的powerTransform( )函数进行Box-Cox正态变换:
结果表明,你可以用Murder^0.6来正态化变量Murder。
但在本例中,λ= 1的假设也无法拒绝(p=0.145),因此没有强有力的证据表明本例需要变量变换。
car包中的boxTidwell( )函数通过获得预测变量幂数的最大似然估计来改善线性关系:
使用变换Population^0.87和Illiteracy^1.36能够大大改善线性关系。
但是对Population(p=0.75)和Illiteracy(p=0.54)的计分检验又表明变量并不需要变换。
谨慎对待变量变换,比如,怎样解释自杀意念的频率与抑郁程度的立方根间的关系。
5.3 增删变量
删除某个存在多重共线性的变量(某个变量 根号(vif) > 2)。
5.4 尝试其他方法
如果存在离群点和/或强影响点,可以使用稳健回归模型替代OLS回归。
如果违背了正态性假设,可以使用非参数回归模型。
如果存在显著的非线性,能尝试非线性回归模型。
如果违背了误差独立性假设,还能用那些专门研究误差结构的模型,比如时间序列模型或者多层次回归模型。
最后,还能转向广泛应用的广义线性模型,它能适用于许多OLS回归假设不成立的情况。
6 选择“最佳”的回归模型
最终回归模型的选择总是会涉及预测精度(模型尽可能地拟合数据)与模型简洁度(一个简单且能复制的模型)的调和问题。
6.1 模型比较
用基础安装中的anova( )函数可以比较两个嵌套模型的拟合优度。
所谓嵌套模型,即它的一些项完全包含在另一个模型中。
在states的多元回归模型中,我们发现Income和Frost的回归系数不显著,此时可以检验不含这两个变量的模型与包含这两项的模型预测效果是否一样好:
模型1嵌套在模型2中。
anova( )函数同时还对是否应该添加Income和Frost到线性模型中进行了检验。
由于检验不显著(p=0.994),因此我们可以得出结论:不需要将这两个变量添加到线性模型中,可以将它们从模型中删除。
AIC(Akaike Information Criterion,赤池信息准则)也可以用来比较模型,它考虑了模型的统计拟合度以及用来拟合的参数数目。
AIC值越小的模型要优先选择,它说明模型用较少的参数获得了足够的拟合度:
此处AIC值表明没有Income和Frost的模型更佳。
6.2 变量选择
从大量候选变量中选择最终的预测变量有以下两种流行的方法:
1.逐步回归
逐步回归中,模型会一次添加或者删除一个变量,直到达到某个判停准则为止。
MASS包中的stepAIC()函数可以实现逐步回归模型(向前、向后和向前向后),依据的是精确AIC准则。
向后回归:
开始时模型包含4个(全部)预测变量,然后每一步中,AIC列提供了删除一个行中变量后模型的AIC值,中的AIC值表示没有变量被删除时模型的AIC。
第一步,Frost被删除,AIC从97.75降低到95.75;
第二步,Income被删除,AIC继续下降,成为93.76,
然后再删除变量将会增加AIC,因此终止选择过程。
逐步回归法其实存在争议,虽然它可能会找到一个好的模型,但是不能保证模型就是最佳模型,因为不是每一个可能的模型都被评价了。
为克服这个限制,便有了全子集回归法。
2.全子集回归
全子集回归,顾名思义,即所有可能的模型都会被检验。
全子集回归可用leaps包中的regsubsets()函数实现。
通过R平方、调整R平方或Mallows Cp统计量等准则来选择“最佳”模型。
我们对states数据进行了全子集回归。
结果可用leaps包中的plot( )函数绘制,或者用car包中的subsets()函数绘制:
第一行中(图底部开始),可以看到含intercept(截距项)和Income的模型调整R平方为0.33,含intercept和Population的模型调整R平方为0.1。
跳至第12行,会看到含intercept、Population、Illiteracy和Income的模型调整R平方值为0.54,而仅含intercept、Population和Illiteracy的模型调整R平方为0.55。
此处,会发现含预测变量越少的模型调整R平方越大(对于非调整的R平方,这是不可能的)。
图形表明,双预测变量模型(Population和Illiteracy)是最佳模型。
会看到对于不同子集大小,基于Mallows Cp统计量的四个最佳模型。
越好的模型离截距项和斜率均为1的直线越近。
图形表明,可以选择这几个模型,其余可能的模型都可以不予考虑:含Population和Illiteracy的双变量模型;含Population、Illiteracy和Frost的三变量模型,或Population、Illiteracy和Income的三变量模型(它们在图形上重叠了,不易分辨);含opulation、Illiteracy、Income和Frost的四变量模型。
7 深层次分析
7.1 交叉验证
所谓交叉验证,即将一定比例的数据挑选出来作为训练样本,另外的样本作保留样本,先在训练样本上获取回归方程,然后在保留样本上做预测。
由于保留样本不涉及模型参数的选择,该样本可获得比新数据更为精确的估计。
bootstrap 包中的crossval( ) 函数可以实现k 重交叉验证:
中定义了shrinkage( )函数,创建了一个包含预测变量和预测值的矩阵,可获得初始R平方以及交叉验证的R平方。
对states数据所有预测变量进行回归,然后再用shrinkage()函数做10重交叉验证:
可以看到,基于初始样本的R平方(0.567)过于乐观了。对新数据更好的方差解释率估计是交叉验证后的R平方(0.428)。
通过选择有更好泛化能力的模型,还可以用交叉验证来挑选变量。例如,含两个预测变量(Population和Illiteracy)的模型,比全变量模型R平方减少得更少(0.03 VS 0.12):
这使得双预测变量模型显得更有吸引力。
7.2 相对重要性
在进行回归分析前,可用scale( )函数将数据标准化为均值为0、标准差为1的数据集,这样用R回归即可获得标准化的回归系数。
注意,scale( )函数返回的是一个矩阵,而lm()函数要求一个数据框,需要用一个中间步骤来转换一下。
代码和多元回归的结果如下:
当其他因素不变时,文盲率一个标准差的变化将增加0.68个标准差的谋杀率。
根据标准化的回归系数,我们可认为Illiteracy是最重要的预测变量,而Frost是最不重要。
相对权重(relative weight)是一种比较有前景的新方法,它是对所有可能子模型添加一个预测变量引起的R平方平均增加量的一个近似值:
relweights( )函数,计算预测变量的相对权重:
relweights( )函数的应用:
可以看到各个预测变量对模型方差的解释程度(R平方=0.567),Illiteracy解释了59%的R平方,Frost解释了20.79%。
根据相对权重法,Illiteracy有最大的相对重要性,余下依次是Frost、Population和Income。
8 小结
在统计中,回归分析是许多方法的一个总称。它是一个交互性很强的方法,包括拟合模型、检验统计假设、修正数据和模型,以及为达到最终结果的再拟合等过程。
我们先讨论了如何拟合OLS回归模型、如何使用回归诊断评估数据是否符合统计假设,以及一些修正数据使其符合假设的方法。
然后,我们介绍了一些从众多可能模型中选出最终回归模型的途径,学习了如何评价模型在新样本上的表现。
最后,我们又解决了变量重要性这个恼人的问题:鉴别哪个变量对预测最为重要。
我们将加快脚步,进入中级绘图的学习。
那么我们,下篇再见!