السلاسل الزمنية1970تأسيسي12 دقيقة قراءة

تحليل السلاسل الزمنية: التنبؤ والتحكّم

Time Series Analysis: Forecasting and Control

Box, G. E. P. · Jenkins, G. M. — Holden-Day

المشكلة

قبل عام 1970 كانت أدوات مبعثرة وبلا خيط نظري يجمعها: هذا يستخدم متوسطات متحركة، وذاك يلجأ إلى التمهيد الأُسّي، وثالث يرسم خطوط اتجاه بيده. لم يكن لدى أحد إطار يجيب عن الأسئلة الأساسية: كم من الماضي نحتاج؟ كيف نتعامل مع الاتجاهات والموسمية؟ وبعد بناء النموذج، كيف نتأكد أنه يعكس بنية البيانات فعلاً؟ كان الأمر أشبه بالتخمين — هل السلسلة انحدارية ذاتية؟ أم متوسط متحرك؟ أم خليط؟ — بلا منهج واضح للاختيار والتقدير والتحقق والتعديل.

الإسهام

جمع بوكس وجينكنز ثلاث أفكار في إطار واحد أسمياه ARIMA (الانحدار الذاتي المتكامل ذو ). جزء AR يصف كيف تعتمد القيمة الحالية على قيم سابقة. جزء I يزيل الاتجاهات فيحوّل السلسلة إلى سلسلة مستقرة. جزء MA يأخذ بالحسبان أثر أخطاء التنبؤ السابقة. والأهم أنهما رسما دورة عمل منهجية: حدّد رُتب النموذج من مخططات ، قدّر المعاملات بالإمكانية العظمى، افحص البواقي، وإن وجدت فيها بنية لم يلتقطها النموذج عُد وعدّل. هذه الدورة عُرفت لاحقاً بمنهجية بوكس-جينكنز.

الأثر

صارت منهجية بوكس-جينكنز المرجع الأساسي للتنبؤ بالسلاسل الزمنية في الاقتصاد والهندسة والعلوم الطبيعية. منها انبثقت النماذج الموسمية (SARIMA) ونماذج دوال النقل وتحليل التدخلات. بل إن أساليب التعلّم العميق الحديثة مثل DeepAR وN-BEATS وProphet وAutoformer تستعير جوهر فكرة التفكيك من ARIMA وإن كانت تستبدل المعاملات الخطية بشبكات عصبية. لا تكاد توجد مكتبة تنبؤ إحصائي اليوم لا تنطلق من بوكس-جينكنز.

تخيّل أنك تراقب سطح بحيرة. أحياناً يكون ساكناً وأحياناً مضطرباً بالأمواج. الاتجاه يشبه مدّاً بطيئاً يرفع مستوى الماء كله — لا بد من التخلّص منه أولاً قبل أن تفهم حركة الأمواج. المُركَّب الانحداري الذاتي يشبه موجة تحتفظ بزخمها: إن كانت مرتفعة قبل لحظة فالأرجح أنها لا تزال مرتفعة. أما المتوسط المتحرك فيشبه حجراً يسقط في الماء: يُحدث تموّجات تدوم بضع لحظات ثم تختفي. فكرة ARIMA ببساطة: أزِل المدّ أولاً (بأخذ الفروق)، ثم صِف ما تبقّى على أنه مزيج من موجات لها ذاكرة (AR) وتموّجات تتلاشى (MA).

المشكلة: تنبؤ بلا إطار منهجي

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

كانت هناك أسئلة أساسية لم يجد لها أحد إجابة موحّدة:

  • كم من الماضي ينبغي أن يدخل في التنبؤ؟
  • كيف نتخلّص من الاتجاهات والموسمية بشكل منظّم؟
  • بعد بناء النموذج، كيف نعرف أنه يعكس بنية البيانات حقاً ولا يغفل شيئاً جوهرياً؟

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

الأساس: الاستقرارية — اللغة التي يتحدّثها ARIMA

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

في الواقع معظم السلاسل غير مستقرة: أسعار الأسهم تصعد مع الوقت، والمبيعات لها قمم موسمية، ودرجات الحرارة تتبع دورات سنوية. الحيلة التي يستخدمها ARIMA هي أخذ الفروق: اطرح كل قيمة من سابقتها. إذا كانت السلسلة الأصلية yty_t فيها اتجاه صاعد مثلاً، فسلسلة الفروق ytyt1y_t - y_{t-1} تتخلّص منه غالباً. عدد مرات أخذ الفروق يُسمّى رتبة التكامل dd — وهو ما يمثّله حرف «I» في ARIMA.

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

المُركَّب الانحداري الذاتي: السلسلة تتذكّر نفسها

الفكرة وراء المُركَّب الانحداري الذاتي بسيطة: القيمة الحالية ما هي إلا مزيج موزون من قيم سابقة. في نموذج AR(1) نقول: «قيمة اليوم تساوي نسبة من قيمة الأمس زائد ضوضاء عشوائية». وفي AR(2) نُضيف يوماً آخر: «اليوم يعتمد على الأمس وأول أمس معاً».

تخيّل الأمر كقصور ذاتي: يوم حار غالباً يتبعه يوم حار آخر، لا موجة برد مفاجئة. المعامل ϕ\phi يحدّد قوة هذه الذاكرة. حين يكون ϕ<1|\phi| < 1 تضعف الذاكرة تدريجياً والسلسلة تعود دائماً إلى متوسطها — أي أنها مستقرة. لكن حين يبلغ ϕ=1|\phi| = 1 تتحوّل السلسلة إلى مسيرة عشوائية تتجوّل بلا عودة، وهذا بالضبط ما نعنيه بعدم .

yt=c+ϕ1yt1+ϕ2yt2++ϕpytp+εty_t = c + \phi_1 y_{t-1} + \phi_2 y_{t-2} + \cdots + \phi_p y_{t-p} + \varepsilon_t
AR(p) — النموذج الانحداري الذاتي من الرتبة pالقيمة الحالية تساوي مجموعاً مُوزوناً لآخر p قيمة سابقة مع ضوضاء بيضاء ε. المعاملات φ₁…φₚ تُقدَّر من البيانات.

المُركَّب ذو المتوسط المتحرك: أصداء المفاجأة

المُركَّب الانحداري الذاتي يتذكّر القيم السابقة، أما مُركَّب المتوسط المتحرك فيتذكّر المفاجآت السابقة — أي أخطاء التنبؤ. نموذج MA(1) يقول: «قيمة اليوم تساوي المتوسط زائد نسبة من مفاجأة الأمس».

فكّر في الأمر كحجر يسقط في بركة: الصدمة (εt1\varepsilon_{t-1}) تُحدث تموّجات تؤثر في السطح لبضع خطوات زمنية ثم تختفي. هنا يكمن الفرق الجوهري عن المُركَّب الانحداري الذاتي: صدمات المتوسط المتحرك لها ذاكرة محدودة. نموذج MA(q) ينسى أي صدمة وقعت قبل أكثر من q خطوة مهما كانت ضخمة.

yt=μ+εt+θ1εt1+θ2εt2++θqεtqy_t = \mu + \varepsilon_t + \theta_1 \varepsilon_{t-1} + \theta_2 \varepsilon_{t-2} + \cdots + \theta_q \varepsilon_{t-q}
MA(q) — نموذج المتوسط المتحرك من الرتبة qالقيمة الحالية تساوي المتوسط مضافاً إليه مجموع موزون لآخر q أخطاء تنبؤ. كل معامل θ يحدّد مقدار ما تبقّى من أثر صدمة سابقة.

تجميع المكوّنات: ARIMA(p, d, q)

ARIMA يدمج الأفكار الثلاث في نموذج واحد. الخطوة الأولى: خُذ الفروق dd مرة حتى تصبح السلسلة مستقرة. الخطوة الثانية: عامل السلسلة المفروقة كعملية ARMA(p, q) تجمع ذاكرة القيم السابقة مع أثر الصدمات.

الترميز ARIMA(p, d, q) يلخّص كل شيء:

  • p = عدد حدود AR (مدى الذاكرة الزمنية)
  • d = عدد مرات أخذ الفروق (كم مرة نطرح لإزالة الاتجاه)
  • q = عدد حدود MA (كم صدمة سابقة لا يزال أثرها محسوساً)

مثلاً ARIMA(1,1,1) معناه: خُذ فرقاً واحداً لإزالة الاتجاه، ثم صِف ما تبقّى بحدّ AR واحد وحدّ MA واحد. رغم بساطة هذا التوصيف، يتبيّن أنه يعمل بشكل ممتاز مع سلاسل واقعية كثيرة.

ϕ(B)(1B)dyt=θ(B)εt\phi(B)(1 - B)^d \, y_t = \theta(B) \, \varepsilon_t
ARIMA(p, d, q) بترميز مؤثر الإزاحة الخلفيةB هو مؤثر الإزاحة الخلفية: Byₜ = yₜ₋₁. كثير الحدود φ(B) يعبّر عن جزء AR، و(1−B)ᵈ يعبّر عن أخذ الفروق، وθ(B) يعبّر عن جزء MA. هذا الترميز المكثّف يكشف البنية الجبرية بوضوح.
افتح في المختبر
حرّك أشرطة p وd وq وراقب تأثير كل مُركَّب على شكل السلسلة المُولَّدة. ستلاحظ أن AR يزيد الاستمرارية، وأخذ الفروق يزيل الاتجاه، وMA يُدخل صدمات سريعة الزوال.
تستيقظ التجربة عند وصولك…

منهجية بوكس-جينكنز: دورة منهجية متكاملة

الإسهام الأعمق لبوكس وجينكنز لم يكن النموذج الرياضي بحدّ ذاته، بل المنهجية — دورة عمل منضبطة وقابلة للتكرار. فكّر فيها كمنهج علمي مصمَّم للتنبؤ:

الخطوة 1 — التعرّف: ارسم دالة الارتباط الذاتي (ACF) ودالة (PACF) لتستنتج الرُّتب p وd وq. الأولى تقيس الارتباط الكلي عند كل تأخير، والثانية تعزل التأثير المباشر لكل تأخير بعد حذف أثر التأخيرات الوسيطة. الشكلان معاً يُعطيانك بصمة تدلّك على فئة النموذج.

الخطوة 2 — التقدير: قدّر المعاملات (φ وθ) بأسلوب الإمكانية العظمى، الذي يبحث عن القيم التي تجعل ظهور البيانات المُلاحَظة أكثر ترجيحاً في ظل النموذج.

الخطوة 3 — التشخيص: افحص البواقي. إن كان النموذج جيداً فستبدو البواقي كضوضاء بيضاء — بلا ارتباط ذاتي ولا أنماط ظاهرة. وإن بقيت فيها بنية، عُد إلى الخطوة الأولى ونقّح النموذج.

هذه الدورة — كرِّر حتى تنظف البواقي — هي ما حوّل بوكس-جينكنز من صيغة رياضية إلى منهجية حقيقية.

افتح في المختبر
تنقّل بين المراحل الثلاث لدورة بوكس-جينكنز. اضغط على أي مرحلة لاستكشاف تفاصيلها.
تستيقظ التجربة عند وصولك…

قراءة البصمات: ACF وPACF

دالتا الارتباط الذاتي (ACF) والارتباط الذاتي الجزئي (PACF) هما الأداتان الأساسيتان لتحديد رُتب نموذج ARIMA. يمكنك اعتبارهما بصمتين تكشفان عن الهوية الزمنية للسلسلة.

في عملية AR(p) نقية، يُظهر PACF قمماً واضحة عند التأخيرات من 1 إلى p ثم يسقط إلى الصفر مباشرة — تماماً كقطع دومينو تنتهي عند العمق p. في المقابل يتلاشى ACF تدريجياً بشكل أُسّي أو بتذبذبات خامدة.

في عملية MA(q) نقية ينعكس المشهد: ACF هو من يُظهر قمماً حادة حتى التأخير q ثم ينقطع، بينما PACF يتلاشى ببطء.

أما في العمليات المختلطة ARMA(p,q) فكلتا الدالتين تتلاشيان تدريجياً — وهنا يصعب التعرّف بالعين ويصبح الاعتماد على الخبرة ومعايير المعلومات مثل AIC ضرورياً.

افتح في المختبر
اختر نوع العملية (AR أو MA أو ARMA) وغيّر الرتبة. ستتحدّث مخططات ACF وPACF فوراً لتكشف البصمة المميّزة لكل نوع.
تستيقظ التجربة عند وصولك…

التقدير والتشخيص: ضبط النموذج وفحصه

بمجرد اختيار الرُّتب المرشّحة (p, d, q) ننتقل إلى التقدير. الأسلوب الذي تبنّاه بوكس وجينكنز هو تقدير الإمكانية العظمى (MLE): نبحث عن قيم المعاملات ϕ^\hat\phi وθ^\hat\theta التي تجعل البيانات المُلاحَظة أكثر ترجيحاً في ظل النموذج. في الحالة الغاوسية يتلخّص الأمر عملياً في تصغير مجموع مربعات أخطاء التنبؤ بخطوة واحدة إلى الأمام.

الخطوة الأهم تأتي بعد التقدير: فحص البواقي ε^t=yty^t\hat\varepsilon_t = y_t - \hat{y}_t. النموذج الجيد يترك بواقي تشبه ضوضاء بيضاء — قيم عشوائية مستقلة لا نمط فيها. للتحقق من ذلك نستخدم مخطط ACF للبواقي (لا ينبغي أن تظهر فيه قمم ذات دلالة)، واختبار لجنغ-بوكس (اختبار إحصائي صريح للارتباط الذاتي المتبقي)، ومخططات QQ (للتحقق من اعتدالية التوزيع).

