كيفية حساب الارتباط المتداول في الباندا: مع الأمثلة
الارتباطات المتداولة هي الارتباطات بين سلسلتين زمنيتين عبر نافذة منزلقة. إحدى فوائد هذا النوع من الارتباط هو أنه يمكنك تصور الارتباط بين سلسلتين زمنيتين مع مرور الوقت.
يشرح هذا البرنامج التعليمي كيفية حساب وتصور الارتباطات المتداولة لـ 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
كيفية حساب الارتباط المتداول في إكسل