قراية
وضع الحكايات

الـ forecasting

~15 دقيقة قراية الدرس 3 من 3 في الوحدة 10

من الـ models للتنبؤات

الـ fit بتاع الـ model نص الشغل بس. الهدف العملي من تحليل الـ time series تقريبًا دايمًا هو الـ forecasting (التنبؤ): إنك تستخدم model متظبّط على بيانات اللي فات عشان تطلّع تنبؤات عن القيم الجاية. في الدرس ده بنتكلم إزاي تطلّع التنبؤات دي وتقيّمها بدقة — ومنها الـ point forecasts والـ prediction intervals ومقاييس الدقة وطرق الـ exponential smoothing ومكتبة Prophet الحديثة.

الـ forecasting فن وعلم في نفس الوقت. المتنبئ الشاطر فاهم الافتراضات اللي ورا كل طريقة، وعارف يشخّص فشل التنبؤ، وبيختار الأداة المناسبة للأفق الزمني وتكرار البيانات.

نوعين من التنبؤات

الـ point forecast — قيمة واحدة كأحسن تخمين لكل خطوة زمنية جاية. سهل تقوله، بس مش بيوري عدم اليقين.

الـ interval forecast — مدى (زي prediction interval 95%) متوقع إن القيمة الجاية تقع جواه. بيقيس عدم اليقين وضروري لاتخاذ القرار.

الـ point forecast من غير prediction interval تنبؤ ناقص.

الـ prediction intervals

في الـ ARIMA model، عدم اليقين في التنبؤ بيزيد مع الأفق الزمني. عند الأفق h، الـ h-step prediction interval هي:

الـ h-step prediction interval
\hat{X}_{t+h} \pm z_{\alpha/2}\,\sigma_h
‎&hat;Xt+h هو الـ point forecast، وzα/2 هو الـ normal quantile (1.96 لـ 95%)، وσh هو الـ standard error للتنبؤ بعد h خطوة. وكل ما h يزيد، الفترة بتوسع.

في الـ random walk (ARIMA(0,1,0))، الـ variance بتاع التنبؤ بيزيد خطيًا مع الأفق: σh2 = hσε2. يعني الـ prediction intervals بتوسع زي جذر h — ودي حاجة هتشوفها كتير وإنت بتتنبأ بالـ time series المالية.

مقاييس دقة التنبؤ

الدقة بتتقاس على test set محجوزة الـ model مشافهاش وقت التدريب. وأشهر 3 مقاييس هما الـ MAE والـ RMSE والـ MAPE.

الـ mean absolute error
\text{MAE} = \frac{1}{n}\sum_{t=1}^{n}|Y_t - \hat{Y}_t|
متوسط الانحراف المطلق. بنفس وحدات السلسلة؛ وسهل تفسّره.
الـ root mean squared error
\text{RMSE} = \sqrt{\frac{1}{n}\sum_{t=1}^{n}(Y_t - \hat{Y}_t)^2}
بيعاقب الأخطاء الكبيرة أكتر من الـ MAE. بوحدات السلسلة الأصلية.
الـ mean absolute percentage error
\text{MAPE} = \frac{100}{n}\sum_{t=1}^{n}\left|\frac{Y_t - \hat{Y}_t}{Y_t}\right|
خطأ نسبي بالنسبة المئوية مش معتمد على المقياس. مفيد للمقارنة بين سلاسل أحجامها مختلفة. ومش متعرّف لما Yt = 0؛ استخدم sMAPE أو MASE كبدايل.

مفيش مقياس واحد أحسن من غيره في كل الحالات. الـ RMSE يُفضّل لما الأخطاء الكبيرة تبقى غالية بالذات؛ والـ MAE لما الأخطاء تبقى تقريبًا متماثلة؛ والـ MAPE لما تكلم جمهور مش تقني. قول دايمًا أكتر من مقياس، وقيّمهم جنب تغطية الـ prediction intervals.

طرق الـ exponential smoothing

طرق الـ exponential smoothing عيلة من خوارزميات التنبؤ بتدّي أوزان بتقل exponentially للمشاهدات اللي فاتت — المشاهدات الأحدث أهم. وهي كتير بتنافس الـ ARIMA models وأسهل في الضبط.

3 أشكال

الـ simple exponential smoothing (SES): للسلاسل اللي مفيهاش trend ولا seasonality. ليها smoothing parameter واحد α (0 < α < 1). ومكافئة لـ ARIMA(0,1,1).

طريقة Holt الخطية: بتزوّد معادلة تانية تتابع الـ trend بـ parameter β. مناسبة للسلاسل اللي فيها trend من غير seasonality.

الـ Holt–Winters (الـ triple exponential smoothing): بتزوّد مكوّن موسمي بـ parameter γ. النسخة الـ additive بتتعامل مع تذبذب موسمي ثابت، والـ multiplicative مع تذبذب بيكبر.

