Das von Python berechnete VIF und das von Excel berechnete VIF sind unterschiedlich.

Sie können VIF mit Python überprüfen und es ist super praktisch!

Sie können VIF (Varianzinflationsfaktor) in Python überprüfen und die mehrfache Co-Linearität zwischen den erklärenden Variablen überprüfen, während Sie dieses Ergebnis betrachten. Wenn VIF> 10 ist, kann im Allgemeinen beurteilt werden, dass die multiple Co-Linearität stark ist.

from statsmodels.stats.outliers_influence import variance_inflation_factor

df_all = pd.read_excel('train.xlsx',sheet_name="Sheet1")

cols = df_all.select_dtypes(include=[np.number]).columns
cols_x = cols[1:]
data_x = df_all[cols_x]
#Berechne vif
vif = pd.DataFrame()
vif["VIF Factor"] = [variance_inflation_factor(data_x.values, i) for i in range(data_x.shape[1])]
#vif["features"] = data_x.columns 
 
#das Berechnungsergebnis von vif ausgeben
print(vif)
 
#Graph vif
plt.plot(vif["VIF Factor"])

Das Ergebnis wird so herauskommen. Es ist bequem! image.png

Im Vergleich zu dem von Excel berechneten VIF ...

Es wurde festgestellt, dass VIF mit unterschiedlichen Ergebnissen ('Д') herauskam .. !! image.png

Zunächst wird VIF nach der folgenden Formel berechnet.

VIF = 1/(1-R2) #R2: Entscheidungskoeffizient

Wenn eine der erklärenden Variablen als Zielvariable betrachtet wird, wird der Entscheidungskoeffizient R2 verwendet, der erhalten wird, wenn eine multiple Regressionsanalyse mit den verbleibenden erklärenden Variablen durchgeführt wird. Sinnlich gesprochen verstehe ich, dass Sie diese Variable nicht benötigen, wenn Sie eine Variable ausdrücken können, die die verbleibende erklärende Variable ist. Die Tatsache, dass das VIF unterschiedlich ist, bedeutet, dass dieses R2 zwischen Python und Excel unterschiedlich ist, sodass ich für einen Moment in Panik geriet.

Die Ursache für den Unterschied war, ob der Abschnitt enthalten war oder nicht.

Es stellte sich heraus, dass der Grund anders war, ob der Abschnitt in die erklärende Variable aufgenommen werden sollte oder nicht.

Verarbeiten Sie auf der Python-Seite als Abschnitt = 0 Als ich es in Excel untersucht habe, habe ich den Abschnitt nicht angegeben.

Ich konnte bestätigen, dass die VIFs übereinstimmen, wenn ich auch in Excel section = 0 setze.

image.png ↑ Ob hier überprüft werden soll

Ich möchte alle fragen .. Was ist denn richtig?

Ich denke über das Obige nach, aber wie steht es mit allen? Ich bin auch neugierig, was der VIF-Berechnungsalgorithmus des Statistikmodells überhaupt ist.

Wenn Sie Meinungen oder Ratschläge haben, zögern Sie bitte nicht, uns zu kontaktieren! !!

Recommended Posts

