多重共线性和样条回归是否存在问题?


12

当使用自然的(即受限制的)三次样条曲线时,创建的基函数是高度共线性的,当在回归中使用时,似乎会产生非常高的VIF(方差膨胀因子)统计数据,表示多重共线性。当出于预测目的考虑模型的情况时,这是一个问题吗?由于样条线构造的性质,似乎总是这样。

这是R中的示例:

library(caret)
library(Hmisc)
library(car)
data(GermanCredit)

spl_mat<-rcspline.eval(GermanCredit$Amount,  nk=5, inclx=TRUE) #natural cubic splines with 5 knots

class<-ifelse(GermanCredit$Class=='Bad',1,0) #binary target variable
dat<-data.frame(cbind(spl_mat,class))

cor(spl_mat)

OUTPUT:
              x                              
    x 1.0000000 0.9386463 0.9270723 0.9109491
      0.9386463 1.0000000 0.9994380 0.9969515
      0.9270723 0.9994380 1.0000000 0.9989905
      0.9109491 0.9969515 0.9989905 1.0000000


mod<-glm(class~.,data=dat,family=binomial()) #model

vif(mod) #massively high

OUTPUT:
x         V2         V3         V4 
319.573 204655.833 415308.187  45042.675

更新:

我与R(及其他)Hmisc软件包的作者Harrell博士取得了联系,他回答说,只要算法收敛(例如逻辑回归)并且标准误差没有爆炸(如下面Maarten所述),并且-模型拟合得很好,最好在测试集上显示出来,那么共线性就没有问题。

此外,他指出(这在他的出色的《回归建模策略》( Regression Modeling Strategies)一书的第65页上提供),以代数方式构造的变量(如受限三次样条)之间的共线性不是问题,因为多重共线性仅在样品之间的共线性变化时才重要。


1
您总是可以正交化生成的样条rcsgen
曲线

Answers:


7

当估计这样的函数时,多重共线性会导致数值问题。这就是为什么有些人使用B样条曲线(或该主题的变体)而不是受限制的三次样条曲线的原因。因此,我倾向于将受限的三次样条曲线视为较大工具箱中的一种潜在有用工具。


嗨,马丁(Maarten),当您说数字问题时,您指的是收敛还是类似的?如果回归收敛并且在测试集上看起来表现良好-您是否得出结论说这不是问题?
B_Miner

如果存在数字问题,那么可能会收敛(但不是必须的)。不切实际的系数估计和/或不切实际的高标准误差是其他可能的后果。
Maarten Buis 2013年

1
QR分解之类的方法很有帮助。但是,您仍然可以破坏现代软件,这变得越来越困难。
Maarten Buis 2013年

1
那可能不是问题。但是,如果存在数值问题,则scale=TRUER rms包中某些拟合函数的参数将在拟合之前对所有列进行标准化,并在拟合之后以用户不需要考虑的方式使系数非标准化。
Frank Harrell's

2
不要过多地看个人系数和标准误差。查看整个拟合曲线。
Frank Harrell
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.