《Discovering Statistics Using R》笔记13-多重线性回归基础

笔记说明

读《Discovering Statistics Using R》第七章 Regression中的7.6节做的笔记。使用R进行实操部分来自7.8.2-7.8.4节。

多重线性回归

多重线性回归(multiple regression)是简单线性回归在多个自变量下的延申。
每多一个自变量就对应多一个回归系数:
Y_i=(b_0 +b_1X_{1i} +b_2X_{2i}+...+b_nX_{ni})+ε_i
模型拟合更为复杂,但是基本原则与简单线性回归相同:寻找能够最大程度上与因变量相关的自变量的线性组合。
多重线性回归中的决定系数R^2是模型的预测y值和实际观测y值之间pearson相关系数r的平方。多重线性回归中对决定系数的解读与简单线性回归一样:it is the amount of variation in the outcome variable that is accounted for by the model.

模型拟合优度指标

决定系数R^2作为评价模型拟合优度指标的问题是:模型增加自变量,R^2就会增加。Akaike information criterion(AIC)是一个对模型自变量数进行“惩罚”的拟合优度指标,有点像矫正的R^2,AIC的定义为:
AIC=n×ln(\frac{SSE }{n})+2k
其中n为样本量,ln为自然对数函数,SSE为模型的误差平方和,k为自变量个数。公式中的2k起到惩罚自变量个数的作用。
对于AIC的使用有几点说明:

  1. AIC越大表明拟合越差,AIC越小表明拟合越好,但是多大算大并没有标准。
  2. 只有在同一批数据上对同模型比较AIC才有意义。
    在R中还可以计算另一个类似的指标:BIC(bayesian information criterion)但BIC相关内容不在本书范围。(可参考:AIC和BIC准则

自变量选择

理想情况下,自变量选择应该基于既往研究。若考虑在已有模型基础上增加新的自变量,新自变量的选择应该基于这些变量的理论重要性。反对随机选择上百个变量直接扔到模型中分析。
另外,自变量进入模型的方式也有很多。当自变量相互间完全不相关时,自变量进入的顺序对参数估计影响很小,但实际中自变量间常常相关,因此自变量选择的方法很重要。

  1. 分层级(Hierarchical)
    分层回归(Hierarchical regression)中自变量选择基于既往研究。研究者决定自变量进入模型的顺序。由既往研究得到的已知自变量根据其预测因变量的重要性先进入模型。在已知自变量进入后,研究者再添加新自变量。新自变量可以一次全部纳入,也可以逐个纳入或分层纳入(即推测最重要的先纳入)。
  2. 强制纳入(Forced Entry)
    将所有自变量全部同时纳入模型。和分层级纳入一样,这种方法需要有很好的专业理论依据。和分层级纳入不同的是研究者不决定进入的顺序。有学者提出(Studenmund&Cassidy,1987)对于理论检验来说这是唯一合适的变量选择方法,因为逐步纳入自变量的技术会收到数据随机变异的影响,当模型重复验证时很少能得到可复现的结果。
  3. 逐步法(Stepwise methods)
    统计学家一般不赞成逐步回归,R也不善于进行自动逐步回归。如果你用R进行逐步回归的结果和用其他软件得到的结果不同,原因可能是其他程序是在多年前写成的,那时编程序的人员还不知道有更好的方法。逐步回归中自变量进入模型的顺序完全基于数学的准则。
    在R中进行逐步回归需要指定方向。前进法的初始模型仅有常数项。程序接下来挑选一个预测因变量效果最好的自变量进入模型(根据与因变量的相关系数最高)。如果这个自变量提高了模型预测因变量的能力则保留其在模型中,然后再挑选第二个自变量。挑选第二个自变量的标准是与因变量的半偏相关系数(semi-partial correlation)最高。
    具体举例:假设第一个自变量能够“解释”因变量40%的变异,也就是说还有60%的变异未能被解释。程序会选择能解释剩余60%变异比例最大的自变量。半偏相关系数衡量了因变量中“新的变异”中能被带选自变量解释的部分(可参考《Discovering Statistics Using R》笔记10-偏相关分析)。将选择的自变量加入模型后如果模型预测能力提高则会保留该自变量,然后在剩余变量中重复挑选过程。
    R做前进法逐步回归时,基于AIC来进行终止判断。如果纳入新变量后模型AIC降低则保留该自变量,如果剩余变量中没有能使模型AIC再降低的变量则逐步法终止。
    后退法的初始模型中纳入所有潜在自变量,然后逐一查看剔除某自变量是否能使模型AIC降低,直到剔除模型中任何自变量都无法使AIC再降低。
    逐步法中最后一种方向在R中称为“both”,兼具两种方向。同前进发法一样开始,每次有新自变量纳入模型后都会对模型现有的自变量进行一次剔除测试。
    后退法优于前进法,因为可能存在抑制效应(suppressor effects):某自变量只在其他某个特定自变量保持不变的情况下才有作用。当有抑制效应存在时,前进法比后退法更可能会舍弃抑制效应涉及的有作用的自变量,有更大的风险犯第二类错误。
  4. 全子集法(all-subsets methods)
    逐步法的问题:基于模型中已有的变量来评价某个自变量对因变量的拟合情况。有人用穿衣服类比逐步法的问题:在大冷天,逐步法可能先选择穿上裤子,但是穿上裤子以后再想穿内裤就很难了。
    全子集回归是更好的方法,它尝试所有可能的自变量组合的模型,通过统计量Mallows' C_p(不深入探究它了)评估拟合效果选择最优模型。
    全子集法的问题:随着备选自变量数量增加,可能的自变量组合数呈指数增加。当自变量较多时可能需要很长时间完成所有模型的计算。但如今电脑计算能力有大幅提高,全子集法可行性不再是问题。

自变量选择方法的选择

广义上的逐步法(stepwise methods)包括上面介绍的逐步法和全子集法,他们都基于数学标准选择自变量,有学者认为使用这些方法时决策权不在研究者手中。计算结果会受到样本随机性影响,可能和理论上自变量的重要性不符。另外还有过拟合和欠拟合的风险。基于上述原因,如果不是在模型建立探索阶段,最好避免使用逐步法。如果使用,建议将数据切分使用交叉验证技术(cross-validate),详见7.7.2.2节。
在7.8.1节,推荐的建模策略:选择有理论依据的自变量,先建立一个把所有可能有预测能力的自变量都纳入的模型。根据该模型输出评估各自变量对模型的贡献程度。知道各自变量重要性后再重新建模,只纳入重要的自变量。

使用R建立多重线性模型

使用的示例数据为:Album Sales 2.dat
《Discovering Statistics Using R》笔记12-简单线性回归 中,用广告投入费用(adverts)来预测唱片销量(sales)建立简单线性回归。在多重线性回归的演示中在次此基础上增加了2个自变量:
airplay:唱片发布前1周内,唱片中歌曲在广播中播放的次数。
attract:乐队的吸引程度。(打分0-10,10分表示最高)

library(rio)
album2 <- import("data/Album Sales 2.dat") 
str(album2)
## 'data.frame':    200 obs. of  4 variables:
## $ adverts: num  10.3 985.7 1445.6 1188.2 574.5 ...
## $ sales  : int  330 120 360 270 220 170 70 210 200 300 ...
## $ airplay: int  43 28 35 33 44 19 20 22 21 40 ...
## $ attract: int  10 7 7 7 5 5 1 9 7 7 ...

先建立一个和《Discovering Statistics Using R》笔记12-简单线性回归 中一样的简单线性回归模型:

albumSales.2 <- lm(sales ~ adverts, data = album2)

接下来建立一个多重线性回归模型:

albumSales.3 <- lm(sales ~ adverts + airplay + attract, data = album2)

因为albmSales.3模型是在albumSales.2模型的基础上加了2个自变量,书中介绍在这种情况下还可以使用update()函数通过在albumSales.2模型上新加自变量的方式建立albmSales.3。

albumSales.3 <- update(albumSales.2, .~. + airplay + attract)

函数的第一个参数是需要更新的原有模型,第二个参数为更新后的模型表达式,这里.~.表示保留原模型的自变量和因变量。

模型结果解读

建立模型后可以使用summary()查看模型结果

summary(albumSales.3)
## Call:
## lm(formula = sales ~ adverts + airplay + attract, data = album2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -121.324  -28.336   -0.451   28.967  144.132 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -26.612958  17.350001  -1.534    0.127    
## adverts       0.084885   0.006923  12.261  < 2e-16 ***
## airplay       3.367425   0.277771  12.123  < 2e-16 ***
## attract      11.086335   2.437849   4.548 9.49e-06 ***
## ---
## Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
## 
## Residual standard error: 47.09 on 196 degrees of freedom
## Multiple R-squared:  0.6647, Adjusted R-squared:  0.6595 
## F-statistic: 129.5 on 3 and 196 DF,  p-value: < 2.2e-16

输出的底部有R^2 它是模型拟合优度的一个测量,表示因变量的平方和中被模型“解释”的比例。《Discovering Statistics Using R》笔记12-简单线性回归 中使用同样数据建立的简单线性模型的R^2为0.335,新纳入2个自变量后R^2增加为0.665,因此可以说乐队的吸引程度和广播次数能够“解释”约33%(0.665-0.335)的因变量变异。
矫正R^2的解读待做完7.7.2.2节交叉验证后再做。

输出还包括模型的参数估计:各自变量的回归系数、回归系数的标准误和t统计量、P值。
从回归系数的正负可以判断对应自变量和因变量间的关系是正向/负向。回归系数还表示在其他自变量不变的情况下,对应自变量每改变1个单位,因变量改变的值。

标准化偏回归系数

使用QuantPsyc包的lm.beta()可以计算线性回归模型的标准化偏回归系数。

library(QuantPsyc)
lm.beta(albumSales.3)
##   adverts   airplay   attract 
## 0.5108462 0.5119881 0.1916834 

标准化偏回归系数表示在其他自变量不变的情况下,某一自变量每改变1个标准差,因变量改变多少个标准差。标准化偏回归系数均以对应自变量的标准差为单位,不同变量间的标准化偏回归系数是可比的。因此可以来衡量自变量的重要程度。

回归系数的置信区间

在summary的输出中有点估计值、有标准误、有自由度,可以用confint()计算回归系数的置信区间。

confint(albumSales.3)
##                    2.5 %      97.5 %
## (Intercept) -60.82960967  7.60369295
## adverts       0.07123166  0.09853799
## airplay       2.81962186  3.91522848
## attract       6.27855218 15.89411823
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,290评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,399评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,021评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,034评论 0 207
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,412评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,651评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,902评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,605评论 0 199
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,339评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,586评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,076评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,400评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,060评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,083评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,851评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,685评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,595评论 2 270

推荐阅读更多精彩内容