


Erkennen und Behandeln von Multikollinearitätsproblemen bei der Regression mit Python
Multikollinearität bezieht sich auf den hohen Grad an Interkorrelation zwischen den unabhängigen Variablen im Regressionsmodell. Dies kann zu ungenauen Koeffizienten im Modell führen, wodurch es schwierig wird, den Einfluss verschiedener unabhängiger Variablen auf die abhängige Variable zu beurteilen. In diesem Fall gilt es, die Multikollinearität des Regressionsmodells zu identifizieren und zu behandeln sowie verschiedene Verfahren und deren Ergebnisse zu kombinieren, was wir Schritt für Schritt erläutern werden.
Methode
Multikollinearität erkennen
Umgang mit Multikollinearität
Algorithmus
Schritt 1 − Erforderliche Bibliotheken importieren
Schritt 2 – Daten in Pandas Dataframes laden
Schritt 3 – Erstellen Sie eine Korrelationsmatrix mit Prädiktoren
Schritt 4 − Erstellen Sie eine Heatmap der Korrelationsmatrix, um die Korrelation zu visualisieren
Schritt 5 – Berechnen Sie den Varianzinflationsfaktor für jeden Prädiktor der Ausgabe
Schritt 6 − Prädiktor bestimmen
Schritt 7 – Der Prädiktor sollte entfernt werden
Schritt 8 – Führen Sie das Regressionsmodell erneut aus
Schritt 9 – Überprüfen Sie es erneut.
Methode 1: Multikollinearität erkennen
Verwenden Sie die Funktion corr() des Pandas-Pakets, um die Korrelationsmatrix der unabhängigen Variablen zu bestimmen. Verwenden Sie die Seaborn-Bibliothek, um Wärmekarten zur Anzeige der Korrelationsmatrix zu erstellen. Verwenden Sie die Funktion variance_inflation_factor() des Pakets statsmodels, um den Varianzinflationsfaktor (VIF) für jede unabhängige Variable zu bestimmen. Ein VIF größer als 5 oder 10 weist auf eine hohe Multikollinearität hin.
Die chinesische Übersetzung vonBeispiel-1
lautet:Beispiel-1
In diesem Code werden die Prädiktorvariable X und die abhängige Variable y getrennt, sobald die Daten in den Pandas DataFrame geladen sind. Um den VIF für jede Prädiktorvariable zu berechnen, verwenden wir die Funktion „variation_inflation_factor()“ aus dem statsmodels-Paket. Im letzten Schritt des Prozesses speichern wir die VIF-Werte zusammen mit den Namen der Prädiktoren in einem brandneuen Pandas DataFrame und zeigen dann die Ergebnisse an. Mit diesem Code wird eine Tabelle generiert, die den Variablennamen und den VIF-Wert für jede Prädiktorvariable enthält. Wenn eine Variable einen hohen VIF-Wert hat (je nach Situation über 5 oder 10), ist es wichtig, die Variable weiter zu analysieren.
import pandas as pd from statsmodels.stats.outliers_influence import variance_inflation_factor # Load data into a pandas DataFrame data = pd.read_csv("mydata.csv") # Select independent variables X = data[['independent_var1', 'independent_var2', 'independent_var3']] # Calculate VIF for each independent variable vif = pd.DataFrame() vif["VIF Factor"] = [variance_inflation_factor(X.values, i) for i in range(X.shape[1])] vif["features"] = X.columns # Print the VIF results print(vif)
Ausgabe
VIF Factor Features 0 3.068988 Independent_var1 1 3.870567 Independent_var2 2 3.843753 Independent_var3
Methode 2: Umgang mit Multikollinearität
Schließen Sie eine oder mehrere stark korrelierte unabhängige Variablen aus dem Modell aus. Mithilfe der Hauptkomponentenanalyse (PCA) können hochkorrelierte unabhängige Variablen zu einer einzigen Variablen kombiniert werden. Regularisierungsmethoden wie die Ridge-Regression oder die Lasso-Regression können verwendet werden, um den Einfluss stark korrelierter unabhängiger Variablen auf die Modellkoeffizienten zu reduzieren. Mit dem oben genannten Ansatz kann der folgende Beispielcode verwendet werden, um Multikollinearitätsprobleme zu identifizieren und zu lösen −
import pandas as pd import seaborn as sns from statsmodels.stats.outliers_influence import variance_inflation_factor from sklearn.decomposition import PCA from sklearn.linear_model import Ridge # Load the data into a pandas DataFrame data = pd.read_csv('data.csv') # Calculate the correlation matrix corr_matrix = data.corr() # Create a heatmap to visualize the correlation matrix sns.heatmap(corr_matrix, annot=True, cmap='coolwarm') # Check for VIF for each independent variable for i in range(data.shape[1]-1): vif = variance_inflation_factor(data.values, i) print('VIF for variable {}: {:.2f}'.format(i, vif)) # Remove highly correlated independent variables data = data.drop(['var1', 'var2'], axis=1) # Use PCA to combine highly correlated independent variables pca = PCA(n_components=1) data['pca'] = pca.fit_transform(data[['var1', 'var2']]) # Use Ridge regression to reduce the impact of highly correlated independent variables X = data.drop('dependent_var', axis=1) y = data['dependent_var'] ridge = Ridge(alpha=0.1) ridge.fit(X, y)
Diese Funktion generiert keine andere Ausgabe als die Ausgabe des VIF-Werts jeder unabhängigen Variablen. Beim Ausführen dieses Codes werden nur die VIF-Werte für jede unabhängige Variable ausgegeben; es werden keine Diagramme oder Modellleistungen gedruckt.
In diesem Beispiel werden die Daten zunächst in einen Pandas DataFrame geladen, dann wird die Korrelationsmatrix berechnet und schließlich wird eine Heatmap erstellt, um die Korrelationsmatrix anzuzeigen. Anschließend haben wir unabhängige Faktoren mit hohen Korrelationen eliminiert, nachdem wir den VIF jeder unabhängigen Variablen getestet hatten. Wir verwendeten die Ridge-Regression, um den Einfluss hochkorrelierter unabhängiger Variablen auf die Modellkoeffizienten zu reduzieren, und nutzten die Hauptkomponentenanalyse, um hochkorrelierte unabhängige Variablen in einer Variablen zu kombinieren.
import pandas as pd #create DataFrame df = pd.DataFrame({'rating': [90, 85, 82, 18, 14, 90, 16, 75, 87, 86], 'points': [22, 10, 34, 46, 27, 20, 12, 15, 14, 19], 'assists': [1, 3, 5, 6, 5, 7, 6, 9, 9, 5], 'rebounds': [11, 8, 10, 6, 3, 4, 4, 10, 10, 7]}) #view DataFrame print(df)
Ausgabe
rating points assists rebounds 0 90 22 1 11 1 85 10 3 8 2 82 34 5 10 3 18 46 6 6 4 14 27 5 3 5 90 20 7 4 6 16 12 6 4 7 75 15 9 10 8 87 14 9 10 9 86 19 5 7
Mit dem Pandas-Paket kann über dieses Python-Programm eine Array-Datenstruktur namens DataFrame generiert werden. Die spezifischen Dimensionen umfassen vier verschiedene Spalten: Assists, Rebounds, Punkte und Bewertungen. Die Bibliothek wird am Anfang des Codes importiert und wird danach „pd“ genannt, um die Komplexität zu reduzieren. Ein DataFrame wird schließlich erstellt, indem die Methode pd.DataFrame() in der zweiten Codezeile ausgeführt wird.
Verwenden Sie die print()-Methode in der dritten Codezeile, um den DataFrame auf der Konsole zu drucken. Die Werte jeder Spalte bilden die Definition der Liste und dienen als Schlüssel und Werte für die Wörterbucheingabefunktion. Informationen zu jedem Spieler werden in einem Tabellenformat angezeigt, wobei die Statistiken einschließlich Punkte, Assists und Rebounds in Spalten angeordnet sind, wobei jede Zeile einen Spieler darstellt.
Fazit
Zusammenfassend spricht man von Multikollinearität, wenn zwei oder mehr Prädiktorvariablen in einem Modell stark miteinander korrelieren. Diese Situation kann die Interpretation von Modellergebnissen erschweren. In diesem Fall ist es schwierig zu bestimmen, wie sich jede einzelne Prädiktorvariable auf die Ergebnisvariable auswirkt.
Das obige ist der detaillierte Inhalt vonErkennen und Behandeln von Multikollinearitätsproblemen bei der Regression mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

