So berechnen sie die korrelation in python
Eine Möglichkeit, die Beziehung zwischen zwei Variablen zu quantifizieren, ist die Verwendung des Pearson-Korrelationskoeffizienten , der ein Maß für den linearen Zusammenhang zwischen zwei Variablen ist . Es nimmt immer einen Wert zwischen -1 und 1 an, wobei:
- -1 zeigt eine vollkommen negative lineare Korrelation zwischen zwei Variablen an
- 0 bedeutet, dass zwischen zwei Variablen keine lineare Korrelation besteht
- 1 zeigt eine vollkommen positive lineare Korrelation zwischen zwei Variablen an
Je weiter der Korrelationskoeffizient von Null entfernt ist, desto stärker ist die Beziehung zwischen den beiden Variablen.
In diesem Tutorial wird erläutert, wie Sie die Korrelation zwischen Variablen in Python berechnen.
So berechnen Sie die Korrelation in Python
Um die Korrelation zwischen zwei Variablen in Python zu berechnen, können wir die Funktion Numpy corrcoef() verwenden.
import numpy as np np.random.seed(100) #create array of 50 random integers between 0 and 10 var1 = np.random.randint(0, 10, 50) #create a positively correlated array with some random noise var2 = var1 + np.random.normal(0, 10, 50) #calculate the correlation between the two arrays np.corrcoef(var1, var2) [[ 1. 0.335] [ 0.335 1. ]]
Es ist ersichtlich, dass der Korrelationskoeffizient zwischen diesen beiden Variablen 0,335 beträgt, was einer positiven Korrelation entspricht.
Standardmäßig erzeugt diese Funktion eine Matrix von Korrelationskoeffizienten. Wenn wir nur den Korrelationskoeffizienten zwischen den beiden Variablen zurückgeben wollten, könnten wir die folgende Syntax verwenden:
np.corrcoef(var1, var2)[0,1] 0.335
Um zu testen, ob diese Korrelation statistisch signifikant ist, können wir den mit dem Pearson-Korrelationskoeffizienten verbundenen p-Wert mithilfe der Scipy-Funktion „ pearsonr()“ berechnen, die sowohl den Pearson-Korrelationskoeffizienten als auch den zweiseitigen p-Wert zurückgibt.
from scipy.stats.stats import pearsonr pearsonr(var1, var2) (0.335, 0.017398)
Der Korrelationskoeffizient beträgt 0,335 und der zweiseitige p-Wert beträgt 0,017 . Da dieser p-Wert kleiner als 0,05 ist, würden wir daraus schließen, dass eine statistisch signifikante Korrelation zwischen den beiden Variablen besteht.
Wenn Sie die Korrelation zwischen mehreren Variablen in einem Pandas DataFrame berechnen möchten, können Sie einfach die Funktion .corr() verwenden.
import pandas as pd data = pd.DataFrame(np.random.randint(0, 10, size=(5, 3)), columns=['A', 'B', 'C']) data ABC 0 8 0 9 1 4 0 7 2 9 6 8 3 1 8 1 4 8 0 8 #calculate correlation coefficients for all pairwise combinations data.corr() ABC A 1.000000 -0.775567 -0.493769 B -0.775567 1.000000 0.000000 C -0.493769 0.000000 1.000000
Und wenn Sie nur die Korrelation zwischen zwei bestimmten Variablen im DataFrame berechnen möchten, können Sie die Variablen angeben:
data['A'].corr(data['B']) -0.775567
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben in Python ausführen:
So erstellen Sie eine Korrelationsmatrix in Python
So berechnen Sie die Spearman-Rangkorrelation in Python
So berechnen Sie die Autokorrelation in Python