多元回归中预测变量的重要性:部分与标准化系数


21

我想知道线性模型中部分与系数之间的确切关系是什么,我是否应该仅使用一个或两个来说明因素的重要性和影响。R2

据我所知,summary我得到了系数的估计值,并且得到anova了每个因子的平方和-一个因子的平方和除以平方和加残差的和的比例为(以下代码位于中)。R2R

library(car)
mod<-lm(education~income+young+urban,data=Anscombe)
    summary(mod)

Call:
lm(formula = education ~ income + young + urban, data = Anscombe)

Residuals:
    Min      1Q  Median      3Q     Max 
-60.240 -15.738  -1.156  15.883  51.380 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) -2.868e+02  6.492e+01  -4.418 5.82e-05 ***
income       8.065e-02  9.299e-03   8.674 2.56e-11 ***
young        8.173e-01  1.598e-01   5.115 5.69e-06 ***
urban       -1.058e-01  3.428e-02  -3.086  0.00339 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Residual standard error: 26.69 on 47 degrees of freedom
Multiple R-squared:  0.6896,    Adjusted R-squared:  0.6698 
F-statistic: 34.81 on 3 and 47 DF,  p-value: 5.337e-12

anova(mod)
Analysis of Variance Table

Response: education
          Df Sum Sq Mean Sq F value    Pr(>F)    
income     1  48087   48087 67.4869 1.219e-10 ***
young      1  19537   19537 27.4192 3.767e-06 ***
urban      1   6787    6787  9.5255  0.003393 ** 
Residuals 47  33489     713                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

“年轻”(0.8)和“城市”(-0.1,约前者的1/8,忽略“-”)的系数大小与解释的方差不匹配(“年轻”〜19500和“城市”〜 6790,即大约1/3)。

因此,我认为我需要缩放数据,因为我假设如果一个因子的范围比另一个因子的范围大得多,那么它们的系数将很难比较:

Anscombe.sc<-data.frame(scale(Anscombe))
mod<-lm(education~income+young+urban,data=Anscombe.sc)
summary(mod)

Call:
lm(formula = education ~ income + young + urban, data = Anscombe.sc)

Residuals:
     Min       1Q   Median       3Q      Max 
-1.29675 -0.33879 -0.02489  0.34191  1.10602 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  2.084e-16  8.046e-02   0.000  1.00000    
income       9.723e-01  1.121e-01   8.674 2.56e-11 ***
young        4.216e-01  8.242e-02   5.115 5.69e-06 ***
urban       -3.447e-01  1.117e-01  -3.086  0.00339 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Residual standard error: 0.5746 on 47 degrees of freedom
Multiple R-squared:  0.6896,    Adjusted R-squared:  0.6698 
F-statistic: 34.81 on 3 and 47 DF,  p-value: 5.337e-12

anova(mod)
Analysis of Variance Table

Response: education
          Df  Sum Sq Mean Sq F value    Pr(>F)    
income     1 22.2830 22.2830 67.4869 1.219e-10 ***
young      1  9.0533  9.0533 27.4192 3.767e-06 ***
urban      1  3.1451  3.1451  9.5255  0.003393 ** 
Residuals 47 15.5186  0.3302                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1    

但这并没有真正的区别,部分和系数的大小(现在是标准化系数)仍然不匹配:R2

22.3/(22.3+9.1+3.1+15.5)
# income: partial R2 0.446, Coeff 0.97
9.1/(22.3+9.1+3.1+15.5)
# young:  partial R2 0.182, Coeff 0.42
3.1/(22.3+9.1+3.1+15.5)
# urban:  partial R2 0.062, Coeff -0.34

因此,可以说“年轻”解释的方差是“城市”的三倍,因为“年轻”的部分是“城市”的三倍吗?R2为什么“年轻”系数不是“城市”系数的三倍(忽略符号)?

