Corrélation roulante des pandas

Corrélation roulante des pandas

«Les corrélations de roulement sont obtenues en calculant les corrélations entre deux séries chronologiques à l'aide d'une fenêtre de roulement. Nous pouvons identifier si deux séries chronologiques corrélées se divergent les unes des autres au fil du temps en utilisant des corrélations roulantes."

La recherche de la corrélation de roulement sur un pandas DataFrame peut être effectuée en utilisant le «DataFrame_Object.roulant().Corr () ”Méthode. Dans cette illustration, nous apprendrons à calculer la corrélation de roulement sur un pandas dataframe avec la technique de base.

Syntaxe:

Sur deux dataframes:

Dataframe_object1.roulement (largeur).corr (dataframe_object2)

(OU)

Sur deux colonnes dans un dataframe:

DataFrame_Object ['Column1'].roulement (largeur).corr (dataFrame_Object ['Column2'])


La chose importante à retenir lors de la spécification des valeurs des colonnes est que la longueur des valeurs de toutes les colonnes qui sont contenues dans le dataframe doivent être égales. Si nous mettons une durée inégale de valeurs, le programme ne s'exécutera pas.

Exemple 1: Corréler Colonne1 vs Column2

Créons un dataframe avec 3 colonnes et 10 lignes et corrélez la quantité avec la colonne de coût pendant 2 jours.

importer des pandas
# Créer des données Pandas pour calculer la corrélation
# avec 3 colonnes.
analytique = pandas.DataFrame ('Product': [11,22,33,44,55,66,77,88,99,110],
«Quantité»: [200 455,800,900,900,122 400,700,80,500],
«Coût»: [2400 4500 5090,600,8000,7800,1100,2233,500,1100])
# Correler la quantité avec la colonne de coût pendant 2 jours.
analytique [«corrélée»] = analytique [«quantité»].roulant (2).corr (analytique ['Cost'])
Impression (analytique)


Sortir:

Coût de quantité de produit corrélé
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 corrélation de 2 jours, 200 à 400, est nan et ainsi placée dans la colonne «corrélée».

Exemple 2: visualisation

Créons un dataframe avec 3 colonnes et 5 lignes et corrélé les «ventes» vs «product_likes».

Utilisez le Seaborn pour visualiser la corrélation dans un graphique et obtenir le coefficient de corrélation Pearson.

importer des pandas
importer marin
à partir des statistiques d'importation Scipy
# Créer des données Pandas pour calculer la corrélation
# avec 3 colonnes.
analytique = pandas.DataFrame ('Nom du produit': ['TV', 'Steel', 'Plastic', 'Leather', 'autres'],
«Product_likes»: [100,20,45,67,9],
«Ventes»: [2300 890 1400,1800,200])
Impression (analytique)
imprimer()
# Voir le coefficient de corrélation
imprimer (statistiques.Pearsonr (Analytics ['Sales'], Analytics ['Product_likes']))
imprimer()
# Voir maintenant les ventes de corrélation vs product_likes
marin.lmplot (x = "ventes", y = "product_likes", data = analytic)


Sortir:

Nom du produit Product_likes Ventes
0 TV 100 2300
1 acier 20 890
2 plastique 45 1400
3 cuir 67 1800
4 autres 9 200
(0.9704208315867275, 0.006079620327457793)



Maintenant, vous pouvez voir la corrélation entre les ventes et Product_likes.

Allons maintenant la corrélation roulante pour ces deux colonnes pendant 3 jours.

Code par exemple 2:

# Correler les ventes avec la colonne Product_likes pendant 5 jours.
analytique [«corrélé»] = analytique [«ventes»].rouler (3).corr (analytique ['product_likes'])
Impression (analytique)


Sortir:

Nom du produit Product_likes Ventes corrélées
0 TV 100 2300 NAN
1 acier 20 890 Nan
2 plastique 45 1400 0.998496
3 cuir 67 1800 0.999461
4 autres 9 200 0.989855


Vous pouvez voir que ces deux colonnes sont fortement corrélées.

Exemple 3: Différentes dataframes

Créons 2 DataFrames avec 1 colonne chacun et les corréler.

importer des pandas
importer marin
à partir des statistiques d'importation Scipy
analytique1 = pandas.DataFrame ('Sales': [2300,890,1400,1800,200,2000,340,56,78,0])
analytique2 = pandas.DataFrame ('product_likes': [100,20,45,67,9,90,8,1,3,0])
# Voir le coefficient de corrélation pour les deux données de données ci-dessus
imprimer (statistiques.Pearsonr (Analytics1 ['Sales'], Analytics2 ['Product_likes']))
# Correler les ventes avec Product_Likes DataFrame
Impression (Analytics1 ['Sales'].roulant (5).corr (analytic2 ['product_likes'])))


Sortir:

(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


Vous pouvez voir que ces deux colonnes sont fortement corrélées.

Conclusion

Cette discussion s'articule autour du calcul de la fenêtre roulante, puis de la recherche de la corrélation d'un Pandas Dataframe. Pour mettre ces deux concepts en pratique, Pandas propose un «DataFrame pratique.roulant().Corr () ”Méthode. Pour que la commodité de l'apprenant comprenne mieux le processus, nous avons donné trois exemples pratiquement mis en œuvre avec la visualisation et le module Searborn. Chaque exemple est réalisé avec une explication détaillée des étapes. Vous pouvez soit l'appliquer à différentes colonnes dans un seul DataFrame, soit vous pouvez utiliser les mêmes colonnes à partir de différentes dataframes; Tout dépend de vos exigences.