Ich habe gelernt, dass wir mit vif()
der car
Package- Methode den Grad der Multikollinearität von Eingaben in einem Modell berechnen können. Von wikipedia , wenn der vif
Wert größer als 5
dann können wir davon ausgehen , dass die Eingabe von multicollinearity Problem leidet. Ich habe zum Beispiel ein lineares Regressionsmodell mit der lm()
Methode entwickelt und vif()
gibt Folgendes aus. Wie wir sehen können, die Eingänge ub
, lb
und tb
werden von multicollinearity leiden.
vif(lrmodel)
tb ub lb ma ua mb sa sb
7.929757 50.406318 30.826721 1.178124 1.891218 1.364020 2.113797 2.357946
Um das Multikollinearitätsproblem zu vermeiden und damit mein Modell robuster zu machen, habe ich die folgenden Interaktionen zwischen ub
und vorgenommen lb
, und nun lautet die vif-Tabelle des neuen Modells wie folgt:
tb ub:lb ma mb sa sb ua
1.763331 1.407963 1.178124 1.327287 2.113797 1.860894 1.891218
In R^2
beiden Fällen gibt es keinen großen Unterschied in den Werten und auch keinen großen Unterschied in den Fehlern von Ein-Auslass-CV-Tests.
Meine Fragen sind:
Ist es in Ordnung, das Multikollinearitätsproblem zu vermeiden, indem die oben gezeigte Interaktion verwendet wird?
Gibt es eine schönere Möglichkeit, das Multikollinearitätsproblem im Vergleich zu den obigen Ergebnissen der vif-Methode darzustellen?
Bitte machen Sie mir Ihre Vorschläge.
Vielen Dank.
quelle
Antworten:
Sie scheinen den Interaktionsbegriff einzuschließen
ub:lb
, aber nichtub
und sichlb
selbst als separate Prädiktoren. Dies würde gegen das sogenannte "Marginalitätsprinzip" verstoßen, das besagt, dass Begriffe höherer Ordnung nur Variablen enthalten sollten, die in Begriffen niedrigerer Ordnung vorliegen ( Wikipedia für den Anfang ). Tatsächlich schließen Sie jetzt einen Prädiktor ein, der nur das elementweise Produkt vonub
und istlb
.ub
ub
lb
Ich würde anfangen, alle paarweisen Korrelationen zwischen Prädiktoren durchzuführen und die oben erwähnten Regressionen ausführen, um zu sehen, welche Variablen vorhergesagt werden
ub
und umlb
zu sehen, ob die Redundanz leicht erklärt werden kann. In diesem Fall können Sie die redundanten Prädiktoren entfernen. Sie können auch die Gratregression untersuchen (lm.ridge()
aus dem PaketMASS
in R).kappa(lm(<formula>))
lm()
vif(lm(y ~ x1 + x2))
vif(lm(scale(y) ~ scale(x1) + scale(x2)))
kappa(lm(y ~ x1 + x2))
kappa(lm(scale(y) ~ scale(x1) + scale(x2)))
quelle
ub
lb
(pairs()
für Streudiagramm-Matrizen, die die gesamte paarweise Verteilung der Prädiktoren anzeigen. Paketscatterplot3d
kann verwendet werden, um das Streudiagramm von 3 Variablen zu visualisieren. In dieser Antwort wird die Ellipse gezeichnet, deren Achsenverhältnis gleich istperturb
das zusätzliche Multikollinearitätsdiagnosen bietet, möglicherweise Grafiken.Sie sollten den P-Wert auch bei der Variablenbetrachtung berücksichtigen.
quelle