我想这个问题的答案也会告诉我最初查询的答案:我应该使用部分还是系数来说明因素的相对重要性?(暂时忽略影响方向-标志-。)R2

编辑:

偏eta平方似乎是我所谓的偏另一个名称。etasq {heplots}是一个有用的函数,可以产生相似的结果:R2

etasq(mod)
          Partial eta^2
income        0.6154918
young         0.3576083
urban         0.1685162
Residuals            NA

您正在尝试做什么或确切显示?估计影响?意义?
IMA 2013年

是的,我熟悉t检验和F检验。我想展示估计的影响力,而afaik t检验和F检验不适合。
罗伯特

1
我的问题是:我应该使用部分R²还是系数来显示每个因素对结果有多大影响?我假设两者都指向同一方向。您说的不对,因为数据中存在多重共线性。好吧,所以当我要声明诸如因子“年轻”对结果的影响是因子“城市”的x倍/重要倍时,我是否看待部分R²或系数?
罗伯特

1
我不同意@IMA。偏R平方与偏相关直接相关,这是研究iv和dv之间经混杂因素调整的关系的一种好方法。
Michael M

1
我编辑了您的问题,使其再次出现在首页上。我会对一个好的答案很感兴趣;如果没有出现,我什至可以提供赏金。顺便说一下,将所有预测变量标准化之后的回归系数称为“标准化系数”。我把这个词放在您的问题中,以使其更清楚。
变形虫说恢复莫妮卡2015年

Answers:


10

