当使用自然的(即受限制的)三次样条曲线时,创建的基函数是高度共线性的,当在回归中使用时,似乎会产生非常高的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页上提供),以代数方式构造的变量(如受限三次样条)之间的共线性不是问题,因为多重共线性仅在样品之间的共线性变化时才重要。
rcsgen