Quando si utilizzano spline cubiche naturali (cioè limitate), le funzioni di base create sono altamente collineari e quando utilizzate in una regressione sembrano produrre statistiche VIF (fattore di inflazione della varianza) molto elevate, segnalando multicollinearità. Quando si considera il caso di un modello ai fini della previsione, si tratta di un problema? Sembra che sarà sempre il caso a causa della natura della costruzione della spline.
Ecco un esempio in 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
AGGIORNARE:
Ho contattato il Dr. Harrell, l'autore del pacchetto Hmisc in R (e altri) e ha risposto che fino a quando l'algoritmo converge (ad esempio la regressione logistica) e gli errori standard non sono esplosi (come ha detto Maarten sotto) - e il modello si adatta bene, meglio mostrato su un set di test, quindi non c'è problema con questa collinearità.
Inoltre, ha affermato (e questo è presente a pagina 65 del suo eccellente libro Strategie di modellizzazione della regressione ) che la collinearità tra variabili costruite in modo algebrico come spline cubiche ristrette non è un problema in quanto la multicollinearità conta solo quando la collinearità cambia da campione a campione.
rcsgen
comando Stata utilizza Gram-Schmidt orthogonalizaton)