لماذا هذه السلسلة الزمنية الشائعة ثابتة؟

دراسة ديكي فولر المعزز (ADF) اختبار من مثال غريب

تصوير جان هوبر on Unsplash

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

هناك الكثير من المقالات عبر الإنترنت حول هذا الموضوع. لن أضيع وقتك في المقدمة الأساسية، مثل تعريف الثبات، وكيفية إجراء اختبارات ADF، وما إلى ذلك. في هذا المنشور، سأشارك رحلتي لاستكشاف اختبار ADF بعد مواجهة حالة غريبة في أحد التطبيقات.

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

مرة أخرى، سأشارك الكود الخاص بي على GitHub؛ يرجى العثور على الرابط في القسم المرجعي في النهاية.

بداية رحلة غير متوقعة

كنت أعمل مع بعض السلاسل الزمنية في ذلك اليوم. ويبين الشكل 1 واحدا منهم. ليس هناك ضعف ذلك الاتجاه الصعودي موجود و يتغير التباين أيضًا بمرور الوقت. مع هذا التصور الواضح، لم أكن بحاجة إلى اختبار الثبات. لسبب ما لا أتذكر، ما زلت أحاول ذلك باستخدام اختبار ADF. من المثير للدهشة أن القيمة p تساوي 0 تقريبًا، مما يعني أنني يجب أن أرفض الفرضية الصفرية وأقبل أنها ثابتة.

الشكل 1. السلاسل الزمنية ذات الاتجاه (صورة المؤلف)

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

هناك 20,000 ملاحظة في الشكل 1، مما يعني أن الاتجاه يتصاعد ببطء شديد. أقوم بإنشاء سلسلة زمنية بميل بسيط قدره 0.0005. ترتفع قيمة متوسط ​​السلسلة الزمنية من حوالي 0 إلى 0.5 بعد 1000 ملاحظة. ثم دعونا نختبرها باستخدام وظيفة adfuller() من statsmodels.tsa.stattools مع المعلمات الافتراضية. القيمة p هي 0.01، وتحدث "المشكلة" مرة أخرى. ويبين الشكل 2 النتيجة. يمكنك تجاهل العنوان والتركيز على الاتجاه الصعودي. سأشرح سبب حصولنا على قيم p من ثلاثة اختبارات مختلفة لوحدة التغذية التلقائية للمستندات (ADF) لاحقًا.

الشكل 2. السلاسل الزمنية الاصطناعية مع نتيجة اختبار ADF (صورة المؤلف)

الرياضيات وراء اختبار DF

يجب أن نذهب عميقًا لنرى ما يفعله اختبار ADF بالتحديد. اتضح أن خلفيته الرياضية ليست معقدة. أولاً، يعد اختبار ADF مجرد نسخة متقدمة من اختبار ديكي فولر. يوجد ثلاثة إصدارات رئيسية من اختبار DF (من ويكيبيديا):

إصدار 1: اختبار جذر الوحدة: ∆yᵢ = δyᵢ₋₁ + uᵢ

إصدار 2: اختبار جذر الوحدة مع الثابت: ∆yᵢ = a₀ + δyᵢ₋₁ + uᵢ

نسخة 3. اختبار جذر الوحدة ذو الاتجاه الثابت والحتمي: ∆yᵢ = a₀ + a₁*t + δyᵢ₋₁ + uᵢ

في كل نسخة، الفرضية الصفرية هي أن هناك جذر الوحدة، δ=0.

تدعم حزمة Statsmodels جميع الإصدارات الثلاثة مع المعلمة "تراجع".

بالنسبة للإصدار 1، الانحدار هو 'n' (لا يوجد ثابت، لا يوجد اتجاه).

بالنسبة للإصدار 2، الانحدار هو 'c' (ثابت فقط)؛ هذا هو الإعداد الافتراضي.

بالنسبة للإصدار 3، الانحدار هو "ct" (ثابت واتجاه).

أعيد إجراء الاختبار بثلاثة إعدادات مختلفة، وفيما يلي النتائج الجديدة.

بالنسبة للإصدار 1، القيمة p هي 0.09. لا ينبغي لنا أن نرفض فرضية العدم.

