Ao usar splines cúbicos naturais (isto é, restritos), as funções básicas criadas são altamente colineares e, quando usadas em uma regressão, parecem produzir estatísticas VIF (fator de inflação de variação) muito altas, sinalizando multicolinearidade. Quando se está considerando o caso de um modelo para fins de previsão, isso é um problema? Parece que sempre será o caso devido à natureza da construção do spline.
Aqui está um exemplo em 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
ATUALIZAR:
Entrei em contato com o Dr. Harrell, autor do pacote Hmisc em R (e outros) e ele respondeu que, enquanto o algoritmo convergir (por exemplo, a regressão logística) e os erros padrão não explodirem (como Maarten disse abaixo) - e o modelo se encaixa bem, melhor mostrado em um conjunto de teste, então não há problema com essa colinearidade.
Além disso, ele afirmou (e isso está presente na página 65 de seu excelente livro Estratégias de modelagem de regressão ) que a colinearidade entre variáveis construídas de maneira algébrica como splines cúbicos restritos não é um problema, pois a multicolinearidade só importa quando essa colinearidade muda de amostra para amostra.
rcsgen
comando Stata usa Gram-Schmidt orthogonalizaton)