简而言之,我不会在同一分析中同时使用部分和标准化系数,因为它们不是独立的。我认为使用标准化系数比较关系通常可能更直观,因为它们很容易与模型定义相关(即)。反过来,部分本质上是预测变量和因变量(dv)之间唯一共享方差的比例(因此对于第一个预测变量,它是局部相关性的平方)。此外,为了使误差很小,所有系数的部分 ÿ = β X - [R 2 - [R X 1 ÿ X 2x n R 2R2Y=βXR2rx1y.x2...xnR2 倾向于1,因此它们在确定预测变量的相对重要性方面没有用。


效果大小定义

  • 标准化系数 - 通过根据标准化变量估算模型而获得的系数(平均值= 0,标准偏差= 1)。 ββstdβ
  • 部分通过将预测变量添加到受约束的模型(没有预测变量的完整模型)来解释残差变化的比例。和...一样:R2

    • 预测变量和因变量之间的局部相关性的平方,控制模型中的所有其他预测变量。。Rpartial2=rxiy.Xxi2
    • 部分类型III的平方和从预测变量到占预测变量的平方和与错误的比例 SS 效果/SS 效应 + SS 错误η2SSeffect/(SSeffect+SSerror)
  • - [R 2ΔR2 -中的差的约束,并且完整的模型之间。等于:R2

    • 平方半相关系数 yXrxi(y.Xxi)2
    • SS 效果/ SS - [R 2η2类型III平方和的 -您在问题中计算为局部的值。SSeffect/SStotalR2

所有这些都密切相关,但是它们如何处理变量之间的相关结构却有所不同。为了更好地理解这种差异,让我们假设我们有3个标准化的(平均值= 0,sd = 1)变量,它们的相关性是。我们将作为因变量,并将和作为预测变量。我们将根据相关性来表达所有效应大小系数,以便我们可以清楚地看到每个结构如何处理相关性结构。首先,我们将列出使用OLS估算的回归模型中的系数。系数的公式: - [R X ÿ [R X Ž - [R ÿ ž X ý ž X = β ý ý + β Ž Ž β Ŷ = - [R X ý - - [R ý ž ř ž Xx,y,zrxy,rxz,ryzxyzx=βyY+βzZR2部分

βy=rxyryzrzx1ryz2βz=rxzryzryx1ryz2,
预测变量 的平方根等于:Rpartial2

Rxy.z2=rxyryzrzx(1rxz2)(1ryz2)Rxz.y2=rxzryzryx(1rxy2)(1ryz2)

所述由下式给出:ΔR2

Rxyz2Rxz2=ry(x.z)=rxyryzrzx(1ryz2)Rxzy2Rxy2=rz(x.y)=rxzryzryx(1ryz2)

它们之间的区别是分母,对于和,分母仅包含预测变量之间的相关性。请注意,在大多数情况下(对于弱相关的预测变量),这两个变量的大小非常相似,因此该决定不会对您的解释产生太大影响。另外,如果与因变量具有相似的相关强度并且相关性不太强的预测变量,则的比率将与的比率相似。βΔR2 β小号dRpartial2βstd

回到您的代码。anovaR中的函数默认情况下使用I型平方和,而如上所述的部分应基于III型平方和(如果没有交互作用,则相当于II型平方和计算)。存在于您的模型中)。区别在于所解释的SS在预测变量之间的划分方式。在类型I SS中,第一个预测变量分配了所有已解释的SS,第二个仅分配了“剩余的SS”,第三个仅分配了剩余的SS,因此在调用中输入变量的顺序会更改其各自的SS 。解释模型系数时,这可能不是您想要的。R2lm

如果在R中Anovacar包装中使用II型平方和,那么方差分析的值将等于系数的值平方(因为)。这表明确实这些数量是紧密联系在一起的,不应单独评估。要在示例中调用II型平方和,请替换为。如果您包含一个交互项,则您需要将其替换为III型平方和,以使系数和部分R检验保持相同(只需在调用之前记住将对比度更改为和)即可。部分FtF(1,n)=t2(n)anova(mod)Anova(mod, type = 2)options(contrasts = c("contr.sum","contr.poly"))Anova(mod,type=3)R2是变量SS除以变量SS加上残差SS。这将产生与您在etasq()输出中列出的值相同的值。现在,您的方差分析结果的检验和(部分)和回归系数相同。pR2


信用


您所说的“贝塔系数是根据III型平方和计算得出的”是什么意思?我认为回归系数的确定与SS类型的选择无关。总是,不是吗?β=(XX)Xy
变形虫说恢复莫妮卡2015年

1
没错,我的意思是类型III的系数SS和t检验给出的F检验和p值基本相同。
克里斯诺瓦克

2
@amoeba经过一些计算后,我编辑了答案以包括您的建议,澄清了两种效果大小之间的差异,并更好地解决了OP的答案。
克里斯诺瓦克

1
@amoeba我已经按照建议更新了我的回复。现在我考虑了一下,比较标准系数或比部分更有意义。比较部分,例如添加与其他预测变量不相关的预测变量,更改它们之间的部分的比率(相对重要性),几乎没有意义。ΔR2R2R2R2
克里斯诺瓦克

1
谢谢@Chris,您的答案有了很大的改进,到目前为止,它已经非常出色了(如果我是OP,我会接受的)。我不确定我是否理解您赞成胜过。添加与所有其他预测变量都不相关的预测变量,不应更改所有其他预测变量的SSeffect(?),但会减少SSerror。因此都将保持不变,但都将增加并且它们的比率可能会改变;这是你的意思吗?这是另一个论点:如果模型是完美的并且SSerror为零,那么对于所有预测变量,部分将等于!不是很ΔR2Rp2ΔR2Rp2R21
有益

8

正如在其他几个答案和评论中已经解释的那样,该问题至少基于三个混淆:

  1. 函数anova()使用顺序(也称为I型)平方和(SS)分解,具体取决于预测变量的顺序。对应于回归系数和检验的意义的分解为III型SS,可以从包装中使用函数获得。tAnova()car

  2. 即使您使用III型SS分解,每个预测变量的部分也将不等于平方标准系数。对于两个不同的预测变量,这些值的比率也将不同。这两个值都是影响大小(或重要性)的度量,但是它们是不同的,非等效的度量。在大多数情况下,他们可能在质量上达成一致,但并非必须如此。R2βstd

  3. 您所说的偏R平方不是偏R平方。部分定义为。相比之下,可以称为“ eta平方”(借用ANOVA的术语),或平方半相关,或半(在两个公式都以III类方式理解)。这个术语不是很标准。这是重要性的另一种可能的度量。SS 效果/SS 效果 + SS 错误SS 效果/ SS 合计R 2 SS 效果R2SSeffect/(SSeffect+SSerror)SSeffect/SStotalR2SSeffect

在澄清了这些混淆之后,仍然存在关于最有效的预测因子效应大小或重要性度量的问题。


在R中,有一个程序包relaimpo提供了几个相对重要的度量。

library(car)
library(relaimpo)
mod <- lm(education~income+young+urban, data=Anscombe)
metrics <- calc.relimp(mod, type = c("lmg", "first", "last", "betasq", "pratt", "genizi", "car"))

使用与Anscombe您的问题相同的数据集,得出以下指标:

Relative importance metrics: 

              lmg      last      first    betasq       pratt     genizi        car
income 0.47702843 0.4968187 0.44565951 0.9453764  0.64908857 0.47690056 0.55375085
young  0.14069003 0.1727782 0.09702319 0.1777135  0.13131006 0.13751552 0.13572338
urban  0.07191039 0.0629027 0.06933945 0.1188235 -0.09076978 0.07521276 0.00015460

其中一些指标已经讨论过:

  • betasq是标准化的平方系数,与使用获得的值相同lm()
  • first是每个预测变量和响应之间的平方相关。这是等于当是I型SS当该预测器是先在模型。“收入”(0.446)的值与基于输出的计算相匹配。其他值不匹配。SS 效果SSeffect/SStotalSSeffectanova()
  • last当此预测变量最后添加到模型中时,增加。当是III SS类型时,这是;上面我称它为“半部分 ”。“ urban”的值(0.063)与基于输出的计算匹配。其他值不匹配。SS 效果/ SS SS 效果R 2R2SSeffect/SStotalSSeffectR2anova()

请注意,该程序包当前不提供这样的部分(但据作者说,将来可能会添加它[个人通讯])。无论如何,通过其他方式进行计算并不困难。R2

中还有四个指标relaimpo-如果relaimpo手动安装了该软件包,则还有另一个指标(第五个指标):CRAN版本不包括该指标,因为与其作者潜在的冲突,这听起来很疯狂,他的方法已获得美国专利。我正在在线运行R,但是没有访问权限,因此,如果有人可以手动安装relaimpo,请将该附加指标添加到上面的我的输出中,以确保完整性。

有两个指标pratt可能是负面的(坏的),genizi而且还很模糊。

两种有趣的方法是lmgcar

第一个是在预测变量所有可能排列上的平均值(此处为类型一世)。它来自Lindeman&Merenda&Gold 1980年的著作。SS 效果SSeffect/SStotalSSeffect

第二种方法是在(Zuber&Strimmer,2011)中引入的,它具有许多吸引人的理论特性。在先对预测变量进行标准化然后再通过ZCA / Mahalanobis变换进行美白处理后(即在最小化重构误差的同时进行美化),它是标准化系数的平方。

需要注意的是“年轻”到“城市”的贡献之比约为与(这比赛或多或少我们看到标准化系数和semipartial相关的),但它是与。我不清楚这种巨大差异的原因。878 12:1lmg878:1car

参考书目:

  1. 在相对重要性参考文献乌尔里克Grömping的网站-她是作者relaimpo

  2. 美国,葛隆平(2006)。R中线性回归的相对重要性:封装relaimpo。Journal of Statistics Software,第17期,第1期。

  3. 美国,葛隆平(2007)。基于方差分解的线性回归相对重要度估计。美国统计师61,139-147。

  4. Zuber,V.和Strimmer,K.(2010)。使用CAR分数进行高维回归和变量选择。遗传学和分子生物学的统计应用10.1(2011):1-27。

  5. U.Grömping(2015)。回归模型中变量的重要性。Wiley跨学科评论:计算统计,7(2),137-152。(在付费墙后面)


非常不错的摘要,其中包含有关各种重要性系数的其他评估信息。顺便说一句,您正在在线使用此R引擎pbil.univ-lyon1.fr/Rweb还是其他?
ttnphns

1
我使用r-fiddle.org,但是我从未尝试过其他任何事情,也不知道它的比较结果。虽然看起来很时尚。
变形虫说恢复莫妮卡

非常清晰的摘要和有关效果大小的其他信息(+1)
克里斯诺瓦克

4

你写了:

我的问题是:我应该使用部分R²还是系数来显示每个因素对结果有多大影响?

重要的是不要在这里混淆两件事。首先,存在模型规格问题。lm算法假定满足OLS假设。除其他外,这意味着对于无偏估计,模型中不会丢失任何有效变量(除非它与所有其他回归变量都不相关,这是罕见的)。
因此,在寻找模型时,当然会对R²或调整后的R²产生额外影响。例如,可能有人认为添加回归变量直到调整的R²停止改善是适当的。诸如此类的逐步回归过程存在一些有趣的问题,但这不是主题。无论如何,我认为您选择模型是有原因的。

但是:对R²的这种额外影响与回归变量对自变量的实际影响或总影响并不完全相同,这恰恰是由于多列亲和力:如果删除回归变量,则其影响力的一部分现在将归因于其他回归变量与之相关。因此,现在没有正确显示真正的影响。

还有另一个问题:估计仅对存在所有其他回归变量的完整模型有效。该模型不是正确的,因此关于影响的讨论是没有意义的;或者它是正确的,那么您就不能消除回归变量,而仍然成功地使用OLS方法。

那么:您的模型和OLS的使用是否合适?如果是,则估计值会回答您的问题-它们是您对变量对回归和因变量的影响的字面最佳猜测。
如果不是,那么您的第一项工作就是找到正确的模型。为此,可以使用部分R 2。在本论坛中,对模型规格或逐步回归的搜索将产生许多有趣的方法。有效的方法取决于您的数据。


1
感谢四个您的回答!我不确定您的说法“对R²的这种额外影响与回归变量对自变量的实际影响或总影响并不相同”是毫无争议的。例如,relaimpo软件包cran.r-project.org/web/packages/relaimpo/relaimpo.pdf使用R2部分“用于评估线性模型中的相对重要性”。
罗伯特

1
您认为您可以为R²仅用于模型选择提供参考吗?
罗伯特

1
@robert:存在的理由relaimpo是提供部分R ^ 2的替代方案,这正是IMA给出的原因!
Scortchi-恢复莫妮卡

1
@Scortchi:哇,看了一下relaimpo软件包的手册后,我意识到有很多方法可以量化线性回归中预测变量的相对重要性。我目前正在浏览一些链接在那里的论文(到目前为止,该2010年预印本看起来还不错),真是一团糟!当我提供悬赏时,我没有意识到这个问题是如此复杂。似乎尚未在CV上进行适当的讨论。这是一个晦涩的话题吗?如果是这样,为什么?
变形虫说恢复莫妮卡

2
@amoeba:一个即时的答案是,“预测变量的相对重要性”对于大多数目的而言并不是那么重要。如果您对自己的模型感到满意,则可以用它来表示每天抽烟等事情就相当于患上心脏病发作的风险,相当于吃五个汉堡包-重要性来自对以下内容的实质性解释:您正在建模;如果您要比较模型,则可以比较整个模型(例如带有或不带有衡量指标的一对预测变量的模型),并且无需担心预测能力将如何被平均分配。
Scortchi-恢复莫妮卡

3

例如,关于线性回归系数和偏相关之间的差异,您可以阅读此内容

但是,问题中表达的困惑似乎是另一种性质。它似乎是此统计软件包或该统计软件包使用的默认平方和类型(主题,在我们的网站上多次讨论)。线性回归使用ANOVA Type III SS估算中的所谓方法。在许多ANOVA程序中,这也是默认选项。在Rfunction中anova,对我来说(我不是R用户,所以我想)是默认计算方式为Type I SS(“顺序SS”,取决于模型中预测变量的指定顺序)。因此,您观察到的差异以及在对变量进行标准化(“缩放”)时并未消失的差异是因为您使用默认的Type I选项指定了ANOVA。

以下是在SPSS中获得的结果以及您的数据:

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

您可以在这些打印输出中选择,无论SS计算类型如何,参数(回归系数)都相同。您可能还会注意到,部分Eta平方[在本例中为SSeffect /(SSeffect + SSerror)和=部分R平方,因为预测变量是数字协变量]仅在类型为SS的情况下,效应表和系数表完全相同是III。当SS类型为I时,只有三个预测变量“ urban”中的最后一个保留相同的值(.169);这是因为在预测变量的输入顺序中它是最后一个。对于III型SS,输入的顺序无关紧要,就像回归一样。顺便说一下,p值也可以观察到差异。虽然您在我的表格中看不到它,因为“签名”列中只有3个十进制数字,

您可能想了解有关ANOVA /线性模型中不同“ SS类型”的更多信息。从概念上讲,SS的III型或“回归”型是基本的和原始的。其他类型的SS(I,II,IV,甚至更多)是一种特殊的设备,可以更全面地估计效果,比相关参数的情况下回归参数所允许的浪费少。

通常,效果大小及其p值的报告比参数及其p值更重要,除非研究的目的是为未来创建模型。参数是允许您进行预测的参数,但是“影响”或“效果”可能比“线性预测的强度”更宽泛。为了报告影响力或重要性,除了部分Eta平方以外,其他系数也是可能的。一个就是遗忘系数:预测因子的重要性是将预测因子从模型中删除后的残差平方和,并进行归一化,以使所有预测因子的重要性值之和为1。


+1,感谢您参与讨论。我有一个术语问题。“部分R平方”定义为SSeffect /(SSeffect + SSerror)。SSeffect / SStotal的名称是什么?据我了解(如果我错了,请纠正我),如果我们使用III型SS分解,那么此SSeffect / SStotal将等于响应和该预测变量(控制所有其他预测变量)之间的平方偏相关。这个数量有名字吗?部分R2与部分eta平方相似,但是为什么没有eta平方本身的类似物名称呢?我对此感到困惑。
变形虫说恢复莫妮卡

糟糕,我想我在上面写了些废话:平方的相关系数是SSeffect /(SSeffect + SSerror),即正好是R2的部分,对吗?尽管如此,仍然存在关于如何调用SSeffect / SStotal的问题(这是OP在他最初的问题中试图计算的内容!)。我们应该把它叫做平方平方吗?还是“分区的R2”(当然,对于III型SS,这些“分区”将不等于R2的总数)?
变形虫说恢复莫妮卡2015年

1
是的,SSeffect / SStotal只是η平方。它是该特定模型中预测变量的eta平方(在连续预测变量的情况下,当模型中的预测变量仅是一个=零阶Pearson r ^ 2时,不要与边际eta平方= eta平方相混淆)。
ttnphns 2015年

1
正是如此。部分相关性是eta(的特定实例)。我认为因此在模型部分 eta中称其为eta 适当的。我只是不记得我遇到术语“部分”或“半部分” eta的任何文本。如果您发现它,请告诉我。
ttnphns

1
是; 为什么,我也这么想。但是r,部分r,半部分r是对应eta的特殊情况。然而,两者之间重要的术语区别是在上下文中出现的,除了整体分类(虚拟)“非线性”效应外,我们还添加了预测变量的线性(或多项式)效应,就像数字编码一样。在这里,我们显示3种效果:组合的Etasq =线性Rsq +线性偏差。
ttnphns
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.