كيفية حساب الارتباط المتداول في الباندا: مع الأمثلة


الارتباطات المتداولة هي الارتباطات بين سلسلتين زمنيتين عبر نافذة منزلقة. إحدى فوائد هذا النوع من الارتباط هو أنه يمكنك تصور الارتباط بين سلسلتين زمنيتين مع مرور الوقت.

يشرح هذا البرنامج التعليمي كيفية حساب وتصور الارتباطات المتداولة لـ pandas DataFrame في Python.

كيفية حساب الارتباطات المتداول في الباندا

لنفترض أن لدينا إطار البيانات التالي الذي يعرض إجمالي عدد المنتجات المباعة لمنتجين مختلفين ( x و y ) خلال فترة 15 شهرًا:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd.DataFrame({'month': np. arange (1, 16),
                   'x': [13, 15, 16, 15, 17, 20, 22, 24, 25, 26, 23, 24, 23, 22, 20],
                   'y': [22, 24, 23, 27, 26, 26, 27, 30, 33, 32, 27, 25, 28, 26, 28]})

#view first six rows
df. head ()

  month xy
1 1 13 22
2 2 15 24
3 3 16 23
4 4 15 27
5 5 17 26
6 6 20 26

لحساب الارتباط المتداول في الباندا، يمكننا استخدام الدالة Rolling.corr() .

تستخدم هذه الوظيفة بناء الجملة التالي:

df[‘x’].rolling(width).corr(df[‘y’])

ذهب:

  • df: اسم إطار البيانات
  • width: عدد صحيح يحدد عرض النافذة للارتباط المنزلق
  • x، y: اسما العمودين لحساب الارتباط المنزلق بينهما

فيما يلي كيفية استخدام هذه الدالة لحساب الارتباط المتجدد للمبيعات لمدة 3 أشهر بين المنتج x والمنتج y :

 #calculate 3-month rolling correlation between sales for x and y
df[' x ']. rolling (3). corr (df[' y '])

0 NaN
1 NaN
2 0.654654
3 -0.693375
4 -0.240192
5 -0.802955
6 0.802955
7 0.960769
8 0.981981
9 0.654654
10 0.882498
11 0.817057
12 -0.944911
13 -0.327327
14 -0.188982
dtype:float64

تقوم هذه الدالة بإرجاع الارتباط بين مبيعات منتجين خلال الأشهر الثلاثة الماضية. على سبيل المثال:

  • وكان ارتباط المبيعات في الأشهر 1-3 0.654654 .
  • كان ارتباط المبيعات في الأشهر 2-4 هو -0.693375.
  • وكان ارتباط المبيعات في الأشهر 3-5 -0.240192.

وما إلى ذلك وهلم جرا.

يمكننا بسهولة تعديل هذه الصيغة لحساب الارتباط المتداول لفترة زمنية مختلفة. على سبيل المثال، يوضح التعليمة البرمجية التالية كيفية حساب الارتباط المتجدد للمبيعات لمدة 6 أشهر بين المنتجين:

 #calculate 6-month rolling correlation between sales for x and y
df[' x ']. rolling (6). corr (df[' y ']) 
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
5 0.558742
6 0.485855
7 0.693103
8 0.756476
9 0.895929
10 0.906772
11 0.715542
12 0.717374
13 0.768447
14 0.454148
dtype:float64

تقوم هذه الدالة بإرجاع الارتباط بين مبيعات المنتجين خلال الأشهر الستة الماضية. على سبيل المثال:

  • وكان ارتباط المبيعات في الأشهر 1-6 0.558742 .
  • كان ارتباط المبيعات في الأشهر 2-7 هو 0.485855.
  • كان ارتباط المبيعات في الأشهر 3-8 هو 0.693103.

وما إلى ذلك وهلم جرا.

تعليقات

فيما يلي بعض الملاحظات حول الوظائف المستخدمة في هذه الأمثلة:

  • يجب أن يكون العرض (أي النافذة المنسدلة) مساويًا أو أكبر من 3 لحساب الارتباطات.
  • يمكنك العثور على الوثائق الكاملة لوظيفة Rolling.corr() هنا .

مصادر إضافية

كيفية حساب الارتباط المنزلق في R
كيفية حساب الارتباط المتداول في إكسل

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *