当使用自然(即受限)三次样条时,创建的基函数是高度共线性的,并且当在回归中使用时,似乎会产生非常高的 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
更新:
我联系了 Harrell 博士,他是 R(和其他人)中 Hmisc 包的作者,他回答说,只要算法收敛(例如逻辑回归)并且标准误差没有爆炸(正如 Maarten 在下面所说) - 并且该模型拟合得很好,最好在测试集上显示,那么这种共线性就没有问题。
此外,他说(这出现在他出色的回归建模策略一书的第 65 页)以代数方式构造的变量之间的共线性(如受限三次样条)不是问题,因为多重共线性仅在共线性从样本到样本发生变化时才重要。