Varianz-Inflationsfaktor in Python

Zeeshan Afridi 21 Juni 2023
  1. Varianz-Inflationsfaktor in Python
  2. Leistung von VIF bei der Erkennung einflussreicher Beobachtungen
  3. Berechnen Sie den Varianzinflationsfaktor (VIF) in Python
Varianz-Inflationsfaktor in Python

Dieser Artikel beschreibt den Varianzinflationsfaktor (VIF) und seine Leistung bei der Erkennung einflussreicher Beobachtungen und zeigt, wie wir statsmodels verwenden können, um VIF in Python zu verwenden.

Varianz-Inflationsfaktor in Python

Der Varianzinflationsfaktor (VIF) misst den Grad der Kollinearität zwischen Prädiktorvariablen in einem multiplen Regressionsmodell. Und es wird als das Verhältnis der Varianz der gegebenen Prädiktorvariablen zur Varianz der Residuen berechnet.

Ein Varianzinflationsfaktor von 1 zeigt keine Kollinearität an. Im Gegensatz dazu deutet ein VIF, der signifikanter als 1 ist, darauf hin, dass Kollinearität vorhanden ist. Der VIF kann verwendet werden, um zu beurteilen, ob die Einbeziehung einer bestimmten Prädiktorvariablen in ein multiples Regressionsmodell gerechtfertigt ist.

Wenn der VIF für einen bestimmten Prädiktor hoch ist, kann dies darauf hindeuten, dass der Prädiktor mit anderen Prädiktoren im Modell redundant ist. Wir können es auch entfernen, ohne die Passform des Modells zu beeinträchtigen.

Der geeignete Varianzinflationsfaktor (VIF) hängt vom spezifischen Kontext und Datensatz ab. Im Allgemeinen kann der VIF jedoch ein wertvolles Werkzeug sein, um potenzielle Probleme mit Multikollinearität in Ihren Daten zu identifizieren.

Leistung von VIF bei der Erkennung einflussreicher Beobachtungen

Es gibt mehrere Möglichkeiten, einflussreiche Beobachtungen in einer Regressionsanalyse zu erkennen. Eine Standardmethode ist die Berechnung des Varianzinflationsfaktors (VIF).

Der VIF misst die Varianz in einem Prädiktor aufgrund der Kollinearität mit anderen Prädiktoren im Modell. Ein hoher VIF weist darauf hin, dass andere Prädiktoren den Prädiktor im Modell stark beeinflussen.

Ein Regressionsmodell kann also den VIF für jeden Prädiktor berechnen. Ein VIF von 1 zeigt an, dass kein anderer Prädiktor den Prädiktor im Modell beeinflusst.

Ein VIF, der signifikanter als 1 ist, deutet darauf hin, dass andere Prädiktoren den Prädiktor im Modell beeinflussen. Der VIF ist besonders nützlich, um Kollinearität zwischen kategorialen Prädiktoren zu erkennen.

Der VIF kann identifizieren, welche Prädiktoren in einem Regressionsmodell am einflussreichsten sind. Es muss jedoch unbedingt daran erinnert werden, dass der VIF nur ein Maß für die Kollinearität ist und nicht unbedingt darauf hinweist, dass ein Prädiktor im Modell unerlässlich ist.

Berechnen Sie den Varianzinflationsfaktor (VIF) in Python

Um das VIF in Python zu verwenden, können wir die Bibliothek statsmodels verwenden. Zuerst wird der VIF mit der Klasse linear_model.LinearRegression berechnet.

Wir passen zuerst ein lineares Regressionsmodell an unsere Daten an und erstellen dann ein neues lineares Regressionsmodell mit dem Interaktionsterm. Danach vergleichen wir die beiden Modelle, indem wir den VIF für jedes Modell berechnen.

Das Modell mit dem enthaltenen Interaktionsterm weist einen höheren VIF auf, was darauf hinweist, dass der Interaktionsterm Multikollinearität verursacht. Der VIF wird für jede Prädiktorvariable im Modell berechnet und dann verwendet, um die Gesamtanpassung des Modells zu bestimmen.

Der VIF kann mit der folgenden Formel berechnet werden:

VIF = \frac{1}{(1-R^{2})}

Dabei ist R^2 das Bestimmtheitsmass für die Prädiktorvariable.

Der VIF wird typischerweise verwendet, um Multikollinearität in einem linearen Regressionsmodell zu bewerten. Wir können es jedoch auch in anderen Regressionsmodellen wie der logistischen Regression und der Poisson-Regression verwenden.

Der VIF kann verwendet werden, um die Gesamtanpassung des Modells zu bewerten und Prädiktorvariablen zu identifizieren. Und die Prädiktorvariablen sind stark mit anderen Prädiktorvariablen im Modell korreliert.

In der Statistik hat jeder Datenpunkt einen Fehler, der als Varianz bezeichnet wird. Der Konflikt eines Datensatzes ist jedoch nicht das beste Maß dafür, wie variabel der Datensatz ist.

Der Varianzinflationsfaktor (VIF) ist ein statistisches Maß für die Auswirkungen der Multikollinearität in einer Regressionsanalyse. VIF = (λ 1 / λ 2 ) – 1, wobei λ 1 der VIF für eine Variable in einem Regressionsmodell und λ 2 der VIF für die Variable im zweiten Regressionsmodell ist.

VIF > 10 zeigt Multikollinearität zwischen den unabhängigen Variablen an. Lassen Sie uns VIF anhand des folgenden Python-Codebeispiels lernen:

Beispielcode:

import numpy as np
import pandas as pd
import seaborn as sns
import statsmodels.api as sm
import statsmodels.tools.tools as smt
import statsmodels.stats.outliers_influence as smo

hp = sm.datasets.get_rdataset(dataname="HousePrices", package="AER", cache=True).data
print(hp.iloc[:, 0:5].head(3))

ivar = hp.iloc[:, 1:5]
print(ivar.head(3))

ivarc = smt.add_constant(data=ivar, prepend=False)
vif_lotsize = smo.variance_inflation_factor(exog=ivarc.values, exog_idx=0)
print(vif_lotsize)

Ausgang:

   price     lotsize  bedrooms    bathrooms  stories
0  42000.0     5850         3          1        2
1  38500.0     4000         2          1        1
2  49500.0     3060         3          1        1
   lotsize  bedrooms  bathrooms  stories
0     5850         3          1        2
1     4000         2          1        1
2     3060         3          1        1
1.047054041442195

Wie wir erfahren haben, stehen zahlreiche VIF-Rechner zur Verfügung. Darüber hinaus ist VIF eine der vielen Metriken, die Ihnen helfen können, die Beziehung zwischen zwei Variablen zu verstehen.

Es ist wichtig zu wissen, dass VIF eher ein praktisches als ein theoretisches Konzept ist. Es ist der VIF-Wert, der bestimmt, ob Multikollinearität ein Problem darstellt.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn