Korelacja tocząca pand

Korelacja tocząca pand

„Korelacje toczące są uzyskiwane przez obliczenie korelacji między dwoma szeregami czasowymi za pomocą okna toczenia. Możemy określić, czy dwa skorelowane szeregi czasowe od czasu do siebie odejdą od siebie za pomocą korelacji toczenia."

Znalezienie korelacji toczącego się w PandaS DataFrame można wykonać za pomocą „DataFrame_Object.walcowanie().metoda corr () ”. Na tej ilustracji nauczymy się obliczać korelację toczącego się na pandasce z podstawową techniką.

Składnia:

Na dwóch ramach danych:

DataFrame_Object1.Rolling (szerokość).corr (dataFrame_Object2)

(LUB)

Na dwóch kolumnach w ramce danych:

DataFrame_Object ['kolumn1'].Rolling (szerokość).corr (dataFrame_Object ['kolumn2'])


Ważną rzeczą do zapamiętania przy określaniu wartości dla kolumn jest to, że długość wartości dla wszystkich kolumn zawartych w ramce danych musi być równa. Jeśli umieścimy nierówną długość wartości, program nie wykonuje.

Przykład 1: skoreluj kolumnę 1 vs kolumna 2

Utwórzmy ramkę danych z 3 kolumnami i 10 wierszy i skorelujmy ilość z kolumną kosztów przez 2 dni.

importować pandy
# Utwórz Pandy DataFrame do obliczania korelacji
# z 3 kolumnami.
Analytics = pandy.DataFrame („Produkt”: [11 22,33,44,55,66,77,88,99,110],
„Ilość”: [200,455 800 900 900,122 22,700,700,80 500],
„Koszt”: [2400,4500,5090 600,8000,7800,1100,2233,500 1100])
# Skoreluj ilość z kolumną kosztów przez 2 dni.
Analytics [„skorelowane”] = Analytics [„Ilości”].Rolling (2).corr (Analytics [„koszt”])
Drukuj (Analytics)


Wyjście:

Koszt ilości produktu skorelowany
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


Korelacja przez 2 dni, 200 do 400 jest nan i tak dalej, na której umieszczono w kolumnie „skorelowanej”.

Przykład 2: Wizualizacja

Utwórzmy ramkę danych z 3 kolumnami i 5 wierszy i skorelujmy „sprzedaż” vs „Product_Likes”.

Użyj Seaorn, aby zobaczyć korelację na wykresie i uzyskać współczynnik korelacji Pearsona.

importować pandy
importować Seaorn
z statystyk importu Scipy
# Utwórz Pandy DataFrame do obliczania korelacji
# z 3 kolumnami.
Analytics = pandy.DataFrame („Nazwa produktu”: [„tv”, „stal”, „plastik”, „skóra”, „inni”],
„Product_Likes”: [100,20,45,67,9],
„Sprzedaż”: [2300,890,1400,1800 200])
Drukuj (Analytics)
wydrukować()
# Zobacz współczynnik korelacji
Drukuj (statystyki.Pearsonr (Analytics [„Sales”], Analytics ['produkt_likes'])))
wydrukować()
# Teraz zobacz sprzedaż korelacji w porównaniu z produktem
Seorborn.lmplot (x = "sales", y = "product_likes", data = Analytics)


Wyjście:

Nazwa produktu Product_Likes Sprzedaż
0 TV 100 2300
1 stal 20 890
2 plastik 45 1400
3 skóra 67 1800
4 inne 9 200
(0.9704208315867275, 0.006079620327457793)



Teraz możesz zobaczyć korelację między sprzedażą a produktem.

Otrzymajmy teraz korelację toczniową dla tych dwóch kolumn przez 3 dni.

Kod na przykład 2:

# Skoreluj sprzedaż z kolumną Product_Likes przez 5 dni.
Analytics [„skorelowane”] = Analytics [„sprzedaż”].Rolling (3).corr (Analytics ['produkt_likes'])
Drukuj (Analytics)


Wyjście:

Nazwa produktu Product_Likes SPRZEDAŻ SPRZEDAŻY
0 TV 100 2300 NAN
1 stal 20 890 nan
2 plastik 45 1400 0.998496
3 skóra 67 1800 0.999461
4 inne 9 200 0.989855


Widać, że te dwie kolumny są wysoce skorelowane.

Przykład 3: Różne ramki danych

Utwórzmy 2Frame z 1 kolumną i skorelujmy je.

importować pandy
importować Seaorn
z statystyk importu Scipy
Analytics1 = pandy.DataFrame („Sales”: [2300,890,1400,1800,200,2000,340,56,78,0]))
Analytics2 = pandy.DataFrame ('Product_Likes': [100,20,45,67,9,90,8,1,3,0]))
# Zobacz współczynnik korelacji dla powyższych dwóch ram danych
Drukuj (statystyki.PEARSONR (Analytics1 [„Sales”], Analytics2 ['produkt_likes'])))
# Skoreluj sprzedaż z data_kreeframeframe
Drukuj (Analytics1 [„sprzedaż”].Rolling (5).corr (Analytics2 ['produkt_likes'])))


Wyjście:

(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


Widać, że te dwie kolumny są wysoce skorelowane.

Wniosek

Ta dyskusja dotyczy obliczania okna toczenia, a następnie znalezienia korelacji Pandas DataFrame. Aby wprowadzić oba te koncepcje, Pandas oferuje praktyczną „DataFrame.walcowanie().metoda corr () ”. Aby wygoda ucznia lepiej zrozumieć proces, podaliśmy trzy praktycznie wdrożone przykłady wraz z wizualizacją i modułem Searborn. Każdy przykład jest wyciągnięty ze szczegółowym wyjaśnieniem kroków. Możesz zastosować go do różnych kolumn w jednej ramce danych, albo możesz użyć tych samych kolumn z różnych ramek danych; Wszystko zależy od twoich wymagań.