إذا ظهرت مشكلات — كارتباط ذاتي لم يُلتقط أو تباين غير ثابت — نعود إلى نقطة البداية: نعدّل الرُّتب ونُعيد التقدير ثم الفحص. تتكرر الدورة حتى تصبح البواقي نظيفة تماماً.

التنبؤ: تقديرات بهوامش خطأ صادقة

حين يجتاز النموذج مرحلة التشخيص يصبح جاهزاً للتنبؤ. تنبؤات ARIMA مِثالية بمعنى دقيق: من بين جميع المتنبّئات الخطية، تعطي أقل متوسط مربع خطأ إذا كانت العملية الحقيقية فعلاً ARIMA.

الميزة الكبرى هنا أن ARIMA لا يعطيك رقماً واحداً بل يرفقه بفترات تنبؤ. كلما ابتعد الأفق الزمني اتّسعت هذه الفترات تعبيراً عن تنامي حالة عدم اليقين. هذا الاعتراف الصريح بالارتياب كان قفزة كبيرة مقارنة بالأساليب الأقدم التي كانت تُخرج أرقاماً نقطية دون أي مؤشر على مدى موثوقيتها.

في عمليات AR المستقرة يتقارب التنبؤ سريعاً نحو المتوسط. أما في العمليات المتكاملة (d ≥ 1) فيتّبع التنبؤ آخر اتجاه مُلاحَظ وتتّسع فترات التنبؤ بلا سقف — كأن النموذج يقول بصراحة: لا أستطيع التنبؤ بعيداً لأن السلسلة ليس لها مستوى ثابت تعود إليه.

افتح في المختبر
ولّد سلسلة زمنية واضبط عليها نموذج ARIMA ثم راقب التنبؤ. لاحظ كيف تنفتح فترات التنبؤ كمروحة كلما ابتعد الأفق.
تستيقظ التجربة عند وصولك…

ARIMA الموسمي: التقاط الأنماط المتكررة

سلاسل كثيرة في الواقع تحمل نمطاً موسمياً: مبيعات التجزئة تبلغ ذروتها في ديسمبر، واستهلاك الكهرباء يقفز كل صيف، وأعداد ركاب الطيران تتكرر بدورة سنوية. لذلك وسّع بوكس وجينكنز النموذج إلى ، ويُكتب ARIMA(p,d,q)(P,D,Q)ₘ حيث m هو طول الموسم (مثلاً 12 لبيانات شهرية أو 4 لبيانات فصلية).

الفكرة أنيقة في بساطتها: طبّق منطق AR-I-MA نفسه على مقياسين في آنٍ واحد. الجزء غير الموسمي (p,d,q) يتعامل مع الارتباطات قصيرة المدى داخل الموسم الواحد، بينما الجزء الموسمي (P,D,Q) يتعامل مع الارتباطات عبر المواسم — كيف يرتبط يناير هذا العام بيناير السنة الماضية مثلاً. والفروق الموسمية (طرح القيمة الحالية من نظيرتها قبل m خطوة) تُزيل النمط الموسمي تماماً كما تُزيل الفروق العادية الاتجاه.

المثال الشهير هو «نموذج الطيران» ARIMA(0,1,1)(0,1,1)₁₂ الذي استخدمه بوكس وجينكنز كنموذج استعراضي: حدّ MA واحد غير موسمي، وحدّ MA موسمي واحد، وفرق عادي وفرق موسمي. رغم بساطته الشديدة، يصف بيانات ركاب الطيران الدوليين بدقة لافتة ولا يزال يُستخدم كمعيار مرجعي حتى اليوم.

افتح في المختبر
جرّب نموذج الطيران بنفسك. فعّل الفروق الموسمية وراقب كيف يختفي النمط الموسمي، ثم عدّل حدّ MA الموسمي لالتقاط ما تبقّى من بنية.
تستيقظ التجربة عند وصولك…

الفكرة ذاتها في شيفرة برمجية

التنبؤ بنموذج ARIMA باستخدام statsmodelspython

مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.

import numpy as np
from statsmodels.tsa.arima.model import ARIMA
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf

# توليد بيانات عيّنة: مسيرة عشوائية + ضوضاء
np.random.seed(42)
y = np.cumsum(np.random.randn(200)) + 0.5 * np.random.randn(200)

# الخطوة 1: التعرّف — انظر إلى ACF/PACF للسلسلة المفروقة
diff_y = np.diff(y)  # الفرق الأول يزيل اتجاه المسيرة العشوائية
# plot_acf(diff_y)   # يُظهر بصمة النموذج
# plot_pacf(diff_y)  # يُظهر بصمة النموذج

# الخطوة 2: التقدير — ضبط ARIMA(1, 1, 1)
model = ARIMA(y, order=(1, 1, 1))
fitted = model.fit()
print(fitted.summary())

# الخطوة 3: التشخيص — فحص البواقي
residuals = fitted.resid
# إذا بدت البواقي كضوضاء بيضاء ← النموذج كافٍ
# وإلا ← جرّب (p, d, q) مختلفة وكرّر

# تنبؤ بـ 20 خطوة للأمام مع فترات تنبؤ بنسبة 95%
forecast = fitted.get_forecast(steps=20)
mean_forecast = forecast.predicted_mean
conf_int = forecast.conf_int(alpha=0.05)  # فترات 95%

# الفترات تتسع مع الأفق — ارتياب صادق!

لماذا غيَّرت كل شيء: إرث بوكس-جينكنز

  1. 1927

    النموذج الانحداري الذاتي ليول

    استخدم يول النماذج الانحدارية الذاتية لتحليل دورات البقع الشمسية، وأسّس بذلك فكرة أن السلسلة الزمنية يمكن أن تعتمد على قيمها السابقة.

  2. 1937

    رؤية سلوتسكي عن المتوسط المتحرك

    بيّن سلوتسكي أن جمع صدمات عشوائية متتالية (أي عملية متوسط متحرك) قادر على إنتاج دورات تشبه الدورات الاقتصادية الحقيقية، فصار المتوسط المتحرك لبنة أساسية في تحليل السلاسل الزمنية.

  3. 1938

    مبرهنة تفكيك وولد

    أثبت وولد رياضياً أن أي عملية مستقرة تُفكَّك إلى جزء حتمي وجزء MA(∞)، وهذه المبرهنة وفّرت الأساس النظري لنمذجة ARMA.

  4. 1960

    مرشِّح كالمان

    قدّم كالمان مرشّحه لتقدير الحالة في الأنظمة الديناميكية. لاحقاً تبيّن أن ARIMA يمكن صياغته كنموذج فضاء حالة وتقديره بمرشّح كالمان، ما وحّد المنهجين في إطار واحد.

  5. 1970

    بوكس وجينكنز — تحليل السلاسل الزمنية

    الكتاب المرجعي الذي جمع AR وI وMA في إطار ARIMA الموحّد، وقدّم دورة التعرّف-التقدير-التشخيص، وأضاف الامتداد الموسمي. رسم ملامح المجال لعقود قادمة.

  6. 2017

    DeepAR — تنبؤ عصبي احتمالي

    يعتمد DeepAR (من أمازون) على شبكات عصبية تكرارية تعمل بأسلوب انحداري ذاتي لإنتاج تنبؤات احتمالية. الجوهر الانحداري الذاتي مأخوذ مباشرة من ARIMA لكن مع استبدال المعاملات الخطية بشبكات عصبية مُتعلَّمة.

  7. 2017

    Prophet — تفكيك للممارسين

    يفكّك Prophet (من فيسبوك) السلسلة إلى اتجاه وموسمية وأثر عطلات — وهو تطبيق عصري لفلسفة التفكيك ذاتها التي أرساها ARIMA، لكنه مصمَّم لمحللين لا يتخصصون في السلاسل الزمنية.

  8. 2020

    N-BEATS — تنبؤ عصبي صرف

    يبني N-BEATS على طبقات من شبكات كاملة الاتصال مع روابط متبقية أمامية وخلفية. تفوّق على ARIMA والأساليب الإحصائية التقليدية في عدة معايير مرجعية دون أي افتراضات مسبقة خاصة بالسلاسل الزمنية.

  9. 2021

    Autoformer — التفكيك يلتقي بالانتباه

    يُضمّن Autoformer آلية تفكيك الاتجاه والموسمية داخل بنية محوِّل مع انتباه مبني على الارتباط الذاتي. فكرة فصل الاتجاه عن البنية المستقرة تعود جذورها إلى ARIMA.

كلّما رأيت نموذج تنبؤ يفصل السلسلة إلى اتجاه وموسمية، أو يفحص البواقي بحثاً عن أنماط لم تُلتقط، أو يُرفق تنبؤاته بفترات ارتياب — فأنت ترى بصمة بوكس وجينكنز. ARIMA كان البذرة التي نبت منها مجال التنبؤ المنهجي بالسلاسل الزمنية بأكمله.

المرجعBox, G. E. P., Jenkins, G. M.. Time Series Analysis: Forecasting and Control. Holden-Day, 1970.

مصطلحات هذه الورقة