بالنسبة للإصدار 2، القيمة p هي 0.01. لقد تعاملنا معها بالفعل على أنها مشكلة لأن هذا هو الإعداد الافتراضي.

بالنسبة للإصدار 3، القيمة p هي 0.00. وهذا أمر متوقع لأن السلسلة الزمنية موجودة بالفعل ثابتة ذات اتجاه حتمي.

لذلك بالنسبة لبيانات المثال هذه، إذا اختبرناها مع الإصدار 1 (الانحدار='n')، فلن نقول إنها ثابتة. ربما لا ينبغي لنا استخدام الإعداد الافتراضي. لكن قد تتساءل أيضًا، لماذا أحدث الحد الثابت فرقًا كبيرًا هنا؟ دعونا نحفر المزيد.

من اختبار DF إلى الانحدار الخطي

بناءً على التعريف أعلاه، فإن اختبار DF هو مجرد انحدار خطي. ويبين الشكل 3 جميع نقاط الانحدار الخطي. المحور Y هو ∆yᵢ، والمحور X هو yᵢ₋₁، وuᵢ هو المتبقي. الإصدار 1 يعني أننا يجب أن نلائم خطًا بدون تقاطع (لا يوجد ثابت). الإصدار 2 يعني أننا يجب أن نلائم الخط مع التقاطع (الثابت).

الشكل 3. ∆yᵢ وyᵢ₋₁ (الصورة للمؤلف)

سكيتلرن الانحدار الخطي يدعم هذين الخيارين بشكل جيد مع المعلمة fit_intercept. يوجد أدناه الشكل 4 الخطان المجهزان. كما ترون، فإن الخط الذي يحتوي على التقاطع يناسب بشكل أفضل من الخط الذي لا يحتوي على التقاطع. كما أكدت نتيجة R-squared ذلك بوضوح. لاحظ أيضًا أن ميل الخط البرتقالي أصغر من ميل الخط الأزرق. بمعنى آخر، ميل الخط البرتقالي أقرب إلى 0.

الشكل 4. نتيجة الانحدار الخطي (صورة المؤلف)

يمكننا أيضًا التفكير من خلال التصور: النقاط لا تتمركز حول (0,0)، لذلك يجب ألا يمر خط الانحدار الملائم (0,0). يجب أن يكون التقاطع أكبر من 0. نظرًا لأن 0 هو متوسط ​​البداية، يجب أن يكون ∆y أكبر من 0، وبالتالي سيزداد المتوسط ​​الإجمالي. إذا أجبرنا خط الانحدار على المرور عبر (0,0)، فسوف يقل حجم البيانات، وسيصبح المنحدر أقرب إلى 0 بسبب التأثير من (0,0).

لقد رأينا ما إذا كان تضمين تأثيرات التقاطع يتناسب مع الانحدار الخطي. لماذا تؤثر كيفية تركيب الخط على نتائج اختبار وحدة التغذية التلقائية للمستندات، ومن أين تأتي القيمة الاحتمالية؟

من الانحدار الخطي إلى القيمة p

الآن أصبح الأمر معقدًا بعض الشيء. القيمة p النهائية لاختبار DF ليست من القيمة p للمعاملات من الانحدار الخطي. في الأساس، تحتوي الإحصائية على توزيع محدد يعرف باسم جدول ديكي فولر. ثم نستخدم قيمة p التقريبية لـ MacKinnon لإحصائيات الاختبار. قد تجد التفاصيل في كود المصدر لـ Statsmodels.

نظرًا لأن الفرضية الصفرية هي δ=0، فهذا يعني أن اختبار ميل الخط المجهز هو 0. لا نحتاج إلى الخوض في تفاصيل حول كيفية الحصول على القيمة p. السلسلة المنطقية للارتباط بين القيمة p والمنحدر (δ في الانحدار الخطي، وليس المنحدر المتجه) هي كما يلي:

