Ich versuche, Varianzinflationsfaktoren mithilfe der vif
Funktion im R-Paket zu interpretieren car
. Die Funktion druckt sowohl eine verallgemeinerte und auch GVIF 1 / ( 2 ⋅ df ) . Laut der Hilfedatei dieser letztere Wert
Um die Dimension des Vertrauensellipsoids anzupassen, gibt die Funktion auch GVIF ^ [1 / (2 * df)] aus, wobei df die Freiheitsgrade sind, die dem Term zugeordnet sind.
Ich verstehe die Bedeutung dieser Erklärung in der Hilfedatei nicht, daher bin ich mir nicht sicher, ob ich oder GVIF 1 / ( 2 ⋅ df ) verwenden soll . Bei meinem Modell sind diese beiden Werte sehr unterschiedlich (maximaler GVIF ~ 60 ; maximaler GVIF 1 / ( 2 ⋅ df ) ~ 3 ).
Könnte mir bitte jemand erklären, welches ich verwenden soll und was unter Anpassen der Dimension des Vertrauensellipsoids zu verstehen ist?
quelle
Ich bin auf genau die gleiche Frage gestoßen und habe versucht, mich durchzuarbeiten. Siehe meine ausführliche Antwort unten.
Zunächst habe ich 4 Optionen gefunden, die ähnliche VIF-Werte in R erzeugen:
•
corvif
Befehl aus dem AED-Paket,•
vif
Befehl aus dem Autopaket,•
vif
Befehl aus dem RMS-Paket,•
vif
Befehl aus dem DAAG-Paket.Die Verwendung dieser Befehle für eine Reihe von Prädiktoren, die keine Faktoren / kategorialen Variablen oder Polynomterme enthalten, ist sehr einfach. Alle drei Befehle erzeugen dieselbe numerische Ausgabe, obwohl der
corvif
Befehl aus dem AED-Paket die Ergebnisse als GVIF kennzeichnet.Typischerweise kommt GVIF jedoch nur für Faktoren und Polynomvariablen ins Spiel. Variablen, die mehr als 1 Koeffizienten und damit mehr als 1 Freiheitsgrad erfordern, werden typischerweise mit dem GVIF ausgewertet. Für Ein-Koeffizienten-Terme ist VIF gleich GVIF.
Daher können Sie Standard-Faustregeln anwenden, um festzustellen, ob Kollinearität ein Problem darstellt, z. B. ein Schwellenwert von 3, 5 oder 10. Es kann (sollte) jedoch Vorsicht geboten sein (siehe: http://www.nkd-group.com/ghdash/mba555/PDF/VIF%20article.pdf ).
In case of multi-coefficient terms, as for e.g. categorical predictors, the 4 packages produce different outputs. The
vif
commands from the rms and DAAG packages produce VIF values, whereas the other two produce GVIF values.Let us have a look at VIF values from the rms and DAAG packages first:
TNAP und ICE sind kontinuierliche Prädiktoren und Reg ist eine kategoriale Variable, die von den Dummies RegB bis RegE dargestellt wird. In diesem Fall ist die RegA die Basis. Alle VIF-Werte sind eher moderat und normalerweise kein Grund zur Sorge. Das Problem mit diesem Ergebnis ist, dass es von der Basislinie der kategorialen Variablen beeinflusst wird. Um sicherzugehen, dass ein VIF-Wert nicht über einem akzeptablen Wert liegt, muss diese Analyse für jede Ebene der kategorialen Variablen, die die Basislinie darstellt, wiederholt werden. In diesem Fall fünfmal.
Durch Anwenden des
corvif
Befehls aus dem AED-Paket oder desvif
Befehls aus dem Fahrzeugpaket werden GVIF-Werte erzeugt:Die GVIF wird für Mengen verwandter Regressoren berechnet, z. B. für eine Menge von Dummy-Regressoren. Für die beiden stetigen Variablen TNAP und ICE sind dies die gleichen VIF-Werte wie zuvor. Für die kategoriale Variable Reg erhalten wir jetzt einen sehr hohen GVIF-Wert, obwohl die VIF-Werte für die einzelnen Ebenen der kategorialen Variablen alle moderat waren (wie oben gezeigt).
Die Interpretation ist jedoch unterschiedlich. Für die beiden stetigen VariablenG VichF( 1 / ( 2 × D f) ) (which is basically the square root of the VIF/GVIF value as DF = 1) is the proportional change of the standard error and confidence interval of their coefficients due to the level of collinearity. The GVIF(1/(2×Df)) value of the categorical variable is a similar measure for the reduction in precision of the coefficients' estimation due to collinearity (even though not ready for quoting also look at http://socserv2.socsci.mcmaster.ca/jfox/papers/linear-models-problems.pdf).
If we then simply apply the same standard rules of thumb forGVIF(1/(2×Df)) values as recommended in literature for the VIF, we simply need to square GVIF(1/(2×Df)) .
Reading through all the forum posts, short notes in the web and scientific papers, it seems that there is quite some confusion going on. In peer reviewed papers, I found the values forGVIF(1/(2×Df)) ignored and the same standard rules suggested for the VIF are applied to the GVIF values. In another paper, GVIF values of close to 100 are excepted because of a reasonably small GVIF(1/(2×Df)) (due to a high DF). The rule of GVIF2(1/(2×Df))<2 is applied in some publications, which would equal a VIF of 4 for one-coefficient variables.
quelle
[ASK QUESTION]
at the top & ask it there, then we can help you properly. Since you are new here, you may want to take our tour, which contains information for new users.Fox & Monette (original citation for GVIF, GVIF^1/2df) suggest taking GVIF to the power of 1/2df makes the value of the GVIF comparable across different number of parameters. "It is analagous to taking the square root of the usual variance-inflation factor" ( from An R and S-Plus Companion to Applied Regression by John Fox). So yes, squaring it and applying the usual VIF "rule of thumb" seems reasonable.
quelle