Existe um problema com a multicolinearidade e a regressão splines?

12

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.

B_Miner
fonte
1
Você sempre pode orthogonalize as estrias gerados (por exemplo, o rcsgencomando Stata usa Gram-Schmidt orthogonalizaton)
Boscovich

Respostas:

7

A multicolinearidade pode levar a problemas numéricos ao estimar essa função. É por isso que alguns usam splines B (ou variações nesse tema) em vez de splines cúbicos restritos. Portanto, costumo ver splines cúbicos restritos como uma ferramenta potencialmente útil em uma caixa de ferramentas maior.

Maarten Buis
fonte
Olá Maarten, quando você diz que problemas numéricos se refere à convergência ou algo assim? Se a regressão convergir e parecer se sair bem em um conjunto de testes - você conclui que a situação não é um problema?
B_Miner 25/09
Se houver problemas numéricos, a falta de convergência é uma conseqüência provável (mas não necessária). Estimativas irrealistas de coeficientes e / ou erros padrão irrealistas altos são outras possíveis consequências.
Maarten Buis 25/09
1
Métodos como a decomposição do QR ajudaram bastante. No entanto, você ainda pode quebrar o software moderno, apenas ficou mais difícil fazê-lo.
Maarten Buis 26/09
1
Isso pode não ser um problema. Mas se houver um problema numérico, o scale=TRUEargumento para algumas das funções de ajuste no rmspacote R padronizará todas as colunas antes de ajustar e não padronizará os coeficientes após o ajuste, de uma maneira que o usuário não precise prestar atenção.
Frank Harrell
2
Não olhe tanto para os coeficientes individuais e erros padrão. Veja toda a curva ajustada.
Frank Harrell