In Artikel wird die Unmöglichkeit des Tupelverständnisses in Python aufgrund von Syntax -Mehrdeutigkeiten erörtert. Alternativen wie die Verwendung von Tuple () mit Generatorausdrücken werden vorgeschlagen, um Tupel effizient zu erstellen (159 Zeichen)

Der Artikel erläutert Module und Pakete in Python, deren Unterschiede und Verwendung. Module sind einzelne Dateien, während Pakete Verzeichnisse mit einer __init__.py -Datei sind, die verwandte Module hierarchisch organisieren.

In Artikel werden Docstrings in Python, deren Nutzung und Vorteile erörtert. Hauptproblem: Bedeutung von DocStrings für die Code -Dokumentation und -zugriffsfunktion.

In Artikel werden Lambda -Funktionen, ihre Unterschiede zu regulären Funktionen und deren Nützlichkeit bei Programmierszenarien erläutert. Nicht alle Sprachen unterstützen sie.

In Artikel wird in Python Break, Fortsetzung und Pass erörtert, wobei ihre Rolle bei der Kontrolle der Ausführung und des Programmablaufs der Schleife erläutert wird.

In dem Artikel werden die "Pass" -Anweisung in Python, einem als Platzhalter verwendeten NULL -Operation, in Codestrukturen wie Funktionen und Klassen erörtert, die zukünftige Implementierung ohne Syntaxfehler ermöglicht.

In Artikel werden die Übergabe von Funktionen als Argumente in Python erläutert und Vorteile wie Modularität und Anwendungsfälle wie Sortier und Dekorateure hervorheben.

Artikel erörtert / und // Betreiber in Python: / for True Division, // für die Bodenabteilung. Hauptproblem ist das Verständnis der Unterschiede und Anwendungsfälle.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software
