C'è un problema con la multicollinearità e per la regressione delle spline?


12

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.


1
Puoi sempre ortogonalizzare le spline generate (ad esempio il rcsgencomando Stata utilizza Gram-Schmidt orthogonalizaton)
boscovich,

Risposte:


7

La multicollinearità può portare a problemi numerici nella stima di tale funzione. Questo è il motivo per cui alcuni usano spline B (o variazioni su quel tema) invece di spline cubiche ristrette. Quindi, tendo a vedere spline cubiche ristrette come uno strumento potenzialmente utile in una cassetta degli attrezzi più grande.


Ciao Maarten, quando dici problemi numerici ti riferisci alla convergenza o simili? Se la regressione converge e sembra funzionare bene su un set di test, concludi che la situazione non è un problema?
B_Miner,

Se ci sono problemi numerici, la mancanza di convergenza è una conseguenza probabile (ma non necessaria). Stime del coefficiente non realistiche e / o errori standard non realisticamente elevati sono altre possibili conseguenze.
Maarten Buis,

1
Metodi come la decomposizione QR hanno aiutato molto. Tuttavia, puoi ancora rompere il software moderno, è appena diventato più difficile farlo.
Maarten Buis,

1
Questo potrebbe non essere un problema. Ma se c'è un problema numerico, l' scale=TRUEargomento di alcune delle funzioni di adattamento nel rmspacchetto R standardizzerà tutte le colonne prima di adattare e non standardizzare i coefficienti dopo averlo adattato in modo che l'utente non debba tener conto.
Frank Harrell,

2
Non guardare così tanto i coefficienti individuali e gli errori standard. Guarda l'intera curva adattata.
Frank Harrell,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.