Lors de l'utilisation de splines cubiques naturelles (c'est-à-dire restreintes), les fonctions de base créées sont hautement colinéaires et, lorsqu'elles sont utilisées dans une régression, semblent produire des statistiques VIF (facteur d'inflation de variance) très élevées, signalant la multicolinéarité. Lorsque l'on considère le cas d'un modèle à des fins de prédiction, est-ce un problème? Il semble que ce sera toujours le cas en raison de la nature de la construction des splines.
Voici un exemple dans 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
MISE À JOUR:
J'ai contacté le Dr Harrell, l'auteur du package Hmisc dans R (et d'autres) et il a répondu que tant que l'algorithme converge (par exemple la régression logistique) et que les erreurs standard n'ont pas explosé (comme Maarten l'a dit ci-dessous) - et le modèle correspond bien, mieux illustré sur un ensemble de test, alors il n'y a pas de problème avec cette colinéarité.
De plus, il a déclaré (et cela se trouve à la page 65 de son excellent livre sur les stratégies de modélisation de la régression ) que la colinéarité entre les variables construites de manière algébrique comme les splines cubiques restreintes n'est pas un problème car la multicolinéarité n'a d'importance que lorsque cette colinéarité change d'un échantillon à l'autre.
rcsgen
commande Stata utilise l'orthogonalisation Gram-Schmidt)