Gibt es ein Problem mit Multikollinearität und Splines-Regression?

12

Bei Verwendung natürlicher (dh eingeschränkter) kubischer Splines sind die erzeugten Basisfunktionen hochgradig kollinear, und bei Verwendung in einer Regression scheinen sich sehr hohe VIF-Statistiken (Varianzinflationsfaktor) zu ergeben, die Multikollinearität signalisieren. Wenn man den Fall eines Modells für Vorhersagezwecke in Betracht zieht, ist dies ein Problem? Es scheint, als ob dies aufgrund der Art der Keilwellenkonstruktion immer der Fall sein wird.

Hier ist ein Beispiel 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

AKTUALISIEREN:

Ich habe mich an Dr. Harrell gewandt, den Autor des Hmisc-Pakets in R (und andere), und er hat geantwortet, solange der Algorithmus konvergiert (z. B. die logistische Regression) und die Standardfehler nicht explodiert sind (wie Maarten weiter unten sagte) - und Das Modell passt gut, am besten auf einem Test-Set, dann gibt es kein Problem mit dieser Kollinearität.

Ferner stellte er fest (und dies ist auf Seite 65 seines ausgezeichneten Buches über Regressionsmodellierungsstrategien enthalten ), dass die Kollinearität zwischen Variablen, die auf algebraische Weise wie eingeschränkte kubische Splines konstruiert wurden, kein Problem darstellt, da Multikollinearität nur dann von Bedeutung ist, wenn sich die Kollinearität von Stichprobe zu Stichprobe ändert.

B_Miner
quelle
1
Sie können die generierten Splines immer orthogonalisieren (der rcsgenBefehl Stata verwendet beispielsweise die Orthogonalisierung nach Gram-Schmidt)
boscovich,

Antworten:

7

Die Multikollinearität kann bei der Abschätzung einer solchen Funktion zu numerischen Problemen führen. Aus diesem Grund verwenden manche B-Splines (oder Variationen dieses Themas) anstelle von eingeschränkten kubischen Splines. Daher sehe ich eingeschränkte kubische Splines als ein potenziell nützliches Werkzeug in einer größeren Toolbox.

Maarten Buis
quelle
Hallo Maarten, wenn Sie numerische Probleme sagen, beziehen Sie sich auf Konvergenz oder so? Wenn sich die Regression angeglichen hat und bei einem Test gut abgeschnitten zu haben scheint - schließen Sie, dass die Situation kein Problem darstellt?
B_Miner
Wenn es numerische Probleme gibt, ist ein Mangel an Konvergenz eine wahrscheinliche (aber keine notwendige) Folge. Unrealistische Koeffizientenschätzungen und / oder unrealistisch hohe Standardfehler sind weitere mögliche Folgen.
Maarten Buis
1
Methoden wie die QR-Zerlegung haben sehr geholfen. Sie können jedoch immer noch moderne Software brechen, es ist nur schwieriger geworden, dies zu tun.
Maarten Buis
1
Das kann kein Problem sein. Wenn jedoch ein numerisches Problem vorliegt, standardisiert das scale=TRUEArgument für einige Anpassungsfunktionen im R- rmsPaket alle Spalten vor der Anpassung und dekomprimiert die Koeffizienten nach der Anpassung auf eine Weise, die der Benutzer nicht berücksichtigen muss.
Frank Harrell
2
Betrachten Sie die einzelnen Koeffizienten und Standardfehler nicht so genau. Schauen Sie sich die gesamte angepasste Kurve an.
Frank Harrell