بشكل عام، إذا كان المنحدر بعيدًا عن 0، فيجب أن تكون القيمة p أصغر، ومن المرجح رفض فرضية العدم واقتراح عدم وجود جذر وحدة وثبات. إذا كان المنحدر 0 أو قريبًا جدًا من 0، فيجب أن تكون القيمة p أعلى، ومن الأرجح قبول الفرضية الصفرية واقتراح جذر الوحدة وغير ثابت. بالنسبة للسيناريو الثاني، تقول ويكيبيديا: "تتمتع الاختبارات بقوة إحصائية منخفضة حيث أنها غالبًا لا تستطيع التمييز بين عمليات جذر الوحدة الحقيقية (δ = 0) والعمليات القريبة من جذر الوحدة (δ قريبة من 0)". ولهذا السبب لدينا المشكلة في المقام الأول. نحن نتعامل مع عملية قريبة من جذر الوحدة. يعثر الإصدار 1 على جذر الوحدة ولا يمكن للإصدار 2 العثور على جذر الوحدة.

لماذا يعمل الإصدار 1 للمثال أعلاه؟

يعمل الإصدار 1 مع البيانات الواردة في الشكل 2 لأننا نجعل الميل أقرب إلى 0، وبالتالي تكون القيمة p أعلى.

ومع ذلك، لا يمكننا استخدام الإصدار 1 كإعداد افتراضي. هناك حالتان للإصدار 1 (إجبار الخط على المرور عبر (0,0) ):

الحالة 1: (0,0) أقرب إلى جميع نقاط البيانات. إذا كان الخط يجب أن يمر عبر (0,0)، فسيكون الخط مسطحًا، وسيقترب المنحدر من 0. يوضح الشكل 4 هذه الحالة. يرجى ملاحظة أن العرض التوضيحي في الشكل 4 يناسب متغيرًا واحدًا فقط، بينما وحدة التغذية التلقائية للمستندات (ADF) الفعلية سوف تناسب المزيد من المتغيرات المتأخرة.

الحالة 2: (0,0) بعيد عن جميع نقاط البيانات. إذا كان الخط يجب أن يمر عبر (0,0)، فقد نفشل في التركيب؛ بشكل أساسي، الميل هو 0، مما يعني أننا لا نستطيع العثور على علاقة خطية بين ∆yᵢ وyᵢ₋₁ بحيث يمر الخط (0,0) ويغطي معظم نقاط البيانات. ولذلك، فإن نتيجة الاختبار سوف تكون منحازة نحو وجود وحدة الجذر.

يوضح الشكل 5 أدناه مثالاً على فشل اختبار الإصدار 1 في رفض فرضية العدم (القيمة p 0.6)، والبيانات ثابتة بمتوسط ​​10. ويوضح الشكل 6 السبب. كما ترون، لا يمكننا العثور على خط بدون تقاطع (R-squared هو 0)، وبالتالي فإن ميل الخط الملائم هو 0 (∆yᵢ لا يعتمد على yᵢ₋₁).

الشكل 5. فشل الإصدار 1 في التعرف على سلسلة زمنية ثابتة (الصورة من المؤلف)
الشكل 6. فشل الانحدار الخطي في العثور على خط بدون تقاطع (تمرير (0,0)) (الصورة من المؤلف)

من اختبار DF إلى اختبار ADF

الآن نحن نفهم أن اختبار DF هو الانحدار الخطي وكيفية الحصول على القيمة p من الانحدار الخطي، دعنا ننتقل إلى ADF. صيغة ADF هي:

مرة أخرى، الانحدار الخطي. الجزء "المعزز" هو أننا يجب أن نلائم المزيد من المعاملات.

تسمح حزمة statsmodels بعرض ملخص تفصيلي لاختبار AFT. الشكل 7 هو النتيجة.

الشكل 7. اختبار ADF مع ملخص تفصيلي (الصورة من إعداد المؤلف)

نرى "انحدار OLS" (الحل الافتراضي للانحدار الخطي) و17 معاملًا. لم أحدد الحد الأقصى للتأخر، لذا سيحاول الاختبار الوصول إلى رقم بناءً على طول السلسلة الزمنية، وهو 17.

تم تجهيز const (الاعتراض) أيضًا. القيمة هي 0.0596.