Das von Python berechnete VIF und das von Excel berechnete VIF sind unterschiedlich.
Python a + = b und a = a + b sind unterschiedlich
Python open und io.open sind gleich
Die Antwort von "1/2" unterscheidet sich zwischen Python2 und 3
Bearbeiten Sie die Zwischenablage in Python und fügen Sie die Tabelle in Excel ein
[Python3] "A // B" und "math.floor (A / B)" sind nicht immer gleich! ??
Die Geschichte von Python und die Geschichte von NaN
Die Matrix und die Matte von numpy sind unterschiedlich
[Python] Was sind @classmethod und Dekorateure?
Lesen Sie die Excel-Tabelle und wiederholen Sie den Prozess zeilenweise Python VBA
Überprüfung der Theorie, dass "Python und Swift ziemlich ähnlich sind"
Der Versuch, Segmentbäume Schritt für Schritt zu implementieren und zu verstehen (Python)
[Python Kivy] So erhalten Sie den Dateipfad durch Ziehen und Ablegen
Ich bin verblüfft über das Verhalten von filter () aufgrund verschiedener Versionen von Python
Überprüfen Sie den Dateinamen, wenn Sie durch Python-Import nicht informiert werden
Ich habe versucht, die Beschleunigung von Python durch Cython zu verifizieren und zu analysieren
Öffnen Sie eine Excel-Datei in Python und färben Sie die Karte von Japan
Module und Pakete in Python sind "Namespaces"
Alle Python-Argumente werden als Referenz übergeben
Socket-Kommunikation und Multithread-Verarbeitung durch Python
yum und apt update / upgrade sind unterschiedlich
Lesen Sie die Datei Zeile für Zeile mit Python
Lesen Sie die Datei Zeile für Zeile mit Python
Pandas des Anfängers, vom Anfänger, für den Anfänger [Python]
Socket-Kommunikation in C-Sprache und Python
Academia Potter und der mysteriöse Python-Pass
Teilt die Zeichenfolge durch die angegebene Anzahl von Zeichen. In Ruby und Python.
Fourier-Konvertierung der von Python gelesenen WAV-Datei, umgekehrte Konvertierung und erneutes Schreiben
Klicken Sie auf das Python / Matplotlib-Diagramm, um Koordinatenwerte oder Tastatureingabewerte abzurufen
Holen Sie sich das letzte Element des Arrays, indem Sie Zeichenfolgen in Python und PHP aufteilen
Überprüfen Sie, ob die Zeichen in Python ähnlich sind
[Python] Vor dem Unterstrich (Unterstrich) Was sind die beiden Funktionen?
Die erste Web-App, die von Python-Anfängern erstellt wurde
Zusammenfassung der Unterschiede zwischen PHP und Python
Der Inhalt des Python-Tutorials (Kapitel 5) ist in einem Aufzählungszeichen zusammengefasst.
Der Inhalt des Python-Tutorials (Kapitel 4) ist in einem Aufzählungszeichen zusammengefasst.
Der Inhalt des Python-Tutorials (Kapitel 2) ist in einem Aufzählungszeichen zusammengefasst.
Wie Python-Klassen und magische Methoden funktionieren.
ffmpeg-Erstellen Sie eine Python-Umgebung und teilen Sie das Video
Der Inhalt des Python-Tutorials (Kapitel 8) ist in einem Aufzählungszeichen zusammengefasst.
Der Inhalt des Python-Tutorials (Kapitel 1) ist in einem Aufzählungszeichen zusammengefasst.
Angeben des Bereichs von Ruby- und Python-Arrays
Erstellen Sie automatisch Wort- und Excel-Berichte mit Python
Ich habe "Python Dictionary Type" und "Excel Function" verglichen.
Über den Unterschied zwischen "==" und "is" in Python
Der Inhalt des Python-Tutorials (Kapitel 10) ist in einem Aufzählungszeichen zusammengefasst.
Vergleichen Sie die Geschwindigkeit von Python Append und Map
Excel X Python Die schnellste Arbeitstechnik
So löschen Sie die von Python ausgegebenen Zeichen
Was vergleichst du mit Python und ==?
Lösen des Lorenz 96-Modells mit Julia und Python
Fehler und Abschluss der Ausführung durch LINE [Python] benachrichtigen
Archivieren und komprimieren Sie das gesamte Verzeichnis mit Python
Der Inhalt des Python-Tutorials (Kapitel 6) ist in einem Aufzählungszeichen zusammengefasst.
Der Inhalt des Python-Tutorials (Kapitel 3) ist in einem Aufzählungszeichen zusammengefasst.
Berücksichtigung der Stärken und Schwächen von Python
Was sind Python Taples und * Args?
Teilen Sie Python-Bilder und ordnen Sie sie nebeneinander an
Python> Nach Nummer sortieren und nach Alphabet sortieren> Sortiert verwenden ()