In der Data Science ist es von entscheidender Bedeutung, herauszufinden und zu quantifizieren, in welchem Ausmaß zwei Variablen miteinander verbunden sind. Diese Beziehungen können komplex sein und sind nicht unbedingt direkt sichtbar. Einige dieser Abhängigkeiten beeinträchtigen jedoch die Leistung von Machine-Learning-Algorithmen wie beispielsweise linearen Regressionen. Es ist daher unerlässlich, die eigenen Daten optimal vorzubereiten.
Wir werden hier sehen, wie man die Abhängigkeit zwischen zwei kategorialen Variablen und zwischen kategorialen und stetigen Variablen erhält.
Dafür müssen wir uns zunächst in Erinnerung rufen, dass eine kategoriale Variable eine Variable ist, die eine endliche Anzahl unterschiedlicher Kategorien oder Gruppen besitzt. Zum Beispiel das Geschlecht von Personen, die Art des Materials oder die Zahlungsweise. Im Gegensatz dazu können kontinuierliche Variablen theoretisch eine unendliche Anzahl von Werten annehmen.
💡Auch interessant:
Korrelation zwischen zwei kategorialen Variablen:
Um festzustellen, ob zwei kategoriale Variablen miteinander in Beziehung stehen, wird der berühmte Chi-Quadrat-Test verwendet. Für diejenigen, die mit statistischen Tests nicht vertraut sind, keine Panik!
Ein statistischer Test ist ein Verfahren zur Entscheidungsfindung zwischen zwei Hypothesen.
Bei diesem Verfahren wird eine statistische Hypothese, die sogenannte Nullhypothese H0, auf der Grundlage eines Datensatzes abgelehnt oder nicht abgelehnt.
In dem hier behandelten Test lautet die Nullhypothese einfach „die beiden getesteten Variablen sind unabhängig“. Schließlich wird der Test von einer Teststatistik begleitet, die zur Entscheidung beiträgt, ob die Nullhypothese abgelehnt wird oder nicht. Diese Statistik hat aufgrund der Art und Weise, wie der Test aufgebaut ist, den positiven Nebeneffekt, dass sie einer Chi-Quadrat-Verteilung mit einem gewissen Freiheitsgrad folgt.
Aber wie entscheidet man, ob die Nullhypothese abgelehnt wird oder nicht?
Ohne auf mathematische Details einzugehen, hat jeder statistische Test einen sogenannten p-Wert. Man kann ihn sich als Referenzwert vorstellen, um zu entscheiden, ob die Nullhypothese abgelehnt wird oder nicht. Wenn der p-Wert unter 5% liegt, wird die Nullhypothese abgelehnt. Der Schwellenwert von 5% ist in der Praxis üblich, kann aber je nach Branche variieren.
In Python lässt sich der Test mithilfe der Bibliothek scipy und ihrer Funktion chi2_contingency leicht implementieren. Sie ermöglicht es, schnell den p-Wert des Tests sowie die Statistik und den zugehörigen Freiheitsgrad zu erhalten. In der Praxis erfordert der Chi-Quadrat-Test im Vorfeld ein wenig Arbeit mit den Daten. Um den Test durchführen zu können, muss zunächst die Kontingenztabelle bestimmt werden. Das ist eine Kreuztabelle zwischen den Modalitäten der beiden Variablen. Sie lässt sich leicht mit der Funktion crosstab von Pandas erstellen. Anschließend führt man den Test mit Hilfe der Kontingenztabelle durch :
In unserem obigen Beispiel liegt der p-Wert deutlich unter 5%, sodass wir die Hypothese, dass die beiden getesteten Variablen unabhängig sind, ablehnen können.
Schließlich kann man auch den Grad der Korrelation zwischen den beiden Variablen messen, indem man Cramers V verwendet. Cramers V wird mithilfe der Teststatistik, des Freiheitsgrads und der Dimensionen der Kontingenztabelle berechnet. Es gibt einen Wert zwischen 0 und 1 zurück. Wenn der zurückgegebene Wert größer als 0,9 ist, gilt die Beziehung als sehr stark. Wenn der Wert kleiner als 0,10 ist, kann man die Beziehung als schwach bezeichnen.
Korrelation zwischen zwei stetigen Variablen:
Wie bei den kategorialen Variablen gibt es einen Test, um festzustellen, ob zwei kontinuierliche Variablen unabhängig voneinander sind: den Pearson-Korrelationstest. Die zu testende Nullhypothese ist identisch: „Die beiden getesteten Variablen sind unabhängig“. Wie beim Chi-Quadrat-Test gibt es auch hier eine Teststatistik und einen p-Wert, der darüber entscheidet, ob die Nullhypothese abgelehnt wird oder nicht.
Dieser Test kann sehr einfach mithilfe der scipy-Bibliothek und ihrer Funktion pearsonr implementiert werden. Es ist keine vorherige Datenarbeit erforderlich, solange die Daten keine fehlenden Werte enthalten. Hier ein Beispiel für eine Implementierung mit python:
In unserem Beispiel ist der p-Wert kleiner als 5%. Daraus lässt sich ableiten, dass die Variablen nicht unabhängig sind. Der Pearson-Koeffizient misst den Grad der Korrelation zwischen den beiden Variablen. Er gibt einen Wert zwischen -1 und 1 zurück. Wenn er nahe bei 1 liegt, bedeutet dies, dass die Variablen positiv korreliert sind, nahe bei 0, dass die Variablen unkorreliert sind, und nahe bei -1, dass sie negativ miteinander korrelieren. In unserem Beispiel hat der Koeffizient einen Wert von 0,80319. Dies bedeutet, dass die Variablen stark korreliert sind.
Korrelation zwischen einer kontinuierlichen Variable und einer kategorialen Variable:
Um diese Art von Korrelation zu untersuchen, greift man auf die Ein-Faktor-Varianzanalyse (ANOVA) zurück, die den Vergleich von Stichprobenmittelwerten ermöglicht.
Das Ziel dieses Tests ist es, auf den Einfluss einer kategorialen Variable auf die Gesetzmäßigkeit einer zu erklärenden kontinuierlichen Variable zu schließen.
Stelle dir vor, dass du über drei Variablen verfügst. Die erste stellt eine Kundennummer dar, die zweite eine Kategorie (1,2 oder 3) und die letzte die Ausgaben.
👉Die Frage, die man sich stellen könnte: Hat die Variable Kategorie einen Einfluss auf die Höhe der Ausgaben?
Bezeichnen wir µ1, µ2 und µ3 als die Mittelwerte der ausgegebenen Beträge für jede der drei Kategorien.
Eine einfache Überlegung lautet: Wenn die Variable Kategorie keinen Einfluss auf die Ausgaben hat, dann sollten die Mittelwerte gleich sein. Mit anderen Worten: µ1 = µ2 = µ3.
Dies ist genau die Hypothese, die wir testen, wenn wir die Varianzanalyse verwenden. Wie der Chi-Quadrat– und der Pearson-Test wird auch dieser Test von einer Teststatistik und einem p-Wert begleitet, der bestimmt, ob die Nullhypothese abgelehnt wird oder nicht.
Dieser Test lässt sich leicht in Python implementieren, indem man die Bibliothek statsmodels verwendet. Hier ist ein Beispiel für eine Implementierung:
In unserem Beispiel informiert df über den Freiheitsgrad der Teststatistik F, die einer Fisher-Verteilung folgt. PR(>F) gibt den p-Wert des Tests an. Dieser ist kleiner als 5%. Daraus schließen wir, dass die Variable pledged einen Einfluss auf main_category hat.
Du hast nun alle nötigen Kenntnisse, um Korrelationen innerhalb eines Datensatzes zu untersuchen. DataScientest wird dir die Möglichkeit bieten, noch einen Schritt weiter zu gehen, indem du ein Datenprojekt von A bis Z durchführst.