كيفية حساب الارتباط التلقائي في بايثون


يقيس الارتباط التلقائي درجة التشابه بين السلسلة الزمنية والنسخة المتأخرة من نفسها على فترات زمنية متتالية.

ويطلق عليه أيضًا أحيانًا “الارتباط التسلسلي” أو “الارتباط المتأخر” لأنه يقيس العلاقة بين القيم الحالية للمتغير وقيمه التاريخية.

عندما يكون الارتباط الذاتي في سلسلة زمنية مرتفعًا، يصبح من السهل التنبؤ بالقيم المستقبلية بمجرد الإشارة إلى القيم السابقة.

كيفية حساب الارتباط التلقائي في بايثون

لنفترض أن لدينا السلسلة الزمنية التالية في بايثون والتي توضح قيمة متغير معين لمدة 15 فترة مختلفة:

 #define data
x = [22, 24, 25, 25, 28, 29, 34, 37, 40, 44, 51, 48, 47, 50, 51]

يمكننا حساب الارتباط التلقائي لكل تأخير في السلسلة الزمنية باستخدام الدالة acf() من مكتبة statsmodels:

 import statsmodels.api as sm

#calculate autocorrelations
sm.tsa.acf(x)

array([ 1. , 0.83174224, 0.65632458, 0.49105012, 0.27863962,
        0.03102625, -0.16527446, -0.30369928, -0.40095465, -0.45823389,
       -0.45047733])

وطريقة تفسير النتيجة هي كما يلي:

  • الارتباط الذاتي عند التأخر 0 هو 1 .
  • الارتباط التلقائي في التأخر 1 هو 0.8317 .
  • الارتباط الذاتي في التأخر 2 هو 0.6563 .
  • الارتباط الذاتي في التأخر 3 هو 0.4910 .

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

يمكننا أيضًا تحديد عدد الفترات الزمنية التي سيتم استخدامها مع الوسيطة nlags :

 sm.tsa.acf(x, nlags= 5 )

array([1.0, 0.83174224, 0.65632458, 0.49105012, 0.27863962, 0.03102625])

كيفية رسم وظيفة الارتباط التلقائي في بايثون

يمكننا رسم دالة الارتباط التلقائي لسلسلة زمنية في بايثون باستخدام الدالة tsaplots.plot_acf() من مكتبة statsmodels:

 from statsmodels.graphics import tsaplots
import matplotlib.pyplot as plt

#plot autocorrelation function
fig = tsaplots.plot_acf(x, lags=10)
plt.show() 

وظيفة الارتباط التلقائي في بايثون

يعرض المحور السيني عدد الفترات الزمنية ويعرض المحور الصادي الارتباط التلقائي عند هذا العدد من الفترات الزمنية. افتراضيًا، يبدأ المخطط عند lag = 0 وسيكون الارتباط التلقائي دائمًا 1 عند lag = 0.

يمكننا أيضًا تكبير فترات التأخير الأولى عن طريق اختيار استخدام عدد أقل من فترات التأخير مع الوسيطة lags :

 from statsmodels.graphics import tsaplots
import matplotlib.pyplot as plt

#plot autocorrelation function
fig = tsaplots.plot_acf(x, lags= 5 )
plt.show() 

رسم وظيفة الارتباط التلقائي في بايثون

يمكنك أيضًا تغيير عنوان ولون الدوائر المستخدمة في المخطط باستخدام وسيطتي العنوان واللون :

 from statsmodels.graphics import tsaplots
import matplotlib.pyplot as plt

#plot autocorrelation function
fig = tsaplots.plot_acf(x, lags= 5, color='g', title='Autocorrelation function' )
plt.show() 

وظيفة الارتباط التلقائي في بايثون مع عنوان مخصص

يمكنك العثور على المزيد من دروس بايثون على هذه الصفحة .

Add a Comment

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