Pandas Rolling Correlation

Pandas Rolling Correlation

„Rollenkorrelationen werden erhalten, indem die Korrelationen zwischen zwei Zeitreihen unter Verwendung eines Rollfensters berechnet werden. Wir können feststellen, ob zwei korrelierte Zeitreihen im Laufe der Zeit mithilfe von Rolling -Korrelationen voneinander abweichen.”

Das Finden der Rolling -Korrelation in einem Pandas -Datenframe kann mit dem „DataFrame_Object.rolling ().corr () ”Methode. In dieser Illustration werden wir lernen, die rollende Korrelation auf einem Pandas -Datenframe mit der Basistechnik zu berechnen.

Syntax:

Auf zwei Datenrahmen:

DataFrame_Object1.Rollen (Breite).Corr (DataFrame_Object2)

(ODER)

Auf zwei Spalten in einem Datenrahmen:

DataFrame_Object ['Spalte1'].Rollen (Breite).Corr (DataFrame_Object ['column2'])


Das Wichtigste, was Sie beim Angeben der Werte für die Spalten angeben sollten, ist, dass die Länge der Werte für alle Spalten, die im Datenrahmen enthalten sind. Wenn wir eine ungleiche Wertelänge setzen, wird das Programm nicht ausgeführt.

Beispiel 1: Korrelate column1 vs column2

Erstellen wir einen Datenrahmen mit 3 Spalten und 10 Zeilen und korrelieren Sie die Menge mit der Kostenspalte für 2 Tage.

Pandas importieren
# Erstellen Sie Pandas DataFrame zur Berechnung der Korrelation
# mit 3 Spalten.
Analytics = Pandas.DataFrame ('Produkt': [11,22,33,44,55,66,77,88,99,110],
'Quantität': [200.455.800.900.900.122.400.700.80.500],
'Kosten': [2400.4500.5090.600.8000.7800.1100.2233.500.1100])))
# Korrelate die Menge mit der Kostenspalte für 2 Tage.
Analytics ['korreliert'] = Analytics ['Quantity'].Rolling (2).Corr (Analytics ['Kosten'])
drucken (Analytics)


Ausgang:

Produktmengenkosten korrelierten
0 11 200 2400 Nan
1 22 455 4500 1.0
2 33 800 5090 1.0
3 44 900 600 -1.0
4 55 900 8000 Nan
5 66 122 7800 1.0
6 77 400 1100 -1.0
7 88 700 2233 1.0
8 99 80 500 1.0
9 110 500 1100 1.0


Die Korrelation für 2 Tage, 200 bis 400, ist NAN usw. in der Spalte „korrelierter“.

Beispiel 2: Visualisierung

Erstellen wir einen Datenrahmen mit 3 Spalten und 5 Zeilen und korrelieren Sie die "Verkauf" gegen "product_likes".

Verwenden Sie das Seeborn, um die Korrelation in einem Diagramm zu sehen und den Pearson -Korrelationskoeffizienten zu erhalten.

Pandas importieren
Seeborn importieren
aus Scipy -Importstatistiken
# Erstellen Sie Pandas DataFrame zur Berechnung der Korrelation
# mit 3 Spalten.
Analytics = Pandas.DataFrame ('Produktname': ['TV', 'Steel', 'Plastic', 'Leder', 'Andere'],
'Product_likes': [100,20,45,67,9],
'Umsatz': [2300.890.1400.1800.200])
drucken (Analytics)
drucken()
# Siehe den Korrelationskoeffizienten
Druck (Statistiken.Pearsonr (Analytics ['Sales'], Analytics ['product_likes'])))
drucken()
# Sehen Sie nun die Korrelationsverkäufe gegen product_likes an
Seeborn.lmPlot (x = "Vertrieb", y = "product_likes", data = Analytics)


Ausgang:

Produktname Produkt_Likes Verkäufe
0 TV 100 2300
1 Stahl 20 890
2 Plastik 45 1400
3 Leder 67 1800
4 andere 9 200
(0.9704208315867275, 0.006079620327457793)



Jetzt sehen Sie die Korrelation zwischen Verkauf und Product_likes.

Lassen Sie uns nun die rollende Korrelation für diese beiden Säulen für 3 Tage erhalten.

Code für Beispiel 2:

# Korrelate Verkäufe mit der Spalte product_likes für 5 Tage.
Analytics ['korreliert'] = Analytics ['Vertrieb'].Rollen (3).Corr (Analytics ['product_likes'])
drucken (Analytics)


Ausgang:

Produktname Produkt_Likes Verkäufe korrelierten
0 TV 100 2300 Nan
1 Stahl 20 890 Nan
2 Kunststoff 45 1400 0.998496
3 Leder 67 1800 0.999461
4 andere 9 200 0.989855


Sie können sehen, dass diese beiden Spalten stark korreliert sind.

Beispiel 3: Verschiedene Datenrahmen

Erstellen wir 2 Datenrahmen mit jeweils 1 Spalte und korrelieren Sie sie.

Pandas importieren
Seeborn importieren
aus Scipy -Importstatistiken
Analytics1 = Pandas.DataFrame ('Sales': [2300.890.1400.1800.200,2000.340,56,78,0])
Analytics2 = Pandas.DataFrame ('product_likes': [100,20,45,67,90,8,1,3,0])
# Sehen Sie sich den Korrelationskoeffizienten für die beiden oben genannten Datenrahmen an
Druck (Statistiken.Pearsonr (Analytics1 ['Sales'], Analytics2 ['product_likes'])))
# Verkäufe mit Product_Likes DataFrame korrelieren
Print (Analytics1 ['Vertrieb'].Rollen (5).Corr (Analytics2 ['product_likes'])))


Ausgang:

(0.9806646612423284, 5.97410226154508e-07)
0 nan
1 Nan
2 Nan
3 Nan
4 0.970421
5 0.956484
6 0.976242
7 0.990068
8 0.996854
9 0.996954
DTYPE: Float64


Sie können sehen, dass diese beiden Spalten stark korreliert sind.

Abschluss

Diese Diskussion dreht sich um die Berechnung des Rollfenster. Um diese beiden Konzepte in die Praxis umzusetzen, bietet Pandas einen praktischen „DataFrame“.rolling ().corr () ”Methode. Um den Komfort des Lernenden, den Prozess besser zu verstehen. Jedes Beispiel wird mit einer detaillierten Erklärung der Schritte ausgezeichnet. Sie können es entweder auf verschiedene Spalten in einem einzigen Datenrahmen anwenden oder dieselben Spalten aus verschiedenen Datenrahmen verwenden. Es hängt alles von Ihren Anforderungen ab.