معادلة تحديث الـ simple exponential smoothing
S_t = \alpha\, Y_t + (1-\alpha)\, S_{t-1}, \quad 0 < \alpha < 1
St هو المستوى المتنعّم في الزمن t. لما α = 1، الـ SES بيبقى الـ naive forecast (آخر قيمة)؛ ولما α → 0 بيبقى متوسط على مدى طويل.

الـ Prophet: التنبؤ على نطاق واسع

الـ Prophet (اللي طلّعته Meta سنة 2017) مكتبة تنبؤ open-source متصممة لـ الـ business time series اللي فيها seasonality قوية وتأثيرات أجازات كتير وبيانات ناقصة. بتفكّ السلسلة لـ trend وseasonality وأجازات/أحداث وبعدين بتزوّد حد noise.

الـ Prophet model

الـ trend: نمو خطي أو logistic على حتت مع اكتشاف أوتوماتيك للـ changepoints.

الـ seasonality: Fourier series بفترات تقدر تظبطها (سنوية، أسبوعية، يومية).

الأجازات: تواريخ أحداث بيدّيها المستخدم وبيتعملها model بـ indicators لوحدها.

الـ Prophet متين قدام الـ outliers، وبيتعامل مع الفجوات أوتوماتيك، ومحتاج ضبط قليل — مثالي للممارسين اللي بيتنبأوا بمئات السلاسل.

الـ cross-validation للـ time series

الـ k-fold cross-validation العادي بيخلط المشاهدات عشوائي، وده غلط مع الـ time series لأنه بيسرّب معلومات من المستقبل للتدريب. والطريقة الصح هي الـ walk-forward validation (التحقق بالتقدم للأمام).

في الطريقة دي بتدرّب بالتكرار على البيانات لحد الزمن t وتقيّم على الـ h مشاهدات اللي بعدها، وبعدين تقدّم شباك التدريب خطوة وتكرّر. وده بيحاكي مهمة التنبؤ الحقيقية وبيدّيك distribution للأخطاء على كذا شباك تقييم.

الـ expanding window قصاد الـ rolling window

الـ expanding window: الـ training set بتكبر كل خطوة (درّب على t=1..100، وبعدين 1..101، …). بتستخدم كل التاريخ المتاح؛ وأحسن لما البيانات تبقى قليلة.

الـ rolling window: حجم الـ training set ثابت وبيتحرك لقدام (درّب على t=1..100، وبعدين 2..101، …). بتمنع الماضي البعيد إنه يسيطر؛ وأحسن لما آلية توليد البيانات بتتغيّر مع الزمن.

الـ ensemble forecasting

دمج تنبؤات من كذا model تقريبًا دايمًا بيغلب أي model لوحده. والظاهرة دي — الـ forecast combination puzzle (لغز التركيب التنبؤي) — من أثبت النتايج التجريبية في أبحاث التنبؤ. حتى المتوسط البسيط بأوزان متساوية بين الـ ARIMA والـ exponential smoothing وnaive baseline كتير بيغلب كل طريقة لوحدها.

أما الـ ensembles الأعقد فبتدّي الـ models أوزان على حسب دقتها الأخيرة (dynamic combination)، أو بتستخدم stacking عن طريق meta-learner، أو بتدمج الـ point forecasts مع probabilistic models. ومسابقة التنبؤ M4 سنة 2018 وضّحت إن الـ hybrid ensembles بين الإحصاء والـ machine learning هي في القمة على benchmark قياسي من 100,000 سلسلة.

معادلة الـ ensemble البسيطة

لـ K models بتنبؤات &hat;Y1,t+h، …، &hat;YK,t+h:

&hat;Yensemble = (1/K) ∑&hat;Yk,t+h
أهم النقط
  • الـ point forecasts لازم دايمًا يبقى معاها prediction intervals؛ وعدم اليقين بيزيد مع أفق التنبؤ.
  • الـ MAE والـ RMSE والـ MAPE بيبيّنوا جوانب مختلفة من خطأ التنبؤ؛ قول كذا مقياس متقيّمين على test set محجوزة.
  • الـ exponential smoothing (SES وHolt وHolt–Winters) بيدّي بدايل بسيطة وفعّالة للـ ARIMA، خصوصًا للسلاسل التجارية اللي فيها trend وseasonality.
  • الـ Prophet بيتعامل مع السلاسل التجارية اللي فيها seasonality قوية وتأثيرات أجازات وبيانات ناقصة أوتوماتيك بضبط قليل.
  • الـ walk-forward cross-validation (expanding أو rolling) هو الطريقة الصح لتقييم models التنبؤ؛ عمرك ما تستخدم الـ k-fold العادي.
  • الـ ensemble forecasts اللي بتجمع كذا model تقريبًا دايمًا بتغلب أي model لوحده؛ والمتوسط بأوزان متساوية baseline قوي.
اللي فات الـ ARIMA models نظرة عامة على الموديول الوحدة التالية الـ experimental design