دعونا نحاول تنفيذ اختبار ADF باستخدام الانحدار الخطي في Scikit-learn. الشكل 8 هو الكود والمخرجات.

الشكل 8. اختبار ADF (جزء الانحدار الخطي فقط) باستخدام Scikit-Learn (الصورة من إعداد المؤلف)

التقاطع هو 0.0596، والمعاملات الأخرى هي نفسها كما في الشكل 7. الانحدار الخطي في Scikit-learn هو مجرد OLS عادي. نحن نفعل نفس الشيء، لذلك ليس من المستغرب أن تكون النتائج متطابقة.

نهاية الرحلة

بعد أن اكتشفت كيفية تعيين المعلمة، قمت باختبار السلسلة الزمنية الأصلية في الشكل 1 باستخدام الإصدار 1 (الانحدار ='n') وحصلت على القيمة الاحتمالية البالغة 0.08، مما يشير إلى أنها ليست ثابتة. يرجى ملاحظة أن البيانات الموجودة في الشكل 1 هي متوسط ​​صفر، لذا يمكنك أن تتخيل أن (0,0) أقرب إلى نقاط البيانات (∆yᵢ, yᵢ₋₁). استخدام اختبار الإصدار 1 سيساعدنا.

نظرًا لأن ميل الاتجاه في الشكل 1 هو الحد الأدنى، فيمكننا أيضًا إعادة تشكيل السلسلة الزمنية بخطوات، مما يؤدي إلى زيادة المنحدر. على سبيل المثال، إذا قمت باختباره بأربع خطوات ( value[::4] )، فلن يجتاز اختبار ADF بالإعداد الافتراضي (القيمة p هي 0.17 للانحدار='c').

تم حل المشكلة.

الوجبات السريعة

لا تثق بشكل أعمى في نتائج ADF. التصور هو صديقك.

اختبار ADF هو انحدار خطي بسيط، ويستخدم تطبيق statsmodels OLS لحل مشكلة الانحدار. ثم يستخدم جدول Dickey – Fuller لاستخراج القيمة p التي تتحقق من صحة فرضية Null بأن معامل متغير التأخر الأول من الانحدار الملائم هو 0.

يحتوي اختبار ADF على قيود عند اختبار العمليات القريبة من جذر الوحدة (δ قريبة من 0).

نحتاج إلى اختيار إصدار ADF المناسب وفقًا لذلك. على سبيل المثال، عندما ترى اتجاهًا ثابتًا وتريد اختبار "الاتجاه الثابت"، فإنك تحتاج إلى تحديد "ct" كمعلمة. إذا كنت تريد التقاط اتجاه بطيء لإشارة من المفترض أن يكون متوسطها 0 كما في الشكل 1 والشكل 2، فربما تحتاج إلى تحديد 'n' كمعلمة لتجنب تأثير ملاءمة التقاطع. تدعم Statsmodels أيضًا الاتجاه الكمي باستخدام المعلمة "ctt". قد يكون هذا الخيار المتقدم خيارًا جيدًا لبعض الحالات. في حالة رغبتك في التعمق أكثر، يرجى الرجوع إلى التعامل مع عدم اليقين بشأن تضمين مصطلحات الاتجاه الزمني المعترض والحتمي.

أتمنى أن تكون قد تعلمت شيئًا عن اختبار ADF.

نلهو مع السلسلة الزمنية الخاصة بك!

الاتصال بي على لينكدين:.

ملاحظة: لدي خبرة وشغف ببيانات السلاسل الزمنية. إذا أعجبك هذا المقال، فقد تكون مهتمًا بمقالي الآخر منشورات عن ‏السلاسل الزمنيه‏.

مراجع حسابات

ملف دفتر الملاحظات على جيثب

لماذا هذه السلسلة الزمنية الشائعة ثابتة؟ أعيد النشر من المصدر https://towardsdatascience.com/why-is-this-trending-time-series-stationary-f3fb9447336f?source=rss—-7f60cf5620c9—4 عبر https://towardsdatascience.com/feed

<!–

->

الطابع الزمني:

اكثر من مستشارو Blockchain