نماذج ARIMA وSARIMA
مكوّنات AR وMA وI، واختيار المعاملات باستخدام ACF/PACF، وملاءمة ARIMA باستخدام statsmodels
نماذج ARIMA وSARIMA درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ما هو ARIMA؟
يرمز ARIMA إلى AutoRegressive Integrated Moving Average. وهو ينمذج سلسلة مستقرة باستخدام ثلاثة أجزاء: الانحدار الذاتي (p)، والتكامل أو التفاضل (d)، والمتوسط المتحرك للأخطاء (q)، ويُكتب بالشكل ARIMA(p, d, q).
AR(p): الانحدار الذاتي
يتنبأ الجزء AR بالقيمة التالية من خلال توليفة خطية من آخر p قيم لها. فإذا كانت قيمة اليوم تعتمد بقوة على الأيام القليلة الماضية، فأنتم بحاجة إلى قيمة p غير صفرية.
مثال: تستخدم p=2 أحدث مشاهدتين بوصفهما متنبئين.
I(d): التكامل / التفاضل
يمثل الجزء I رتبة التفاضل d اللازمة لجعل السلسلة مستقرة، وهي قيمة d نفسها التي وجدتموها باستخدام اختبار ADF في الدرس السابق. وتزيل d=1 اتجاهًا خطيًا.
MA(q): المتوسط المتحرك
ينمذج الجزء MA القيمة التالية باستخدام أخطاء التنبؤ السابقة وعددها q، أو ما يُعرف بالصدمات. وهو يلتقط تصحيحات الضوضاء قصيرة الأجل التي لا يلتقطها جزء AR.
ملاءمة ARIMA في statsmodels
مرروا سلسلتكم بوصفها endog، وحددوا صف order المختار.
from statsmodels.tsa.arima.model import ARIMA
model = ARIMA(endog=series, order=(p, d, q))
fit = model.fit()
print(fit.summary())التنبؤ
بعد ملاءمة النموذج، ولّدوا القيم المستقبلية باستخدام forecast أو get_forecast، الذي يوفر أيضًا فترات الثقة.
preds = fit.forecast(steps=12) # next 12 periods
fc = fit.get_forecast(steps=12)
ci = fc.conf_int() # confidence intervalsمخططات ACF وPACF
لاختيار p وq، افحصوا مخططات الارتباط الذاتي:
- ACF، أي الارتباط الذاتي، يساعد على اختيار q، رتبة MA.
- PACF، أي الارتباط الذاتي الجزئي، يساعد على اختيار p، رتبة AR.
ابحثوا عن الإزاحة التي ينقطع عندها الارتباط بوضوح.
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
plot_acf(series.diff().dropna())
plot_pacf(series.diff().dropna())AIC وBIC لاختيار الرتبة
يقيس كل من AIC وBIC جودة ملاءمة النموذج مع معاقبة التعقيد. وكلما انخفضت القيمة كان ذلك أفضل. قوموا بملاءمة عدة نماذج مرشحة باستخدام (p,d,q)، واختاروا النموذج ذي أقل قيمة لـ AIC أو BIC؛ إذ يعاقب BIC المعلمات الإضافية بدرجة أكبر.
print("AIC:", fit.aic)
print("BIC:", fit.bic)البحث الشبكي عن الرتب
تتمثل إحدى الطرق الشائعة في التكرار على نطاقات صغيرة من p وd وq، وملاءمة كل نموذج، والاحتفاظ بالنموذج ذي أقل قيمة لـ AIC. وتؤتمت مكتبات مثل pmdarima.auto_arima عملية البحث هذه.
best = None
for p in range(3):
for q in range(3):
try:
f = ARIMA(series, order=(p, 1, q)).fit()
if best is None or f.aic < best[1]:
best = ((p, 1, q), f.aic)
except Exception:
pass
print(best)SARIMA للموسمية
يضيف SARIMA مكوّنًا موسميًا: (P, D, Q, m)، حيث تمثل m طول الموسم، مثل 12 للبيانات الشهرية ذات الدورة السنوية. وهو يتعامل مع الأنماط المتكررة التي لا يستطيع ARIMA العادي التعامل معها.
from statsmodels.tsa.statespace.sarimax import SARIMAX
model = SARIMAX(series,
order=(1, 1, 1),
seasonal_order=(1, 1, 1, 12))
fit = model.fit()ARIMA مقابل SARIMA
- ARIMA(p,d,q): الاتجاه العام والاعتماد قصير الأجل، من دون موسمية.
- SARIMA(p,d,q)(P,D,Q,m): يضيف حدودًا موسمية للدورات المتكررة.
إذا أظهر تحليلكم موسمية واضحة، فاختاروا SARIMA.
اختبار سريع
اختبروا معرفتكم بـ ARIMA.
مراجعة
تعلمتم ARIMA(p,d,q): يستخدم AR القيم السابقة، وتمثل I رتبة التفاضل، ويستخدم MA الأخطاء السابقة. وأجريتم الملاءمة باستخدام ARIMA(endog, order=...)، واخترتم الرتب عبر ACF/PACF وAIC/BIC، ومددتم النموذج إلى SARIMA للتعامل مع الموسمية. التالي: Prophet للتنبؤ الآلي.
الأسئلة الشائعة
هل درس «نماذج ARIMA وSARIMA» مجاني؟
نعم — نص درس «نماذج ARIMA وSARIMA» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ماذا ستتعلم في «نماذج ARIMA وSARIMA»؟
مكوّنات AR وMA وI، واختيار المعاملات باستخدام ACF/PACF، وملاءمة ARIMA باستخدام statsmodels تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟
لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «نماذج ARIMA وSARIMA»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟
نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مكوّنات السلاسل الزمنية والاستقرارية
- نماذج ARIMA وSARIMA
- Prophet للتنبؤ المؤتمت
- LSTM للتنبؤ بالسلاسل الزمنية