مكوّنات السلاسل الزمنية والاستقرارية
الاتجاه والموسمية والضوضاء، واختبار ADF للاستقرارية، وأخذ الفروق لتحقيق الاستقرارية
مكوّنات السلاسل الزمنية والاستقرارية درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ما السلسلة الزمنية؟
السلسلة الزمنية هي بيانات مفهرسة بترتيب زمني، مثل المبيعات اليومية أو درجة الحرارة لكل ساعة. ولأن المشاهدات مرتبة وغالبًا ما تكون مترابطة، فإنها تحتاج إلى تقنيات خاصة؛ فلا يمكنكم خلط الصفوف عشوائيًا كما تفعلون مع البيانات الجدولية العادية.
المكونات الثلاثة
يحلل المنظور التقليدي السلسلة إلى:
- الاتجاه العام: حركة تصاعدية أو تنازلية طويلة الأجل.
- الموسمية: أنماط متكررة على فترات ثابتة، مثل الفترات الأسبوعية أو السنوية.
- الباقي: الضوضاء العشوائية المتبقية بعد إزالة الاتجاه العام والموسمية.
الجمعي مقابل الضربي
في النموذج الجمعي: y = trend + seasonality + residual، ويُستخدم عندما تكون التذبذبات الموسمية ثابتة الحجم.
في النموذج الضربي: y = trend * seasonality * residual، ويُستخدم عندما تزداد التذبذبات الموسمية مع الاتجاه العام.
seasonal_decompose
يمكن لـ statsmodels تقسيم السلسلة إلى مكوناتها تلقائيًا.
from statsmodels.tsa.seasonal import seasonal_decompose
result = seasonal_decompose(series, model="additive", period=12)
result.trend
result.seasonal
result.residتصور التحليل
يُظهر رسم النتيجة كل مكوّن متراصًا، ما يسهل رؤية الاتجاه العام والموسمية ويساعدكم على اختيار أسلوب التنبؤ.
import matplotlib.pyplot as plt
result.plot()
plt.tight_layout()
plt.show()ما الاستقرارية؟
تكون السلسلة مستقرة عندما تبقى خصائصها الإحصائية، مثل المتوسط والتباين والارتباط الذاتي، ثابتة بمرور الوقت. تفترض العديد من النماذج التقليدية، مثل ARIMA، الاستقرارية؛ لذا فإن التحقق منها وفرضها يمثلان خطوة أولى أساسية.
لماذا تهم الاستقرارية
إذا انحرف المتوسط أو تضخم التباين بمرور الوقت، فلن يعمم النموذج الذي تم تدريبه على البيانات المبكرة على البيانات اللاحقة. وتساعد إزالة الاتجاه العام وتحقيق استقرار التباين على جعل السلسلة قابلة للتنبؤ بطريقة متسقة.
اختبار ADF
يتحقق اختبار Augmented Dickey-Fuller (ADF) من الاستقرارية. والفرضية الصفرية هي "غير مستقرة (تحتوي على جذر الوحدة)". وتتيح لكم قيمة p الأقل من 0.05 رفض الفرضية الصفرية والتعامل مع السلسلة على أنها مستقرة.
from statsmodels.tsa.stattools import adfuller
stat, pvalue, *_ = adfuller(series)
print("p-value:", pvalue)
# pvalue < 0.05 -> stationaryالتفاضل لتحقيق الاستقرارية
يحسب التفاضل الفروق بين كل قيمة والقيمة السابقة لها، مما يزيل الاتجاه العام. وعادةً ما يعالج التفاضل من الرتبة الأولى الاتجاه الخطي؛ ويمكنكم تطبيقه مرة أخرى عند الحاجة.
diff1 = series.diff().dropna() # first difference
diff2 = series.diff().diff().dropna() # second differenceالتحقق بعد التفاضل
أعيدوا تشغيل اختبار ADF على السلسلة بعد التفاضل. وعندما تنخفض قيمة p إلى أقل من 0.05، تكونون قد حققتم الاستقرارية وسجلتم رتبة التفاضل d، التي تُستخدم مباشرةً في ARIMA.
stat, pvalue, *_ = adfuller(series.diff().dropna())
print("p-value after differencing:", pvalue)تحويلات أخرى لتحقيق الاستقرار
إذا كان التباين يزداد بمرور الوقت، فإن تحويل log أو Box-Cox يحقق استقراره قبل إجراء التفاضل. ويعالج الجمع بين تحويل log والتفاضل العديد من السلاسل الواقعية ذات النمو الضربي.
import numpy as np
log_series = np.log(series)
stationary = log_series.diff().dropna()اختبار سريع
اختبروا فهمكم للاستقرارية.
مراجعة
حللتم السلاسل إلى الاتجاه العام والموسمية والباقي باستخدام seasonal_decompose، وتعلمتم الفرق بين النماذج الجمعية والضربية، واختبرتم الاستقرارية باستخدام اختبار ADF، واستخدمتم التفاضل (بالرتبة d) لجعل السلسلة مستقرة. التالي: ARIMA وSARIMA.
الأسئلة الشائعة
هل درس «مكوّنات السلاسل الزمنية والاستقرارية» مجاني؟
نعم — نص درس «مكوّنات السلاسل الزمنية والاستقرارية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ماذا ستتعلم في «مكوّنات السلاسل الزمنية والاستقرارية»؟
الاتجاه والموسمية والضوضاء، واختبار ADF للاستقرارية، وأخذ الفروق لتحقيق الاستقرارية تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟
لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «مكوّنات السلاسل الزمنية والاستقرارية»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟
نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مكوّنات السلاسل الزمنية والاستقرارية
- نماذج ARIMA وSARIMA
- Prophet للتنبؤ المؤتمت
- LSTM للتنبؤ بالسلاسل الزمنية