Panda Rolling Correlation

Panda Rolling Correlation

“Le correlazioni di rotolamento sono ottenute calcolando le correlazioni tra due serie temporali utilizzando una finestra di rotolamento. Possiamo identificare se due serie temporali correlate si divergono l'una dall'altra nel tempo usando le correlazioni di rotolamento."

Trovare la correlazione di rotolamento su un Frame dati Pandas può essere eseguita utilizzando "DataFrame_Object.rolling ().corr () "metodo. In questa illustrazione, impareremo a calcolare la correlazione di rotolamento su un telaio di dati Panda con la tecnica di base.

Sintassi:

Su due frame di dati:

DataFrame_Object1.rotolamento (larghezza).corr (dataframe_object2)

(O)

Su due colonne in un telaio di dati:

Dataframe_object ['column1'].rotolamento (larghezza).corr (dataframe_object ['column2'])


La cosa importante da ricordare mentre si specifica i valori per le colonne è che la lunghezza dei valori per tutte le colonne che sono contenute nel frame dati devono essere uguali. Se inseriamo una durata ineguale dei valori, il programma non eseguirà.

Esempio 1: correlare colonna1 vs colonna2

Creiamo un frame dati con 3 colonne e 10 righe e correggiamo la quantità con la colonna di costo per 2 giorni.

Panda di importazione
# Crea il frame dati panda per il calcolo della correlazione
# con 3 colonne.
Analytics = Panda.DataFrame ('Product': [11,22,33,44,55,66,77,88,99,110],
'Quantity': [200.455.800.900.900.122.400.700.80.500],
'Costo': [2400.4500.5090.600.8000.7800.1100.2233.500.1100])
# Correlare la quantità con la colonna dei costi per 2 giorni.
Analytics ['Correlated'] = Analytics ['Quantity'].rotolando (2).Corr (Analytics ['cost'])
Stampa (Analytics)


Produzione:

Costo della quantità di prodotto correlata
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


La correlazione per 2 giorni, da 200 a 400, è NAN e quindi su cui sono collocati nella colonna "correlata".

Esempio 2: visualizzazione

Creiamo un frame dati con 3 colonne e 5 righe e correlando le "vendite" vs "Product_Likes".

Usa il Seaborn per visualizzare la correlazione in un grafico e ottenere il coefficiente di correlazione di Pearson.

Panda di importazione
Import Seaborn
dalle statistiche di importazione di Scipy
# Crea il frame dati panda per il calcolo della correlazione
# con 3 colonne.
Analytics = Panda.DataFrame ('Nome prodotto': ['TV', 'Steel', 'Plastic', 'Leather', 'altri'],
'Product_likes': [100,20,45,67,9],
'Vendite': [2300.890.1400.1800.200])
Stampa (Analytics)
stampa()
# Vedi il coefficiente di correlazione
Stampa (statistiche.Pearsonr (Analytics ['Sales'], Analytics ['Product_Likes']))
stampa()
# Ora vedi le vendite di correlazione vs Product_Likes
Seaborn.LMPlot (x = "Sales", y = "Product_Likes", Data = Analytics)


Produzione:

Nome prodotto Product_Likes Vendite
0 TV 100 2300
1 acciaio 20 890
2 plastica 45 1400
3 pelle 67 1800
4 altri 9 200
(0.9704208315867275, 0.006079620327457793)



Ora puoi vedere la correlazione tra vendite e product_likes.

Ottiamo ora la correlazione di rotolamento per queste due colonne per 3 giorni.

Codice per esempio 2:

# Correlare le vendite con la colonna Product_Likes per 5 giorni.
Analytics ['Correlated'] = Analytics ['Sales'].rotolando (3).Corr (Analytics ['Product_Likes'])
Stampa (Analytics)


Produzione:

Nome prodotto Product_Likes Le vendite correlate
0 TV 100 2300 NAN
1 acciaio 20 890 nan
2 plastica 45 1400 0.998496
3 pelle 67 1800 0.999461
4 altri 9 200 0.989855


Puoi vedere che queste due colonne sono altamente correlate.

Esempio 3: diversi temi di dati

Creiamo 2 frame dati con 1 colonna ciascuno e li correggiamo.

Panda di importazione
Import Seaborn
dalle statistiche di importazione di Scipy
Analytics1 = Panda.DataFrame ('Sales': [2300.890.1400.1800.200.2000.340,56,78,0])
Analytics2 = Panda.DataFrame ('Product_Likes': [100,20,45,67,9,90,8,1,3,0])
# Consultare il coefficiente di correlazione per i due frame di dati sopra
Stampa (statistiche.Pearsonr (Analytics1 ['Sales'], Analytics2 ['Product_Likes']))
# Correlare le vendite con Product_Likes DataFrame
Stampa (Analytics1 ['Sales'].rotolando (5).corr (analitics2 ['product_likes'])


Produzione:

(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


Puoi vedere che queste due colonne sono altamente correlate.

Conclusione

Questa discussione ruota attorno al calcolo della finestra di rotolamento e quindi a trovare la correlazione di un frame dati Panda. Per mettere in pratica entrambi questi concetti, Panda offre un pratico "Frame di dati.rolling ().corr () "metodo. Per comodità dello studente comprendere meglio il processo, abbiamo fornito tre esempi praticamente implementati insieme alla visualizzazione e al modulo Searborn. Ogni esempio è estratto con una spiegazione dettagliata dei passaggi. È possibile applicarlo a colonne diverse in un singolo frame di dati oppure è possibile utilizzare le stesse colonne da diversi frame di dati; Tutto dipende dalle tue esigenze.