Saturday, 2 December 2017

الأسي الحركة من المتوسط - عدم انتظام - السلاسل الزمنية


خطوات اختيار نموذج للتنبؤ يجب أن يتضمن نموذج التنبؤ الخاص بك الميزات التي تلتقط جميع الخصائص النوعية الهامة للبيانات: أنماط التغير في المستوى والاتجاه، وآثار التضخم والموسمية، والارتباطات بين المتغيرات، إلخ. وعلاوة على ذلك، فإن الافتراضات التي تكمن وراء يجب أن يتفق النموذج المختار مع الحدس الخاص بك حول الكيفية التي من المرجح أن تتصرف بها السلسلة في المستقبل. عند تركيب نموذج التنبؤ، لديك بعض الخيارات التالية: يتم وصف هذه الخيارات بإيجاز أدناه. راجع مخطط تدفق التنبؤ المصاحب لعرض مصور لعملية مواصفات النماذج، ثم ارجع إلى لوحة مواصفات نموذج ستاتغرافيكس لمعرفة كيفية اختيار ميزات النموذج في البرنامج. الانكماش إذا أظهرت سلسلة النمو التضخمي، ثم الانكماش سيساعد على حساب نمط النمو والحد من التغايرية في المخلفات. يمكنك إما (1) تفريغ البيانات السابقة وإعادة تنشيط التوقعات طويلة الأجل بمعدل ثابت مفترض، أو (2) تفريغ البيانات السابقة بواسطة مؤشر أسعار مثل الرقم القياسي لأسعار المستهلك، ثم كتمانواليكوت إعادة ربط التوقعات على المدى الطويل باستخدام وهو مؤشر لمؤشر الأسعار. الخيار (ط) هو أسهل. في إكسيل، يمكنك فقط إنشاء عمود من الصيغ لتقسيم القيم الأصلية حسب العوامل المناسبة. على سبيل المثال، إذا كانت البيانات شهرية وتريد أن تنخفض بمعدل 5 لكل 12 شهرا، سوف تقسم بعامل (1.05) (k12) حيث k هو فهرس الصف (رقم الملاحظة). ريجرسيت و ستاتغرافيكس لديها المدمج في الأدوات التي تفعل ذلك تلقائيا بالنسبة لك. إذا ذهبت إلى هذا الطريق، فمن الأفضل عادة تعيين معدل التضخم المفترض يساوي أفضل تقدير للمعدل الحالي، وخاصة إذا كنت تنوي التنبؤ أكثر من فترة واحدة المقبلة. إذا اخترت بدلا من ذلك الخيار (2)، فيجب عليك أولا حفظ التوقعات المفصولة وحدود الثقة في جدول بيانات البيانات، ثم إنشاء وحفظ توقعات لمؤشر الأسعار، وأخيرا مضاعفة الأعمدة المناسبة معا. (عودة إلى أعلى الصفحة.) تحول اللوغاريتم إذا كانت السلسلة تظهر نمو مركب و نمط موحد مضاعف، فإن تحويل اللوغاريتم قد يكون مفيدا بالإضافة إلى أو الانكماش. ولن يسجل تسجيل البيانات نمط نمو تضخمي، ولكنه سيصقله بحيث يمكن تركيبه بنموذج خطي (مثل المشي العشوائي أو نموذج أريما مع نمو ثابت أو نموذج تجانس أسي خطي). أيضا، وقطع الأشجار تحويل أنماط الموسمية المضاعفة إلى أنماط إضافية، بحيث إذا قمت بإجراء التعديل الموسمية بعد قطع الأشجار، يجب عليك استخدام نوع المضافة. يتعامل التسجيل مع التضخم بطريقة ضمنية إذا كنت تريد أن يكون نموذج التضخم صريحا - أي. إذا كنت تريد أن يكون معدل التضخم معلمة مرئية من النموذج أو إذا كنت ترغب في عرض المؤامرات من البيانات مفرغة - ثم يجب عليك انكماش بدلا من تسجيل. استخدام مهم آخر للتحول السجل هو خطي العلاقات بين المتغيرات في وضع الانحدار ل. على سبيل المثال، إذا كان المتغير التابع دالة مضاعفة وليس مضافة للمتغيرات المستقلة، أو إذا كانت العلاقة بين المتغيرات التابعة والمستقلة خطية من حيث التغيرات المئوية بدلا من التغييرات المطلقة، ثم تطبيق تحويل السجل إلى واحد أو أكثر من المتغيرات قد يكون مناسبا، كما هو الحال في مثال مبيعات البيرة. (العودة إلى أعلى الصفحة). تعديل موسمي إذا كانت السلسلة لديها نمط موسمي قوي يعتقد أنه ثابت من سنة إلى أخرى، قد يكون التعديل الموسمية طريقة مناسبة لتقدير النموذج واستقراءه. ميزة التعديل الموسمية هو أنه نموذج النمط الموسمية صراحة، مما يتيح لك خيار دراسة المؤشرات الموسمية والبيانات المعدلة موسميا. والعيب هو أنه يتطلب تقدير عدد كبير من المعلمات إضافية (لا سيما بالنسبة للبيانات الشهرية)، وأنه لا يوفر الأساس المنطقي النظري لحساب فترات الثقة كوتوريكتكوت. التحقق من العينة خارج أهمية خاصة للحد من خطر الإفراط في تركيب البيانات الماضية من خلال التعديل الموسمية. إذا كانت البيانات موسمية بقوة ولكنك لا تختار التعديل الموسمية، البدائل هي إما (1) استخدام نموذج أريما الموسمية. والتي تتنبأ ضمنا بالنمط الموسمي باستخدام الفوارق والفوارق الموسمية، أو (2) استخدام نموذج الشتاء الأسي للنمو الأسمي الموسمية الذي يقدر المؤشرات الموسمية المتغيرة بمرور الوقت. (العودة إلى أعلى الصفحة). متغيرات كوتينديبندنتكوت إذا كانت هناك سلسلة زمنية أخرى تعتقد أن لديها قوة توضيحية فيما يتعلق بسلسلة اهتمامك (مثل المؤشرات الاقتصادية الرائدة أو متغيرات السياسة مثل السعر والإعلانات والعروض الترويجية وما إلى ذلك)، قد ترغب في النظر في الانحدار كنوع النموذج الخاص بك. سواء اخترت الانحدار أم لا، لا تزال بحاجة إلى النظر في الاحتمالات المذكورة أعلاه لتحويل المتغيرات الخاصة بك (الانكماش، سجل، التكيف الموسمي - وربما أيضا الاختلاف) وذلك لاستغلال البعد الزمني و خطي العلاقات. حتى إذا لم تختر الانحدار عند هذه النقطة، قد ترغب في إضافة مضادات التراجع لاحقا إلى نموذج السلاسل الزمنية (على سبيل المثال نموذج أريما) إذا كانت البقايا تتحول إلى ارتباطات متقاطعة عبرية مع متغيرات أخرى. (العودة إلى أعلى الصفحة.) التمهيد أو المتوسط ​​أو المشي العشوائي إذا كنت قد اخترت ضبط البيانات موسميا - أو إذا كانت البيانات ليست موسمية لتبدأ - ثم قد ترغب في استخدام نموذج المتوسط ​​أو تمهيد إلى تناسب النمط غير الداخلي الذي يبقى في البيانات عند هذه النقطة. إن المتوسط ​​المتحرك البسيط أو نموذج التجانس الأسي البسيط يحسب المتوسط ​​المحلي للبيانات في نهاية السلسلة، على افتراض أن هذا هو أفضل تقدير للقيمة المتوسطة الحالية التي تتقلب البيانات حولها. (تفترض هذه النماذج أن متوسط ​​السلسلة يتغير ببطء وبشكل عشوائي بدون اتجاهات ثابتة). وعادة ما يفضل التجانس الأسي البسيط إلى متوسط ​​متحرك بسيط، لأن متوسطه المرجح أضعافا مضاعفة تؤدي وظيفة أكثر منطقية لخصم البيانات القديمة، (ألفا) مستمرة ويمكن تحسينها بسهولة، ولأن لها أساس نظري أساسي لحساب فترات الثقة. إذا لم يكن التمهيد أو المتوسط ​​مفيدا - بمعنى آخر. إذا كان أفضل مؤشر على القيمة التالية للسلسلة الزمنية هو ببساطة قيمته السابقة - ثم يشار نموذج المشي العشوائي. هذا هو الحال، على سبيل المثال، إذا تبين أن العدد الأمثل للمصطلحات في المتوسط ​​المتحرك البسيط هو 1، أو إذا تبين أن القيمة المثلى للألفا في التمهيد الأسي البسيط هي 0.9999. ويمكن استخدام التجانس الأسي الخطي البني لتتناسب مع سلسلة مع الاتجاهات الخطية ببطء متفاوتة الوقت، ولكن كن حذرا بشأن استقراء هذه الاتجاهات بعيدة جدا في المستقبل. (تسجل فترات الثقة السريعة الاتساع لهذا النموذج عدم اليقين بشأن المستقبل البعيد). كما أن هولتس لينير سموتينغ يقوم بتقدير الاتجاهات المتغيرة للوقت، ولكنه يستخدم معلمات منفصلة لتلطيف المستوى والاتجاه، مما يوفر عادة أفضل ملاءمة للبيانات من طراز براون 8217s. س محاولات التمهيد الأسي لتقدير الاتجاهات التربيعية المتغيرة بمرور الوقت، وينبغي ألا تستخدم عمليا أبدا. (وهذا من شأنه أن يتوافق مع نموذج أريما مع ثلاثة أوامر من اختلاف غير منطقي.) وغالبا ما يوصى الخطي الأسي تمهيد مع اتجاه مخفف (أي الاتجاه الذي يتسطح في آفاق بعيدة) في الحالات التي يكون فيها المستقبل غير مؤكد جدا. نماذج التمهيد الأسي المختلفة هي حالات خاصة من نماذج أريما (الموصوفة أدناه) ويمكن تركيبها مع برنامج أريما. على وجه الخصوص، فإن نموذج التمهيد الأسي بسيط هو أريما (0،1،1) نموذج، Holt8217s نموذج التمهيد الخطي هو أريما (0،2،2) نموذج، ونموذج الاتجاه المنهك هو أريما (1،1،2 ) نموذج. يمكن العثور على ملخص جيد لمعادلات نماذج التمهيد الأسي المختلفة في هذه الصفحة على موقع ساس على الويب. (تظهر قوائم ساس لتحديد نماذج السلاسل الزمنية أيضا هناك 8212 هي مماثلة لتلك الموجودة في ستاتغرافيكس.) نماذج خط الاتجاه الخطية أو التربيعية أو الأسية هي خيارات أخرى لاستقراء سلسلة ديسوناليزد، لكنها نادرا ما تتفوق على المشي العشوائي، وتمهيد، أو نماذج أريما على بيانات الأعمال. (العودة إلى أعلى الصفحة.) الشتاء الموسمية الأسي تنعيم الشتاء الشتاء التمدد الموسمية هو امتداد لتمهيد الأسي الذي يقدر في وقت واحد مستوى متغير المستوى، والاتجاهات، والعوامل الموسمية باستخدام المعادلات العودية. (وهكذا، إذا كنت تستخدم هذا النموذج، فإنك لن أولا ضبط موسميا البيانات). عوامل الشتاء الشتاء يمكن أن تكون إما مضاعفة أو المضافة: عادة يجب عليك اختيار الخيار المضاعف إلا إذا قمت بتسجيل البيانات. على الرغم من أن نموذج الشتاء هو ذكي وبديهية معقولة، فإنه يمكن أن يكون من الصعب تطبيق في الممارسة العملية: لديها ثلاثة معايير تمهيد - ألفا، بيتا، وجاما - لتلطيف على حدة مستوى، والاتجاه، والعوامل الموسمية، والتي يجب أن تقدر الوقت ذاته. ويمكن تحديد قيم البداية للمؤشرات الموسمية من خلال تطبيق طريقة المعدل إلى المتوسط ​​المتحرك للتكيف الموسمي على جزء أو كل من سلسلة أندور بواسطة باكفوريكاستينغ. إن خوارزمية التقدير التي تستخدمها ستاتغرافيكس لهذه المعلمات تفشل في بعض الأحيان في تقارب قيم الغلة التي تعطي توقعات غريبة وفترات ثقة، لذا أوصي الحذر عند استخدام هذا النموذج. (العودة إلى أعلى الصفحة.) أريما إذا لم تختر التعديل الموسمي (أو إذا كانت البيانات غير موسمية)، فيمكنك استخدام إطار نموذج أريما. نماذج أريما هي فئة عامة جدا من النماذج التي تشمل المشي العشوائي، والاتجاه العشوائي، وتمهيد الأسي، ونماذج الانحدار الذاتي كحالات خاصة. الحكمة التقليدية هي أن السلسلة هي مرشح جيد لنموذج أريما إذا (1) يمكن أن يكون مرتكزا من خلال مزيج من الاختلافات والتحولات الرياضية الأخرى مثل قطع الأشجار، و (إي) لديك كمية كبيرة من البيانات للعمل مع : 4 مواسم كاملة على الأقل في حالة البيانات الموسمية. (إذا كانت السلسلة لا يمكن أن تكون ثابتة بشكل كاف من خلال اختلاف - على سبيل المثال إذا كان غير منتظم جدا أو يبدو أن تغيير نوعيا سلوكها مع مرور الوقت - أو إذا كان لديك أقل من 4 مواسم من البيانات، ثم قد يكون أفضل حالا مع نموذج الذي يستخدم التعديل الموسمية وبعض نوع من المتوسط ​​المتوسط ​​أو تمهيد.) نماذج أريما لها اصطلاح تسمية خاصة قدمها بوكس ​​وجينكينز. ويصنف نموذج أريما نوناسونال كنموذج أريما (p، d، q)، حيث d هو عدد الاختلافات غير الموسمية، p هو عدد مصطلحات الانحدار الذاتي (تأخر السلسلة المختلف)، q هو عدد الحركة المتحركة، متوسطات (تخلف أخطاء التنبؤ) في معادلة التنبؤ. ويصنف نموذج أريما الموسمية على أنه أريما (p، d، q) x (P، D، Q). حيث D و P و Q هي، على التوالي، عدد الفروق الموسمية، وشروط الانحدار الذاتي الموسمية (تأخر السلسلة المختلفة بمضاعفات الفترة الموسمية)، وشروط المتوسط ​​المتحرك الموسمية (تأخر أخطاء التنبؤ بمضاعفات الموسم الموسمي فترة). الخطوة الأولى في تركيب نموذج أريما هو تحديد الترتيب المناسب من الاختلاف اللازم لاستقرار السلسلة وإزالة الميزات الإجمالية للموسمية. وهذا يعادل تحديد أي كوتنيفيكوت المشي العشوائي أو نموذج الاتجاه العشوائي يوفر أفضل نقطة انطلاق. لا تحاول استخدام أكثر من مجموع طلبات الاختلاف (غير الموسمية والموسمية مجتمعة)، ولا تستخدم أكثر من 1 فرق موسمي. والخطوة الثانية هي تحديد ما إذا كان ينبغي تضمين مصطلح ثابت في النموذج: عادة ما تقوم بتضمين مصطلح ثابت إذا كان الترتيب الكلي للتباين هو 1 أو أقل، وإلا فإنك لا تفعل ذلك. في نموذج مع ترتيب واحد من الاختلاف، يمثل المصطلح الثابت متوسط ​​الاتجاه في التنبؤات. وفي نموذج يحتوي على أمرين من الاختلاف، يتحدد الاتجاه في التنبؤات بالاتجاه المحلي الذي لوحظ في نهاية السلاسل الزمنية، ويمثل المدى الثابت الاتجاه في الاتجاه، أي انحناء الاتجاه الطويل الأجل، . عادة ما يكون من الخطورة استقراء الاتجاهات في الاتجاهات، لذلك يمكنك قمع مصطلح كونتانت في هذه الحالة. والخطوة الثالثة هي اختيار أعداد معلمات الانحدار الذاتي والانتقال المتحرك (p و d و q و P و D و Q) اللازمة لإزالة أي ارتباط تلقائي يبقى في بقايا النموذج الساذج (أي أي ارتباط يبقى بعد مجرد اختلاف). وتحدد هذه الأرقام عدد الفواصل الزمنية للتفاوتات المتفاوتة بين السلسلة والتخطأ في أخطاء التنبؤ الواردة في معادلة التنبؤ. إذا لم يكن هناك ارتباط ذاتي كبير في البقايا عند هذه النقطة، ثم ستوب، كنت فعلت: أفضل نموذج هو نموذج ساذج إذا كان هناك ارتباط ذاتي كبير في التأخر 1 أو 2، يجب عليك محاولة إعداد q1 إذا كان أحد الإجراءات التالية ينطبق: ( ط) هناك فرق غير موسمي في النموذج، (2) الترابط الذاتي 1 تأخر سلبي. أندور (إي) مؤامرة الارتباط الذاتي المتبقية هي أنظف المظهر (طفرات أقل وأكثر معزولة) من مؤامرة الارتباط الذاتي الجزئي المتبقي. إذا لم يكن هناك فرق غير موسمي في النموذج أندور الترابط الذاتي 1 تأخر إيجابي و أن مؤامرة الارتباط الذاتي الجزئي المتبقي تبدو أكثر نظافة، ثم حاول p1. (في بعض الأحيان هذه القواعد للاختيار بين p1 و q1 الصراع مع بعضها البعض، وفي هذه الحالة على الأرجح لا تحدث فرقا كبيرا أي واحد كنت تستخدم. حاول كلاهما ومقارنة.) إذا كان هناك الارتباط الذاتي في تأخر 2 التي لم تتم إزالتها عن طريق وضع p1 أو q1، يمكنك ثم محاولة p2 أو q2، أو في بعض الأحيان p1 و q1. نادرا ما قد تواجه حالات حيث p2 أو 3 و q1، أو العكس بالعكس، تعطي أفضل النتائج. فمن المستحسن بشدة أن لا تستخدم pgt1 و qgt1 في نفس النموذج. بشكل عام، عند تركيب نماذج أريما، يجب تجنب زيادة تعقيد النموذج من أجل الحصول على مزيد من التحسينات الصغيرة جدا في احصائيات الخطأ أو ظهور مؤامرات أسف و باسف. أيضا، في نموذج مع كل pgt1 و qgt1، هناك احتمال جيد من التكرار وعدم التفرد بين أر و ما الجانبين من النموذج، كما هو موضح في الملاحظات على الهيكل الرياضي للنموذج أريما ق. وعادة ما يكون من الأفضل المضي قدما في اتجاه خطوة إلى الأمام بدلا من الاتجاه المتخلف إلى الأمام عندما التغيير والتبديل مواصفات النموذج: تبدأ مع نماذج أبسط وإضافة فقط المزيد من المصطلحات إذا كان هناك حاجة واضحة. وتنطبق نفس القواعد على عدد مصطلحات الانحدار الذاتي الموسمية (P) وعدد مصطلحات المتوسط ​​المتحرك الموسمية (Q) فيما يتعلق بالعلاقة الذاتية في الفترة الموسمية (على سبيل المثال، تأخر 12 في البيانات الشهرية). حاول Q1 إذا كان هناك بالفعل فرق موسمي في نموذج أندور الارتباط الذاتي الموسمية هو سلبي و أوور مؤامرة الارتباط الذاتي المتبقية تبدو أكثر نظافة في محيط الفاصل الموسمية وإلا حاول P1. (إذا كان من المنطقي أن تظهر السلسلة موسمية قوية، فيجب أن تستخدم فرقا موسميا، وإلا فإن النمط الموسمي سوف يتلاشى عند إجراء تنبؤات طويلة الأجل). في بعض الأحيان قد ترغب في تجربة P2 و Q0 أو فيرس v إرسا، أو PQ1. ومع ذلك، فمن المستحسن جدا أن يا يجب ألا يكون أبدا أكبر من 2. أنماط نادرا ما يكون نوع من الانتظام المثالي على عدد كبير بما فيه الكفاية من المواسم التي من شأنها أن تجعل من الممكن تحديد موثوق وتقدير أن العديد من المعلمات. أيضا، خوارزمية باكفوكاستينغ التي يتم استخدامها في تقدير المعلمة من المرجح أن تنتج نتائج لا يمكن الاعتماد عليها (أو حتى مجنون) عندما يكون عدد مواسم البيانات ليست أكبر بكثير من بدق. وأود أن أوصي لا يقل عن PDQ2 مواسم كاملة، وأكثر من ذلك هو أفضل. مرة أخرى، عند تركيب نماذج أريما، يجب أن تكون حذرا لتجنب الإفراط في تركيب البيانات، على الرغم من حقيقة أنه يمكن أن يكون الكثير من المرح بمجرد الحصول على تعليق منه. حالات خاصة هامة: كما ذكر أعلاه، فإن نموذج أريما (0،1،1) بدون ثابت مطابق لنموذج تمهيد أسي بسيط، ويفترض مستوى عائم (أي عدم وجود انعكاس متوسط) ولكن مع اتجاه صفر على المدى الطويل. نموذج أريما (0،1،1) مع ثابت هو نموذج تمهيد الأسي بسيط مع مصطلح الاتجاه الخطي غير الصفر المدرجة. نموذج أريما (0،2،1) أو (0،2،2) بدون ثابت هو نموذج تمهيد أسي خطي يسمح لاتجاه متغير زمنيا. نموذج أريما (1،1،2) بدون ثابت هو نموذج تمهيد أسي خطي مع اتجاه مخفف، أي اتجاه يتسطح في النهاية في التنبؤات الأطول أجلا. نماذج أريما الموسمية الأكثر شيوعا هي أريما (0،1،1) x (0،1،1) نموذج بدون ثابت و أريما (1،0،1) x (0،1،1) نموذج ثابت. الأول من هذه النماذج ينطبق أساسا تمهيد الأسي لكلا المكونات غير الموسمية والموسمية للنمط في البيانات في حين يسمح لاتجاه متغير الوقت، وهذا النموذج الأخير هو تشبه إلى حد ما ولكن يفترض اتجاه خطي ثابت، وبالتالي أكثر قليلا طويلة القدرة على التنبؤ. يجب عليك دائما تضمين هذين النموذجين بين تشكيلة المشتبه بهم عند تركيب البيانات مع أنماط موسمية متسقة. واحد منهم (ربما مع اختلاف طفيف مثل زيادة p أو q بواسطة 1 أندور وضع P1 وكذلك Q1) هو في كثير من الأحيان أفضل. (العودة إلى أعلى الصفحة.) أعمل مع كمية كبيرة من السلاسل الزمنية. وهذه المسلسلات الزمنية هي أساسا قياسات الشبكة قادمة كل 10 دقائق، وبعضها دوري (أي عرض النطاق الترددي)، في حين أن بعض المداخل الأخرى (أي مقدار حركة التوجيه). أود خوارزمية بسيطة للقيام الكشف خارج الإنترنت. في الأساس، أريد أن أبقى في الذاكرة (أو على القرص) البيانات التاريخية كلها لكل سلسلة زمنية، وأريد أن الكشف عن أي خارج في سيناريو الحية (في كل مرة يتم التقاط عينة جديدة). ما هي أفضل طريقة لتحقيق هذه النتائج إم حاليا باستخدام المتوسط ​​المتحرك من أجل إزالة بعض الضوضاء، ولكن بعد ذلك ما بعد الأشياء البسيطة مثل الانحراف المعياري، جنون. ضد مجموعة البيانات كلها لا تعمل بشكل جيد (لا أستطيع أن نفترض أن سلسلة زمنية ثابتة)، وأود أن شيئا أكثر دقة، من الناحية المثالية مربع أسود مثل: ضعف أوتليرديتكتيون (ناقلات مزدوجة، قيمة مزدوجة) حيث ناقلات هو مجموعة من تحتوي على مزدوجة والبيانات التاريخية، وقيمة الإرجاع هي النتيجة الشاذة لقيمة العينة الجديدة. طلب أغسطس 2 10 في 20:37 نعم، لقد افترضت تردد معروف ومحدد. هناك طرق لتقدير التردد تلقائيا، ولكن من شأنها أن تعقد وظيفة إلى حد كبير. إذا كنت بحاجة لتقدير التردد، حاول طرح سؤال منفصل حول ذلك - و I39ll ربما تقديم إجابة ولكن يحتاج مساحة أكبر مما أتيحت في تعليق. نداش روب هيندمان أوج 3 10 في 23:40 وهناك حل جيد لديها العديد من المكونات، بما في ذلك: استخدام مقاومة، والانتقال نافذة على نحو سلس لإزالة نونستاتيوناريتي. إعادة التعبير عن البيانات الأصلية بحيث البقايا فيما يتعلق السلس تقريبا موزعة بشكل متناظر. نظرا لطبيعة البيانات الخاصة بك، من المرجح أن جذورها مربع أو اللوغاريتمات تعطي مخلفات متماثلة. تطبيق أساليب التحكم في الرسم البياني، أو على الأقل مراقبة تخطيط التفكير، إلى بقايا. بقدر ما يذهب آخر واحد، ويظهر الرسم البياني مراقبة الرسم البياني أن العتبات التقليدية مثل 2 سد أو 1.5 أضعاف إقر وراء الربعين تعمل بشكل سيء لأنها تؤدي الكثير من إشارات كاذبة خارج عن السيطرة. الناس عادة استخدام 3 سد في العمل الرسم البياني السيطرة، من حيث 2.5 (أو حتى 3) مرات إقر وراء الرباعي سيكون نقطة انطلاق جيدة. لقد أوضحت بشكل أو بآخر طبيعة حل روب هيندمانز في حين أضافت إليها نقطتين رئيسيتين: الحاجة المحتملة إلى إعادة التعبير عن البيانات والحكمة من كونها أكثر تحفظا في الإشارة إلى أن من الخارج. أنا لست متأكدا من أن لوس هو جيد للكشف عن الانترنت، على الرغم من ذلك لأنه لا يعمل بشكل جيد في النهاية. يمكنك بدلا من ذلك استخدام شيء بسيط مثل مرشح وسيط متحرك (كما هو الحال في توكيس مقاومة التمهيد). إذا لم تأتي القيم المتطرفة في رشقات نارية، يمكنك استخدام نافذة ضيقة (5 نقاط البيانات، ربما، والتي سوف تنهار فقط مع انفجار من 3 أو أكثر القيم المتطرفة ضمن مجموعة من 5). مرة واحدة كنت قد أجريت التحليل لتحديد جيد إعادة التعبير عن البيانات، من غير المرجح أن تحتاج إلى تغيير إعادة التعبير. لذلك، كاشف الانترنت الخاص بك حقا يحتاج فقط إلى الرجوع إلى أحدث القيم (أحدث نافذة) لأنه لن تستخدم البيانات السابقة على الإطلاق. إذا كان لديك سلسلة زمنية طويلة حقا يمكن أن تذهب أبعد من ذلك لتحليل الارتباط الذاتي والموسمية (مثل التقلبات اليومية أو الأسبوعية المتكررة) لتحسين الإجراء. أجاب 26 أغسطس 10 في 18:02 جون، 1.5 إقر هو Tukey39s التوصية الأصلية لأطول شعيرات على بوكسبلوت و 3 إقر هو توصيته لنقاط بمناسبة كما كوتار أوتيرلزكوت (حثالة على عبارة 6039s شعبية). هذا هو في صلب العديد من خوارزميات بوكسبلوت. تم تحليل التوصية نظريا في هواجلين، موستيلر، أمب توكي، فهم تحليل البيانات القوية والاستكشافية. نداش w هيوبر 9830 أوكت 9 12 في 21:38 هذا يؤكد البيانات سلسلة زمنية كنت أحاول تحليل. متوسط ​​النافذة وأيضا انحرافات نافذة قياسية. ((x - أفغ) سد) غ 3 يبدو أن النقاط التي أريد أن أعلم كما المتطرفين. حسنا على الأقل تحذير كما أوتلييرز، وأنا أعلم أي شيء أعلى من 10 سد كما المتطرفين الخطأ المتطرفة. المشكلة التي واجهت هو ما هو مثالي طول نافذة I39m اللعب مع أي شيء بين 4-8 نقاط البيانات. نداش نيوزينيث 29 يونيو 16 في 08:00 الجدد قد يكون أفضل رهان لتجربة مع مجموعة فرعية من البيانات الخاصة بك وتأكيد استنتاجاتك مع اختبارات على ما تبقى. يمكنك إجراء عملية التحقق من صحة أكثر رسمية، أيضا (ولكن هناك حاجة إلى رعاية خاصة مع البيانات سلسلة زمنية بسبب الترابط بين جميع القيم). نداش w هوبر 9830 جون 29 16 في 12:10 (ردت هذه الإجابة على سؤال مكررة (مغلق الآن) في الكشف عن الأحداث المعلقة التي قدمت بعض البيانات في شكل رسوم بيانية). الكشف الخارجي يعتمد على طبيعة البيانات وعلى ما على استعداد لتحمل عنها. وتعتمد الطرق العامة الغرض على إحصاءات قوية. روح هذا النهج هو وصف الجزء الأكبر من البيانات بطريقة لا تتأثر أي القيم المتطرفة ومن ثم نشير إلى أي القيم الفردية التي لا تناسب هذا التوصيف. لأن هذا هو سلسلة زمنية، فإنه يضيف تعقيد الحاجة إلى (إعادة) الكشف عن القيم المتطرفة على أساس مستمر. إذا كان هذا هو أن يتم ذلك كما تتكشف سلسلة، ثم يسمح لنا فقط لاستخدام البيانات القديمة للكشف، وليس البيانات في المستقبل وعلاوة على ذلك، كحماية ضد العديد من الاختبارات المتكررة، ونحن نريد أن استخدام أسلوب يحتوي على كاذبة منخفضة جدا إيجابي. هذه الاعتبارات تشير إلى تشغيل بسيطة، قوية تتحرك نافذة اختبار خارجي على البيانات. هناك العديد من الاحتمالات، ولكن واحدة بسيطة، من السهل فهمها وسهولة تنفيذها واحد يقوم على تشغيل ماد: متوسط ​​الانحراف المطلق عن الوسيط. ويعد هذا مقياسا قويا قويا للتغير داخل البيانات، وهو ما يشبه الانحراف المعياري. وستكون الذروة البعيدة عدة مدارات أو أكثر من المتوسط. لا يزال هناك بعض الضبط الذي يتعين القيام به. كم من الانحراف عن الجزء الأكبر من البيانات ينبغي أن تعتبر نائية، وإلى أي مدى مرة أخرى في الوقت المناسب ينبغي أن ننظر واحد يتيح ترك هذه كمعلمات للتجريب. تطبيق هيريس R على البيانات x (1،2، لدوتس، n) (مع n1150 لمحاكاة البيانات) مع القيم المقابلة y: تطبق على مجموعة البيانات مثل المنحنى الأحمر موضح في السؤال، وتنتج هذه النتيجة: البيانات مبينة باللون الأحمر، ونافذة 30 يوما من العتبات الوسطية 5 رمادية، والقيم المتطرفة - التي هي ببساطة تلك القيم للبيانات فوق المنحنى الرمادي - باللون الأسود. (لا يمكن حساب العتبة إلا في نهاية النافذة الأولية، وبالنسبة لجميع البيانات الموجودة في هذه النافذة الأولية، تستخدم العتبة الأولى: هذا هو السبب في أن المنحنى الرمادي مسطح بين x0 و x30.) إن آثار تغيير المعلمات هي (أ) زيادة قيمة النافذة سوف تميل إلى تمهيد المنحنى الرمادي و (ب) زيادة عتبة رفع المنحنى الرمادي. ومع ذلك، يمكن للمرء أن يأخذ شريحة أولية من البيانات وتحديد بسرعة المعلمات من المعلمات التي تفصل أفضل القمم البعيدة من بقية البيانات. تطبيق قيم المعلمات هذه للتحقق من بقية البيانات. إذا أظهرت المؤامرة الطريقة تزداد سوءا مع مرور الوقت، وهذا يعني أن طبيعة البيانات تتغير وقد تحتاج المعلمات إلى إعادة ضبط. لاحظ كيف القليل هذا الأسلوب يفترض حول البيانات: أنها لا تحتاج إلى أن توزع عادة أنها لا تحتاج إلى عرض أي دورية أنها لا تحتاج حتى أن تكون غير سلبية. كل ما يفترض هو أن البيانات تتصرف بطريقة مماثلة إلى حد كبير على مر الزمن وأن القمم النائية هي أعلى بشكل واضح من بقية البيانات. إذا كان أي شخص يرغب في تجربة (أو مقارنة بعض الحلول الأخرى إلى واحد عرضت هنا)، وهنا هو رمز كنت تستخدم لإنتاج البيانات مثل تلك المعروضة في السؤال. أنا التخمين متطورة نموذج سلسلة الوقت لن تعمل بالنسبة لك بسبب الوقت الذي يستغرقه للكشف عن القيم المتطرفة باستخدام هذه المنهجية. لذلك، هنا هو الحل: أولا إنشاء خط الأساس أنماط المرور العادية لمدة سنة على أساس التحليل اليدوي للبيانات التاريخية التي تمثل الوقت من اليوم، أيام الأسبوع مقابل عطلة نهاية الأسبوع، شهر من السنة الخ استخدام هذا خط الأساس جنبا إلى جنب مع بعض آلية بسيطة (مثل المتوسط ​​المتحرك الذي اقترحه كارلوس) للكشف عن القيم المتطرفة. قد ترغب أيضا في مراجعة الأدب الإحصائي لمراقبة العملية لبعض الأفكار. نعم، هذا هو بالضبط ما أقوم به: حتى الآن أنا يدويا تقسيم إشارة إلى فترات، بحيث لكل واحد منهم يمكن أن تحدد فترة الثقة التي من المفترض أن تكون إشارة ثابتة، وبالتالي يمكنني استخدام أساليب قياسية مثل كما الانحراف المعياري. المشكلة الحقيقية هي أنني لا يمكن أن تقرر النمط المتوقع لجميع الإشارات يجب أن تحليل، وهذا 39s لماذا I39m تبحث عن شيء أكثر ذكاء. نداش جانلوكا 2 أغسطس 10 في 21:37 هنا هو فكرة واحدة: الخطوة 1: تنفيذ وتقدير نموذج سلسلة زمنية عامة على أساس مرة واحدة استنادا إلى البيانات التاريخية. ويمكن القيام بذلك حاليا. الخطوة 2: استخدام النموذج الناتج للكشف عن القيم المتطرفة. الخطوة 3: في بعض الترددات (ربما كل شهر)، إعادة معايرة نموذج السلاسل الزمنية (وهذا يمكن القيام به حاليا) بحيث كشف الخطوة 2 من القيم المتطرفة لا يذهب كثيرا من خطوة مع أنماط حركة المرور الحالية. هل هذا العمل لسياقك نداش user28 2 أغسطس 10 في 22:24 نعم، قد يعمل هذا. كنت أفكر في نهج مماثل (إعادة حساب خط الأساس كل أسبوع، والتي يمكن أن تكون وحدة المعالجة المركزية مكثفة إذا كان لديك مئات من المتسلسلة الزمنية أحادية المتغيرات لتحليل). راجع للشغل السؤال الصعب الحقيقي هو كوهات هو أفضل خوارزمية على غرار الاسود على غرار النمذجة إشارة عامة تماما، النظر في الضوضاء، وتقدير الاتجاه والموسمية. عفيك، كل نهج في الأدب يتطلب مرحلة صعبة حقا تونينكوت كوتاراميتر، والطريقة الوحيدة التي وجدت التلقائي هو نموذج أريما من قبل هيندمان (روجيندمانزوفتوفوريكاست). أنا في عداد المفقودين شيء نداش جانلوكا 2 أغسطس 10 في 22:38 مرة أخرى، وهذا يعمل بشكل جيد إذا كان من المفترض أن يكون إشارة موسمية من هذا القبيل، ولكن إذا كنت تستخدم سلسلة زمنية مختلفة تماما (أي متوسط ​​تكب رحلة ذهابا وإيابا على مر الزمن )، لن تعمل هذه الطريقة (لأنه سيكون من الأفضل التعامل مع ذلك مع المتوسط ​​العالمي البسيط والانحراف المعياري باستخدام نافذة منزلقة تحتوي على بيانات تاريخية). نداش جانلوكا 2 أغسطس 10 في 22:02 إلا إذا كنت على استعداد لتنفيذ نموذج سلسلة الوقت العام (الذي يجلب في سلبياتها من حيث الكمون الخ) أنا متشائم أنك سوف تجد التنفيذ العام الذي في نفس الوقت هو بسيط بما فيه الكفاية للعمل لجميع أنواع السلاسل الزمنية. نداش user28 أوج 2 10 في 22:06 تعليق آخر: أنا أعرف أن إجابة جيدة قد تكون أيضا قد يقدرون دورية للإشارة، وتقرر الخوارزمية لاستخدامها وفقا ل إيتكوت، ولكن أنا didn39t العثور على حل جيد حقيقي لهذا الآخر (لعبت قليلا مع التحليل الطيفي باستخدام دفت وتحليل الوقت باستخدام وظيفة الارتباط الذاتي، ولكن بلدي سلسلة زمنية تحتوي على الكثير من الضوضاء وهذه الأساليب تعطي بعض النتائج مجنون معظم الوقت) نداش جانلوكا 2 أغسطس 10 في 22:06 A التعليق على التعليق الأخير الخاص بك: that39s لماذا I39m تبحث عن نهج أكثر عمومية، ولكن أنا بحاجة إلى نوع من بوكبلاك كوتكوت لأنني يمكن 39t جعل أي افتراض حول إشارة تحليلها، وبالتالي أنا يمكن 39t إنشاء مجموعة معلمات كوبيست لخوارزمية التعلم. نداش جانلوكا 2 أغسطس 10 في 22:09 لأنه هو سلسلة البيانات الزمنية، مرشح الأسي بسيط en. wikipedia. orgwikiEononsmsmoothing سوف تبسيط البيانات. وهو مرشح جيد جدا منذ كنت لا تحتاج إلى تجميع نقاط البيانات القديمة. مقارنة كل قيمة البيانات تمهيد حديثا مع قيمة أونسموثيد لها. مرة واحدة يتجاوز الانحراف عتبة محددة مسبقا محددة (اعتمادا على ما كنت تعتقد أن أوتلير في البيانات الخاصة بك هو)، ثم الخاص بك خارج يمكن الكشف بسهولة. أجاب 30 أبر 15 في 8:50 هل يمكن استخدام الانحراف المعياري للقياسات N الماضية (لديك لاختيار N مناسبة). وتكون النتيجة الشاذة الجيدة هي عدد الانحرافات المعيارية التي يتم قياسها من المتوسط ​​المتحرك. أجاب 2 أغسطس في 20:48 شكرا لكم على ردكم، ولكن ماذا لو كانت إشارة يحمل موسمية عالية (أي الكثير من القياسات شبكة تتميز بنمط يومي وأسبوعي في نفس الوقت، على سبيل المثال ليلة مقابل يوم أو عطلة نهاية الأسبوع مقابل أيام العمل) لن يعمل نهج قائم على الانحراف المعياري في هذه الحالة. نداش جانلوكا 2 أغسطس 10 في 20:57 على سبيل المثال، إذا حصلت على عينة جديدة كل 10 دقيقة، و I39m القيام كشف خارج النطاق من استخدام النطاق الترددي للشبكة من شركة، وأساسا في 06:00 هذا التدبير سوف تسقط (وهذا هو متوقع نمط عادي تماما)، وسوف يفشل الانحراف المعياري محسوبة على نافذة انزلاق (لأنه سيؤدي إلى تنبيه على وجه اليقين). في الوقت نفسه، إذا انخفض التدبير في 4:00 (الانحراف عن خط الأساس المعتاد)، وهذا هو أوتلير الحقيقي. نداش جانلوكا 2 أغسطس 10 في 20:58 ما أقوم به هو مجموعة القياسات حسب الساعة واليوم من الأسبوع ومقارنة الانحرافات القياسية لذلك. لا يزال لا تصحيح لأشياء مثل العطلات والموسمية الصيفية ولكن الصحيح معظم الوقت. الجانب السلبي هو أنك حقا بحاجة لجمع سنة أو نحو ذلك من البيانات لديك ما يكفي بحيث ستديف يبدأ المنطق. ويكتشف التحليل الطيفي التواتر الدوري في السلاسل الزمنية الثابتة. نهج النطاق الترددي القائم على تقدير الكثافة الطيفية هو النهج الذي أوصي به كخطوة أولى. إذا كان عدم انتظام فترات معينة يعني ذروة أعلى بكثير مما هو نموذجي لتلك الفترة، فإن السلسلة مع مثل هذه المخالفات لن تكون ثابتة وأن الانزياح الطيفي لن يكون مناسبا. ولكن على افتراض أنك قد حددت الفترة التي لديها مخالفات يجب أن تكون قادرة على تحديد ما يقرب من ارتفاع الذروة العادية سيكون ثم يمكن تعيين عتبة على مستوى ما فوق هذا المتوسط ​​لتعيين الحالات غير النظامية. أجاب 3 سبتمبر 12 في 14:59 أقترح المخطط أدناه، والتي ينبغي أن تكون قابلة للتطبيق في يوم أو نحو ذلك: جمع العديد من العينات كما يمكنك الاحتفاظ في الذاكرة إزالة القيم المتطرفة واضحة باستخدام الانحراف المعياري لكل سمة حساب وتخزين مصفوفة الارتباط وكذلك متوسط ​​كل سمة حساب وتخزين المسافات محالانوبيس من كل ما تبذلونه من العينات حساب البذلة: لعينة واحدة التي تريد أن تعرف لها البخاري: استرداد الوسائل، مصفوفة التباين و ماهالانوبيس المسافة ق من التدريب حساب المسافة ماهالانوبيس د لعينتك إرجاع النسبة المئوية التي d يسقط (باستخدام مسافات ماهالانوبيس من التدريب) التي ستكون النتيجة أوتلير الخاص بك: 100 هو خارج المتطرفة المتطرفة. PS. في حساب المسافة ماهالانوبيس. استخدام مصفوفة الارتباط، وليس مصفوفة التباين المشترك. هذا هو أكثر قوة إذا كانت قياسات العينة تختلف في وحدة ورقم. استخدام R لتحليل سلسلة الوقت تحليل سلسلة الوقت هذا الكتيب إيتلز لك كيفية استخدام البرنامج الإحصائي R لتنفيذ بعض التحليلات البسيطة التي هي شائعة في تحليل البيانات سلسلة زمنية. يفترض هذا الكتيب أن القارئ لديه بعض المعرفة الأساسية لتحليل السلاسل الزمنية، والتركيز الرئيسي للكتيب ليس لشرح تحليل السلاسل الزمنية، وإنما شرح كيفية إجراء هذه التحليلات باستخدام R. إذا كنت جديدا على سلسلة زمنية تحليل، وتريد معرفة المزيد عن أي من المفاهيم المقدمة هنا، أود أن أوصي كتاب جامعة مفتوحة 8220Time Series8221 (رمز المنتج M24902)، وهي متاحة من متجر جامعة المفتوحة. في هذا الكتيب، سوف أستخدم مجموعات بيانات السلاسل الزمنية التي تم توفيرها من قبل روب هيندمان في مكتبة بيانات سلسلة الوقت الخاصة به في روبجيندمانتسدل. إذا کنت تحب ھذا الکتیب، قد ترغب أیضا في الاطلاع علی کتیبي حول استخدام R للإحصاءات الطبیة الحیویة، a-little-book-of-r-for-biomedical-statistics. readthedocs. org. وكتيب بلدي حول استخدام R لتحليل متعدد المتغيرات، القليل من الكتاب، قراءة البيانات سلسلة الوقت أول شيء سوف تريد القيام به لتحليل البيانات سلسلة الوقت الخاص بك وسوف يكون لقراءتها في R، ومؤامرة سلسلة زمنية. يمكنك قراءة البيانات إلى R باستخدام وظيفة المسح الضوئي ()، والتي تفترض أن بياناتك لنقاط زمنية متعاقبة موجودة في ملف نص بسيط يحتوي على عمود واحد. على سبيل المثال، يحتوي ملف robjhyndmantsdldatamisckings. dat على بيانات عن عمر وفاة الملوك المتعاقبين لإنجلترا، بدءا من وليام الفاتح (المصدر الأصلي: هيبل و مكليود، 1994). تبدو مجموعة البيانات كما يلي: تم عرض الأسطر القليلة الأولى فقط من الملف. الأسطر الثلاثة الأولى تحتوي على بعض التعليقات على البيانات، ونحن نريد أن نتجاهل هذا عندما نقرأ البيانات إلى R. يمكننا استخدام هذا باستخدام المعلمة 8220skip8221 للدالة المسح الضوئي ()، الذي يحدد عدد الخطوط في الجزء العلوي من ملف لتجاهل. لقراءة الملف في R، تجاهل الخطوط الثلاثة الأولى، ونحن نكتب: في هذه الحالة سن الموت من 42 ملوك المتعاقبة انكلترا قد قرأ في المتغير 8216kings8217. بمجرد قراءة بيانات سلسلة الوقت إلى R، الخطوة التالية هي تخزين البيانات في كائن سلسلة زمنية في R، بحيث يمكنك استخدام R8217s العديد من الوظائف لتحليل بيانات سلسلة الوقت. لتخزين البيانات في كائن سلسلة زمنية، نستخدم الدالة تيسي () في R. على سبيل المثال، لتخزين البيانات في المتغير 8216kings8217 ككائن سلسلة زمنية في R، نكتب: أحيانا مجموعة بيانات سلسلة الوقت التي قد تكون قد جمعت على فترات منتظمة كانت أقل من سنة، على سبيل المثال، شهرية أو ربع سنوية. في هذه الحالة، يمكنك تحديد عدد المرات التي تم جمع البيانات فيها سنويا باستخدام المعلمة 8216frequency8217 في الدالة تيسي (). للحصول على بيانات سلسلة زمنية شهرية، يمكنك تعيين التردد 12، بينما لبيانات سلسلة زمنية ربع سنوية، يمكنك تعيين التردد 4. يمكنك أيضا تحديد السنة الأولى التي تم جمع البيانات، والفاصل الزمني الأول في ذلك العام باستخدام المعلمة 8216start8217 في الدالة تيسي (). على سبيل المثال، إذا كانت نقطة البيانات الأولى تتوافق مع الربع الثاني من عام 1986، يمكنك تعيين ستارتك (1986،2). ومن الأمثلة على ذلك مجموعة بيانات عن عدد المواليد شهريا في مدينة نيويورك، من كانون الثاني / يناير 1946 إلى كانون الأول / ديسمبر 1959 (التي جمعتها نيوتن أصلا). هذه البيانات متوفرة في ملف robjhyndmantsdldatadatanybirths. dat يمكننا قراءة البيانات في R، وتخزينها ككائن سلسلة زمنية، عن طريق كتابة: وبالمثل، يحتوي ملف robjhyndmantsdldatadatafancy. dat المبيعات الشهرية لمتجر للهدايا التذكارية في بلدة منتجع الشاطئ في كوينزلاند، أوستراليا، فور جانوري 1987-ديسمبر 1993 (أورجنال داتا فروم ويلوريت أند هيندمان، 1998). يمكننا قراءة البيانات إلى R عن طريق كتابة: التآمر سلسلة الوقت مرة واحدة كنت قد قرأت سلسلة زمنية في R، فإن الخطوة التالية هي عادة لجعل مؤامرة من البيانات سلسلة الوقت، والتي يمكنك القيام به مع وظيفة plot. ts () في R. على سبيل المثال، لرسم سلسلة زمنية من سن الموت من 42 ملوك المتعاقبة من انكلترا، ونحن نكتب: يمكننا أن نرى من مؤامرة الوقت أن هذه السلسلة الزمنية يمكن وصفها ربما باستخدام نموذج المضافة، منذ التقلبات العشوائية في البيانات هي ثابتة تقريبا في الحجم مع مرور الوقت. وبالمثل، لرسم سلسلة زمنية من عدد المواليد شهريا في مدينة نيويورك، ونحن نكتب: يمكننا أن نرى من هذه السلسلة الزمنية أنه يبدو أن هناك تباين موسمي في عدد المواليد شهريا: هناك ذروة كل صيف ، وحوض صغير كل شتاء. ومرة أخرى، يبدو أن هذه السلسلة الزمنية يمكن وصفها على الأرجح باستخدام نموذج مضاف، حيث أن التقلبات الموسمية ثابتة تقريبا في الحجم بمرور الوقت ولا يبدو أنها تعتمد على مستوى السلاسل الزمنية، ويبدو أن التقلبات العشوائية أيضا ثابت تقريبا في الحجم مع مرور الوقت. وبالمثل، لرسم سلسلة زمنية من المبيعات الشهرية لمتجر الهدايا التذكارية في بلدة منتجع الشاطئ في كوينزلاند، أستراليا، ونحن نكتب: في هذه الحالة، يبدو أن نموذج المضافة ليست مناسبة لوصف هذه السلسلة الزمنية، لأن حجم من التقلبات الموسمية والتقلبات العشوائية ويبدو أن زيادة مع مستوى السلاسل الزمنية. وبالتالي، قد نحتاج إلى تحويل السلاسل الزمنية من أجل الحصول على سلسلة زمنية محولة يمكن وصفها باستخدام نموذج مضاف. على سبيل المثال، يمكننا تحويل السلاسل الزمنية من خلال حساب السجل الطبيعي للبيانات الأصلية: هنا يمكننا أن نرى أن حجم التقلبات الموسمية والتقلبات العشوائية في السلاسل الزمنية المحولة من السجل تبدو ثابتة تقريبا مع مرور الوقت، وتفعل لا تعتمد على مستوى السلاسل الزمنية. وبالتالي، يمكن وصف السلسلة الزمنية المحولة السجل باستخدام نموذج مضاف. تحلیل السلاسل الزمنیة یعني تحلیل السلاسل الزمنیة فصلھا إلی مکوناتھا التأسیسیة، وھي عادة مکونات اتجاهیة ومکون غیر منتظم، وإذا کانت سلسلة زمنیة موسمیة، وھي عنصر موسمي. تحلیل البیانات غیر الموسمية تتألف السلاسل الزمنیة غیر الموسمیة من عنصر الاتجاه ومکون غیر منتظم. تحليل السلسلة الزمنية ينطوي على محاولة لفصل السلاسل الزمنية في هذه المكونات، وهذا هو، تقدير عنصر الاتجاه والمكون غير النظامي. ولتقدير عنصر الاتجاه لسلسلة زمنية غير موسمية يمكن وصفها باستخدام نموذج مضاف، من الشائع استخدام طريقة التجانس، مثل حساب المتوسط ​​المتحرك البسيط للمسلسلات الزمنية. يمكن استخدام الدالة سما () في حزمة 8220TTR8221 R لتسلسل بيانات السلاسل الزمنية باستخدام متوسط ​​متحرك بسيط. لاستخدام هذه الدالة، نحتاج أولا إلى تثبيت حزمة 8220TTR8221 R (للحصول على إرشادات حول كيفية تثبيت حزمة R، راجع كيفية تثبيت حزمة R). بمجرد تثبيت حزمة 8220TTR8221 R يمكنك تحميل حزمة 8220TTR8221 R عن طريق كتابة: يمكنك ثم استخدام الدالة 8220SMA () 8221 لتسلسل البيانات سلسلة الوقت. لاستخدام الدالة سما ()، تحتاج إلى تحديد الترتيب (سبان) للمتوسط ​​المتحرك البسيط، باستخدام المعلمة 8220n8221. على سبيل المثال، لحساب متوسط ​​متحرك بسيط من النظام 5، نقوم بتعيين n5 في الدالة سما (). على سبيل المثال، كما نوقش أعلاه، فإن السلاسل الزمنية لسن الوفاة من 42 ملوك متتالي انكلترا يبدو غير موسمي، ويمكن وصفها على الأرجح باستخدام نموذج اضافي، حيث ان التقلبات العشوائية في البيانات هي ثابتة تقريبا في الحجم فوق الوقت: وبالتالي، يمكننا محاولة لتقدير عنصر الاتجاه من هذه السلسلة الزمنية من خلال تمهيد باستخدام المتوسط ​​المتحرك بسيط. لتسلسل السلاسل الزمنية باستخدام متوسط ​​متحرك بسيط من النظام 3، ومؤامرة البيانات سلسلة الوقت ممهدة، ونحن نكتب: لا يزال يبدو أن هناك الكثير جدا من التقلبات العشوائية في السلاسل الزمنية ممهدة باستخدام المتوسط ​​المتحرك بسيط من النظام 3. وبالتالي، لتقدير عنصر الاتجاه بشكل أكثر دقة، قد نرغب في محاولة تمهيد البيانات بمتوسط ​​متحرك بسيط من أجل أعلى. هذا يأخذ قليلا من التجربة والخطأ، للعثور على كمية مناسبة من التمهيد. على سبيل المثال، يمكننا أن نحاول استخدام متوسط ​​متحرك بسيط من أجل 8: البيانات ممهدة مع متوسط ​​متحرك بسيط من النظام 8 يعطي صورة أوضح عن عنصر الاتجاه، ويمكننا أن نرى أن سن وفاة الملوك الإنجليزية يبدو أن قد انخفض من حوالي 55 سنة إلى حوالي 38 سنة في عهد الملوك الأول 20، ثم ارتفع بعد ذلك إلى حوالي 73 سنة بحلول نهاية عهد الملك ال 40 في السلسلة الزمنية. تحلیل البیانات الموسمية تتألف السلاسل الزمنیة الموسمیة من عنصر الاتجاه، والعنصر الموسمي والمکون غیر النظامي. تحليل السلسلة الزمنية يعني فصل السلسلة الزمنية في هذه المكونات الثلاثة: أي، تقدير هذه المكونات الثلاثة. لتقدير مكون الاتجاه والمكون الموسمية لسلسلة زمنية موسمية يمكن وصفها باستخدام نموذج مضاف، يمكننا استخدام الدالة 8220decompose () 8221 في R. تقوم هذه الدالة بتقدير مكونات الاتجاه، الموسمية، وغير المنتظمة لسلسلة زمنية يمكن وصفها باستخدام نموذج المضافة. الدالة 8220decompose () 8221 تقوم بإرجاع كائن قائمة كنتيجة له ​​حيث يتم تخزين تقديرات المكون الموسمية وعنصر الاتجاه والمكون غير النظامي في العناصر المسماة من كائنات القائمة تلك التي تسمى 8220seasonal8221 و 8220trend8221 و 8220random8221 على التوالي. على سبيل المثال، كما نوقش أعلاه، فإن السلاسل الزمنية لعدد المواليد شهريا في مدينة نيويورك موسمية مع ذروة كل صيف وقاع كل شتاء، ويمكن وصفها على الأرجح باستخدام نموذج مضافة منذ التقلبات الموسمية والعشوائية ويبدو أن تكون ثابتة تقريبا في الحجم مع مرور الوقت: لتقدير الاتجاه، المكونات الموسمية وغير النظامية من هذه السلسلة الزمنية، ونحن نكتب: يتم تخزين القيم المقدرة للمكونات الموسمية، والاتجاه وغير النظامية الآن في متغيرات بيرثستيمزيريزكومبوننتسونسونال، بيرثستيمزيريزكومبوننتسترند و بيرثستيمزيريزكومبونينتساندوماند. على سبيل المثال، يمكننا طباعة القيم المقدرة للمكون الموسمي عن طريق كتابة: يتم إعطاء العوامل الموسمية المقدرة للأشهر من كانون الثاني (يناير) إلى كانون الأول (ديسمبر)، وهي نفسها لكل سنة. وأكبر عامل موسمية هو يوليو (حوالي 1.46)، والأدنى هو لشهر فبراير (حوالي -2.08)، مما يشير إلى أن هناك على ما يبدو ذروة في المواليد في يوليو وحوض في الولادات في فبراير من كل عام. يمكننا رسم الاتجاه المقدر والمكونات الموسمية وغير المنتظمة للسلاسل الزمنية باستخدام الدالة 8220plot () 8221، على سبيل المثال: تظهر المؤامرة أعلاه السلسلة الزمنية الأصلية (أعلى) ومكون الاتجاه المقدر (الثاني من الأعلى) والمكون الموسمي المقدر (الثالث من أعلى)، والمكون غير المنتظم المقدر (أسفل). ونحن نرى أن مكون الاتجاه المقدر يظهر انخفاضا طفيفا من حوالي 24 في عام 1947 إلى حوالي 22 في عام 1948، تليها زيادة مطردة من ثم إلى حوالي 27 في عام 1959. ضبط موسميا إذا كان لديك سلسلة زمنية الموسمية التي يمكن وصفها باستخدام وهو نموذج إضافي، يمكنك ضبط موسميا من خلال تقدير العنصر الموسمية، وطرح المكون الموسمي المقدر من السلسلة الزمنية الأصلية. يمكننا القيام بذلك باستخدام تقدير العنصر الموسمية محسوبة الدالة 8220decompose () 8221. على سبيل المثال، لضبط موسميا من عدد المواليد شهريا في مدينة نيويورك، يمكننا تقدير العنصر الموسمية باستخدام 8220decompose () 8221، ومن ثم طرح المكون الموسمية من سلسلة الوقت الأصلي: يمكننا بعد ذلك رسم سلسلة زمنية معدلة موسميا باستخدام الدالة 8220plot () 8221، وذلك بكتابة: يمكنك أن ترى أن الاختلاف الموسمي قد تمت إزالته من السلسلة الزمنية المعدلة موسميا. سلسلة الوقت المعدلة موسميا الآن يحتوي فقط على عنصر الاتجاه والمكون غير النظامية. ويمكن استخدام التنبؤات باستخدام التمهيد الأسي التمهيد الأسي لجعل التنبؤات قصيرة الأجل للبيانات سلسلة زمنية. تمهيد الأسي بسيط إذا كان لديك سلسلة زمنية يمكن وصفها باستخدام نموذج المضافة مع مستوى ثابت وليس الموسمية، يمكنك استخدام التمهيد الأسي بسيط لجعل التوقعات على المدى القصير. توفر طريقة التجانس الأسي البسيط طريقة لتقدير المستوى عند النقطة الزمنية الحالية. يتم التحكم بالتلميع بواسطة ألفا المعلمة لتقدير المستوى عند نقطة الزمن الحالية. قيمة ألفا تكمن بين 0 و 1. القيم ألفا التي هي قريبة من 0 يعني أنه يتم وضع القليل من الوزن على الملاحظات الأخيرة عند وضع توقعات القيم المستقبلية. على سبيل المثال، يحتوي ملف robjhyndmantsdldatahurstprecip1.dat على مجموع الأمطار السنوية في البوصة إلى لندن، من 1813-1912 (البيانات الأصلية من هيبل وماكلويد، 1994). يمكننا قراءة البيانات إلى R ورسمها من خلال كتابة: يمكنك أن ترى من المؤامرة أن هناك مستوى ثابت تقريبا (متوسط ​​يبقى ثابت في حوالي 25 بوصة). ويبدو أن التقلبات العشوائية في السلاسل الزمنية ثابتة تقريبا في الحجم مع مرور الوقت، ولذلك فمن المناسب وصف البيانات باستخدام نموذج مضاف. وهكذا، يمكننا أن نجعل التنبؤات باستخدام التمهيد الأسي بسيط. لجعل التنبؤات باستخدام التمهيد الأسي بسيط في R، يمكننا أن تناسب نموذج التنميق الأسي بسيط الأسي باستخدام 8220HoltWinters () 8221 الدالة في R. لاستخدام هولتوينترز () لتمهيد الأسي بسيط، نحن بحاجة إلى تعيين المعلمات بيتافالس و غامافالس في دالة هولتوينترز () تستخدم معلمات بيتا و غاما من أجل التمدد الأسي هولت 8217s، أو التمدد الأسي هولت-وينتر، كما هو موضح أدناه). ترجع الدالة هولتوينترس () متغير قائمة يحتوي على العديد من العناصر المسماة. على سبيل المثال، لاستخدام تمهيد الأسي بسيط لجعل التنبؤات لسلسلة زمنية من هطول الأمطار السنوي في لندن، ونحن نكتب: إخراج هولتوينترس () يخبرنا أن القيمة المقدرة للمعلمة ألفا حوالي 0.024. وهذا قريب جدا من الصفر، يخبرنا أن التنبؤات تستند إلى ملاحظات حديثة وأقل حداثة (على الرغم من أنه قد تم وضع وزن أكبر نسبيا على الملاحظات الأخيرة). افتراضيا، هولتوينترس () يجعل مجرد توقعات لنفس الفترة الزمنية التي تغطيها لدينا سلسلة زمنية الأصلي. في هذه الحالة، شملت سلسلة زمنية لدينا الأصلية هطول الأمطار في لندن من 1813-1912، وبالتالي فإن التوقعات هي أيضا 1813-1912. في المثال أعلاه، قمنا بتخزين إخراج الدالة هولتوينترس () في متغير القائمة 8220rainseriesforecasts8221. يتم تخزين التنبؤات التي قام بها هولتوينترز () في عنصر اسمه من هذا المتغير قائمة تسمى 8220fitted8221، حتى نتمكن من الحصول على قيمهم عن طريق كتابة: يمكننا رسم سلسلة زمنية الأصلي ضد التوقعات عن طريق كتابة: المؤامرة يظهر سلسلة الوقت الأصلي في الأسود، والتنبؤات كخط أحمر. السلاسل الزمنية للتنبؤات أكثر سلاسة من السلاسل الزمنية للبيانات الأصلية هنا. وكمقياس لدقة التنبؤات، يمكننا حساب مجموع الأخطاء المربعة لأخطاء التنبؤ داخل العينة، أي أخطاء التنبؤ للفترة الزمنية التي تغطيها السلاسل الزمنية الأصلية. يتم تخزين مجموع-مربع-أخطاء في عنصر اسمه من المتغير قائمة 8220rainseriesforecasts8221 يسمى 8220SSE8221، حتى نتمكن من الحصول على قيمته عن طريق كتابة: وهذا هو، هنا مجموع من مربع-الأخطاء هو 1828.855. ومن الشائع في التمهيد الأسي بسيط لاستخدام القيمة الأولى في السلاسل الزمنية كقيمة أولية للمستوى. على سبيل المثال، في السلسلة الزمنية لسقوط الأمطار في لندن، القيمة الأولى هي 23.56 (بوصة) للمطر في 1813. يمكنك تحديد القيمة الأولية للمستوى في الدالة هولتوينترس () باستخدام المعلمة 8220l. start8221. على سبيل المثال، لجعل التوقعات مع القيمة الأولية للمستوى المحدد إلى 23.56، نكتب: كما هو موضح أعلاه، افتراضيا هولتوينترس () يجعل فقط التوقعات للفترة الزمنية التي تغطيها البيانات الأصلية، وهو 1813-1912 لهطول الأمطار السلاسل الزمنية. يمكننا أن نجعل التنبؤات لمزيد من النقاط الزمنية باستخدام 8220forecast. HoltWinters () 8221 وظيفة في حزمة R 8220forecast8221. لاستخدام وظيفة. HoltWinters ()، نحتاج أولا إلى تثبيت حزمة 8220forecast8221 R (للحصول على إرشادات حول كيفية تثبيت حزمة R، راجع كيفية تثبيت حزمة R). Once you have installed the 8220forecast8221 R package, you can load the 8220forecast8221 R package by typing: When using the forecast. HoltWinters() function, as its first argument (input), you pass it the predictive model that you have already fitted using the HoltWinters() function. For example, in the case of the rainfall time series, we stored the predictive model made using HoltWinters() in the variable 8220rainseriesforecasts8221. You specify how many further time points you want to make forecasts for by using the 8220h8221 parameter in forecast. HoltWinters(). For example, to make a forecast of rainfall for the years 1814-1820 (8 more years) using forecast. HoltWinters(), we type: The forecast. HoltWinters() function gives you the forecast for a year, a 80 prediction interval for the forecast, and a 95 prediction interval for the forecast. For example, the forecasted rainfall for 1920 is about 24.68 inches, with a 95 prediction interval of (16.24, 33.11). To plot the predictions made by forecast. HoltWinters(), we can use the 8220plot. forecast()8221 function: Here the forecasts for 1913-1920 are plotted as a blue line, the 80 prediction interval as an orange shaded area, and the 95 prediction interval as a yellow shaded area. The 8216forecast errors8217 are calculated as the observed values minus predicted values, for each time point. We can only calculate the forecast errors for the time period covered by our original time series, which is 1813-1912 for the rainfall data. As mentioned above, one measure of the accuracy of the predictive model is the sum-of-squared-errors (SSE) for the in-sample forecast errors. The in-sample forecast errors are stored in the named element 8220residuals8221 of the list variable returned by forecast. HoltWinters(). If the predictive model cannot be improved upon, there should be no correlations between forecast errors for successive predictions. In other words, if there are correlations between forecast errors for successive predictions, it is likely that the simple exponential smoothing forecasts could be improved upon by another forecasting technique. To figure out whether this is the case, we can obtain a correlogram of the in-sample forecast errors for lags 1-20. We can calculate a correlogram of the forecast errors using the 8220acf()8221 function in R. To specify the maximum lag that we want to look at, we use the 8220lag. max8221 parameter in acf(). For example, to calculate a correlogram of the in-sample forecast errors for the London rainfall data for lags 1-20, we type: You can see from the sample correlogram that the autocorrelation at lag 3 is just touching the significance bounds. To test whether there is significant evidence for non-zero correlations at lags 1-20, we can carry out a Ljung-Box test. This can be done in R using the 8220Box. test()8221, function. The maximum lag that we want to look at is specified using the 8220lag8221 parameter in the Box. test() function. For example, to test whether there are non-zero autocorrelations at lags 1-20, for the in-sample forecast errors for London rainfall data, we type: Here the Ljung-Box test statistic is 17.4, and the p-value is 0.6, so there is little evidence of non-zero autocorrelations in the in-sample forecast errors at lags 1-20. To be sure that the predictive model cannot be improved upon, it is also a good idea to check whether the forecast errors are normally distributed with mean zero and constant variance. To check whether the forecast errors have constant variance, we can make a time plot of the in-sample forecast errors: The plot shows that the in-sample forecast errors seem to have roughly constant variance over time, although the size of the fluctuations in the start of the time series (1820-1830) may be slightly less than that at later dates (eg. 1840-1850). To check whether the forecast errors are normally distributed with mean zero, we can plot a histogram of the forecast errors, with an overlaid normal curve that has mean zero and the same standard deviation as the distribution of forecast errors. To do this, we can define an R function 8220plotForecastErrors()8221, below: You will have to copy the function above into R in order to use it. You can then use plotForecastErrors() to plot a histogram (with overlaid normal curve) of the forecast errors for the rainfall predictions: The plot shows that the distribution of forecast errors is roughly centred on zero, and is more or less normally distributed, although it seems to be slightly skewed to the right compared to a normal curve. However, the right skew is relatively small, and so it is plausible that the forecast errors are normally distributed with mean zero. The Ljung-Box test showed that there is little evidence of non-zero autocorrelations in the in-sample forecast errors, and the distribution of forecast errors seems to be normally distributed with mean zero. This suggests that the simple exponential smoothing method provides an adequate predictive model for London rainfall, which probably cannot be improved upon. Furthermore, the assumptions that the 80 and 95 predictions intervals were based upon (that there are no autocorrelations in the forecast errors, and the forecast errors are normally distributed with mean zero and constant variance) are probably valid. Holt8217s Exponential Smoothing If you have a time series that can be described using an additive model with increasing or decreasing trend and no seasonality, you can use Holt8217s exponential smoothing to make short-term forecasts. Holt8217s exponential smoothing estimates the level and slope at the current time point. Smoothing is controlled by two parameters, alpha, for the estimate of the level at the current time point, and beta for the estimate of the slope b of the trend component at the current time point. As with simple exponential smoothing, the paramters alpha and beta have values between 0 and 1, and values that are close to 0 mean that little weight is placed on the most recent observations when making forecasts of future values. An example of a time series that can probably be described using an additive model with a trend and no seasonality is the time series of the annual diameter of women8217s skirts at the hem, from 1866 to 1911. The data is available in the file robjhyndmantsdldatarobertsskirts. dat (original data from Hipel and McLeod, 1994). We can read in and plot the data in R by typing: We can see from the plot that there was an increase in hem diameter from about 600 in 1866 to about 1050 in 1880, and that afterwards the hem diameter decreased to about 520 in 1911. To make forecasts, we can fit a predictive model using the HoltWinters() function in R. To use HoltWinters() for Holt8217s exponential smoothing, we need to set the parameter gammaFALSE (the gamma parameter is used for Holt-Winters exponential smoothing, as described below). For example, to use Holt8217s exponential smoothing to fit a predictive model for skirt hem diameter, we type: The estimated value of alpha is 0.84, and of beta is 1.00. These are both high, telling us that both the estimate of the current value of the level, and of the slope b of the trend component, are based mostly upon very recent observations in the time series. This makes good intuitive sense, since the level and the slope of the time series both change quite a lot over time. The value of the sum-of-squared-errors for the in-sample forecast errors is 16954. We can plot the original time series as a black line, with the forecasted values as a red line on top of that, by typing: We can see from the picture that the in-sample forecasts agree pretty well with the observed values, although they tend to lag behind the observed values a little bit. If you wish, you can specify the initial values of the level and the slope b of the trend component by using the 8220l. start8221 and 8220b. start8221 arguments for the HoltWinters() function. It is common to set the initial value of the level to the first value in the time series (608 for the skirts data), and the initial value of the slope to the second value minus the first value (9 for the skirts data). For example, to fit a predictive model to the skirt hem data using Holt8217s exponential smoothing, with initial values of 608 for the level and 9 for the slope b of the trend component, we type: As for simple exponential smoothing, we can make forecasts for future times not covered by the original time series by using the forecast. HoltWinters() function in the 8220forecast8221 package. For example, our time series data for skirt hems was for 1866 to 1911, so we can make predictions for 1912 to 1930 (19 more data points), and plot them, by typing: The forecasts are shown as a blue line, with the 80 prediction intervals as an orange shaded area, and the 95 prediction intervals as a yellow shaded area. As for simple exponential smoothing, we can check whether the predictive model could be improved upon by checking whether the in-sample forecast errors show non-zero autocorrelations at lags 1-20. For example, for the skirt hem data, we can make a correlogram, and carry out the Ljung-Box test, by typing: Here the correlogram shows that the sample autocorrelation for the in-sample forecast errors at lag 5 exceeds the significance bounds. However, we would expect one in 20 of the autocorrelations for the first twenty lags to exceed the 95 significance bounds by chance alone. Indeed, when we carry out the Ljung-Box test, the p-value is 0.47, indicating that there is little evidence of non-zero autocorrelations in the in-sample forecast errors at lags 1-20. As for simple exponential smoothing, we should also check that the forecast errors have constant variance over time, and are normally distributed with mean zero. We can do this by making a time plot of forecast errors, and a histogram of the distribution of forecast errors with an overlaid normal curve: The time plot of forecast errors shows that the forecast errors have roughly constant variance over time. The histogram of forecast errors show that it is plausible that the forecast errors are normally distributed with mean zero and constant variance. Thus, the Ljung-Box test shows that there is little evidence of autocorrelations in the forecast errors, while the time plot and histogram of forecast errors show that it is plausible that the forecast errors are normally distributed with mean zero and constant variance. Therefore, we can conclude that Holt8217s exponential smoothing provides an adequate predictive model for skirt hem diameters, which probably cannot be improved upon. In addition, it means that the assumptions that the 80 and 95 predictions intervals were based upon are probably valid. Holt-Winters Exponential Smoothing If you have a time series that can be described using an additive model with increasing or decreasing trend and seasonality, you can use Holt-Winters exponential smoothing to make short-term forecasts. Holt-Winters exponential smoothing estimates the level, slope and seasonal component at the current time point. Smoothing is controlled by three parameters: alpha, beta, and gamma, for the estimates of the level, slope b of the trend component, and the seasonal component, respectively, at the current time point. The parameters alpha, beta and gamma all have values between 0 and 1, and values that are close to 0 mean that relatively little weight is placed on the most recent observations when making forecasts of future values. An example of a time series that can probably be described using an additive model with a trend and seasonality is the time series of the log of monthly sales for the souvenir shop at a beach resort town in Queensland, Australia (discussed above): To make forecasts, we can fit a predictive model using the HoltWinters() function. For example, to fit a predictive model for the log of the monthly sales in the souvenir shop, we type: The estimated values of alpha, beta and gamma are 0.41, 0.00, and 0.96, respectively. The value of alpha (0.41) is relatively low, indicating that the estimate of the level at the current time point is based upon both recent observations and some observations in the more distant past. The value of beta is 0.00, indicating that the estimate of the slope b of the trend component is not updated over the time series, and instead is set equal to its initial value. This makes good intuitive sense, as the level changes quite a bit over the time series, but the slope b of the trend component remains roughly the same. In contrast, the value of gamma (0.96) is high, indicating that the estimate of the seasonal component at the current time point is just based upon very recent observations. As for simple exponential smoothing and Holt8217s exponential smoothing, we can plot the original time series as a black line, with the forecasted values as a red line on top of that: We see from the plot that the Holt-Winters exponential method is very successful in predicting the seasonal peaks, which occur roughly in November every year. To make forecasts for future times not included in the original time series, we use the 8220forecast. HoltWinters()8221 function in the 8220forecast8221 package. For example, the original data for the souvenir sales is from January 1987 to December 1993. If we wanted to make forecasts for January 1994 to December 1998 (48 more months), and plot the forecasts, we would type: The forecasts are shown as a blue line, and the orange and yellow shaded areas show 80 and 95 prediction intervals, respectively. We can investigate whether the predictive model can be improved upon by checking whether the in-sample forecast errors show non-zero autocorrelations at lags 1-20, by making a correlogram and carrying out the Ljung-Box test: The correlogram shows that the autocorrelations for the in-sample forecast errors do not exceed the significance bounds for lags 1-20. Furthermore, the p-value for Ljung-Box test is 0.6, indicating that there is little evidence of non-zero autocorrelations at lags 1-20. We can check whether the forecast errors have constant variance over time, and are normally distributed with mean zero, by making a time plot of the forecast errors and a histogram (with overlaid normal curve): From the time plot, it appears plausible that the forecast errors have constant variance over time. From the histogram of forecast errors, it seems plausible that the forecast errors are normally distributed with mean zero. Thus, there is little evidence of autocorrelation at lags 1-20 for the forecast errors, and the forecast errors appear to be normally distributed with mean zero and constant variance over time. This suggests that Holt-Winters exponential smoothing provides an adequate predictive model of the log of sales at the souvenir shop, which probably cannot be improved upon. Furthermore, the assumptions upon which the prediction intervals were based are probably valid. ARIMA Models Exponential smoothing methods are useful for making forecasts, and make no assumptions about the correlations between successive values of the time series. However, if you want to make prediction intervals for forecasts made using exponential smoothing methods, the prediction intervals require that the forecast errors are uncorrelated and are normally distributed with mean zero and constant variance. While exponential smoothing methods do not make any assumptions about correlations between successive values of the time series, in some cases you can make a better predictive model by taking correlations in the data into account. Autoregressive Integrated Moving Average (ARIMA) models include an explicit statistical model for the irregular component of a time series, that allows for non-zero autocorrelations in the irregular component. Differencing a Time Series ARIMA models are defined for stationary time series. Therefore, if you start off with a non-stationary time series, you will first need to 8216difference8217 the time series until you obtain a stationary time series. If you have to difference the time series d times to obtain a stationary series, then you have an ARIMA(p, d,q) model, where d is the order of differencing used. You can difference a time series using the 8220diff()8221 function in R. For example, the time series of the annual diameter of women8217s skirts at the hem, from 1866 to 1911 is not stationary in mean, as the level changes a lot over time: We can difference the time series (which we stored in 8220skirtsseries8221, see above) once, and plot the differenced series, by typing: The resulting time series of first differences (above) does not appear to be stationary in mean. Therefore, we can difference the time series twice, to see if that gives us a stationary time series: Formal tests for stationarity Formal tests for stationarity called 8220unit root tests8221 are available in the fUnitRoots package, available on CRAN, but will not be discussed here. The time series of second differences (above) does appear to be stationary in mean and variance, as the level of the series stays roughly constant over time, and the variance of the series appears roughly constant over time. Thus, it appears that we need to difference the time series of the diameter of skirts twice in order to achieve a stationary series. If you need to difference your original time series data d times in order to obtain a stationary time series, this means that you can use an ARIMA(p, d,q) model for your time series, where d is the order of differencing used. For example, for the time series of the diameter of women8217s skirts, we had to difference the time series twice, and so the order of differencing (d) is 2. This means that you can use an ARIMA(p,2,q) model for your time series. The next step is to figure out the values of p and q for the ARIMA model. Another example is the time series of the age of death of the successive kings of England (see above): From the time plot (above), we can see that the time series is not stationary in mean. To calculate the time series of first differences, and plot it, we type: The time series of first differences appears to be stationary in mean and variance, and so an ARIMA(p,1,q) model is probably appropriate for the time series of the age of death of the kings of England. By taking the time series of first differences, we have removed the trend component of the time series of the ages at death of the kings, and are left with an irregular component. We can now examine whether there are correlations between successive terms of this irregular component if so, this could help us to make a predictive model for the ages at death of the kings. Selecting a Candidate ARIMA Model If your time series is stationary, or if you have transformed it to a stationary time series by differencing d times, the next step is to select the appropriate ARIMA model, which means finding the values of most appropriate values of p and q for an ARIMA(p, d,q) model. To do this, you usually need to examine the correlogram and partial correlogram of the stationary time series. To plot a correlogram and partial correlogram, we can use the 8220acf()8221 and 8220pacf()8221 functions in R, respectively. To get the actual values of the autocorrelations and partial autocorrelations, we set 8220plotFALSE8221 in the 8220acf()8221 and 8220pacf()8221 functions. Example of the Ages at Death of the Kings of England For example, to plot the correlogram for lags 1-20 of the once differenced time series of the ages at death of the kings of England, and to get the values of the autocorrelations, we type: We see from the correlogram that the autocorrelation at lag 1 (-0.360) exceeds the significance bounds, but all other autocorrelations between lags 1-20 do not exceed the significance bounds. To plot the partial correlogram for lags 1-20 for the once differenced time series of the ages at death of the English kings, and get the values of the partial autocorrelations, we use the 8220pacf()8221 function, by typing: The partial correlogram shows that the partial autocorrelations at lags 1, 2 and 3 exceed the significance bounds, are negative, and are slowly decreasing in magnitude with increasing lag (lag 1: -0.360, lag 2: -0.335, lag 3:-0.321). The partial autocorrelations tail off to zero after lag 3. Since the correlogram is zero after lag 1, and the partial correlogram tails off to zero after lag 3, this means that the following ARMA (autoregressive moving average) models are possible for the time series of first differences: an ARMA(3,0) model, that is, an autoregressive model of order p3, since the partial autocorrelogram is zero after lag 3, and the autocorrelogram tails off to zero (although perhaps too abruptly for this model to be appropriate) an ARMA(0,1) model, that is, a moving average model of order q1, since the autocorrelogram is zero after lag 1 and the partial autocorrelogram tails off to zero an ARMA(p, q) model, that is, a mixed model with p and q greater than 0, since the autocorrelogram and partial correlogram tail off to zero (although the correlogram probably tails off to zero too abruptly for this model to be appropriate) We use the principle of parsimony to decide which model is best: that is, we assum e that the model with the fewest parameters is best. The ARMA(3,0) model has 3 parameters, the ARMA(0,1) model has 1 parameter, and the ARMA(p, q) model has at least 2 parameters. Therefore, the ARMA(0,1) model is taken as the best model. An ARMA(0,1) model is a moving average model of order 1, or MA(1) model. This model can be written as: Xt - mu Zt - (theta Zt-1), where Xt is the stationary time series we are studying (the first differenced series of ages at death of English kings), mu is the mean of time series Xt, Zt is white noise with mean zero and constant variance, and theta is a parameter that can be estimated. A MA (moving average) model is usually used to model a time series that shows short-term dependencies between successive observations. Intuitively, it makes good sense that a MA model can be used to describe the irregular component in the time series of ages at death of English kings, as we might expect the age at death of a particular English king to have some effect on the ages at death of the next king or two, but not much effect on the ages at death of kings that reign much longer after that. Shortcut: the auto. arima() function The auto. arima() function can be used to find the appropriate ARIMA model, eg. type 8220library(forecast)8221, then 8220auto. arima(kings)8221. The output says an appropriate model is ARIMA(0,1,1). Since an ARMA(0,1) model (with p0, q1) is taken to be the best candidate model for the time series of first differences of the ages at death of English kings, then the original time series of the ages of death can be modelled using an ARIMA(0,1,1) model (with p0, d1, q1, where d is the order of differencing required). Example of the Volcanic Dust Veil in the Northern Hemisphere Let8217s take another example of selecting an appropriate ARIMA model. The file file robjhyndmantsdldataannualdvi. dat contains data on the volcanic dust veil index in the northern hemisphere, from 1500-1969 (original data from Hipel and Mcleod, 1994). This is a measure of the impact of volcanic eruptions8217 release of dust and aerosols into the environment. We can read it into R and make a time plot by typing: From the time plot, it appears that the random fluctuations in the time series are roughly constant in size over time, so an additive model is probably appropriate for describing this time series. Furthermore, the time series appears to be stationary in mean and variance, as its level and variance appear to be roughly constant over time. Therefore, we do not need to difference this series in order to fit an ARIMA model, but can fit an ARIMA model to the original series (the order of differencing required, d, is zero here). We can now plot a correlogram and partial correlogram for lags 1-20 to investigate what ARIMA model to use: We see from the correlogram that the autocorrelations for lags 1, 2 and 3 exceed the significance bounds, and that the autocorrelations tail off to zero after lag 3. The autocorrelations for lags 1, 2, 3 are positive, and decrease in magnitude with increasing lag (lag 1: 0.666, lag 2: 0.374, lag 3: 0.162). The autocorrelation for lags 19 and 20 exceed the significance bounds too, but it is likely that this is due to chance, since they just exceed the significance bounds (especially for lag 19), the autocorrelations for lags 4-18 do not exceed the signifiance bounds, and we would expect 1 in 20 lags to exceed the 95 significance bounds by chance alone. From the partial autocorrelogram, we see that the partial autocorrelation at lag 1 is positive and exceeds the significance bounds (0.666), while the partial autocorrelation at lag 2 is negative and also exceeds the significance bounds (-0.126). The partial autocorrelations tail off to zero after lag 2. Since the correlogram tails off to zero after lag 3, and the partial correlogram is zero after lag 2, the following ARMA models are possible for the time series: an ARMA(2,0) model, since the partial autocorrelogram is zero after lag 2, and the correlogram tails off to zero after lag 3, and the partial correlogram is zero after lag 2 an ARMA(0,3) model, since the autocorrelogram is zero after lag 3, and the partial correlogram tails off to zero (although perhaps too abruptly for this model to be appropriate) an ARMA(p, q) mixed model, since the correlogram and partial correlogram tail off to zero (although the partial correlogram perhaps tails off too abruptly for this model to be appropriate) Shortcut: the auto. arima() function Again, we can use auto. arima() to find an appropriate model, by typing 8220auto. arima(volcanodust)8221, which gives us ARIMA(1,0,2), which has 3 parameters. However, different criteria can be used to select a model (see auto. arima() help page). If we use the 8220bic8221 criterion, which penalises the number of parameters, we get ARIMA(2,0,0), which is ARMA(2,0): 8220auto. arima(volcanodust, ic8221bic8221)8221. The ARMA(2,0) model has 2 parameters, the ARMA(0,3) model has 3 parameters, and the ARMA(p, q) model has at least 2 parameters. Therefore, using the principle of parsimony, the ARMA(2,0) model and ARMA(p, q) model are equally good candidate models. An ARMA(2,0) model is an autoregressive model of order 2, or AR(2) model. This model can be written as: Xt - mu (Beta1 (Xt-1 - mu)) (Beta2 (Xt-2 - mu)) Zt, where Xt is the stationary time series we are studying (the time series of volcanic dust veil index), mu is the mean of time series Xt, Beta1 and Beta2 are parameters to be estimated, and Zt is white noise with mean zero and constant variance. An AR (autoregressive) model is usually used to model a time series which shows longer term dependencies between successive observations. Intuitively, it makes sense that an AR model could be used to describe the time series of volcanic dust veil index, as we would expect volcanic dust and aerosol levels in one year to affect those in much later years, since the dust and aerosols are unlikely to disappear quickly. If an ARMA(2,0) model (with p2, q0) is used to model the time series of volcanic dust veil index, it would mean that an ARIMA(2,0,0) model can be used (with p2, d0, q0, where d is the order of differencing required). Similarly, if an ARMA(p, q) mixed model is used, where p and q are both greater than zero, than an ARIMA(p,0,q) model can be used. Forecasting Using an ARIMA Model Once you have selected the best candidate ARIMA(p, d,q) model for your time series data, you can estimate the parameters of that ARIMA model, and use that as a predictive model for making forecasts for future values of your time series. You can estimate the parameters of an ARIMA(p, d,q) model using the 8220arima()8221 function in R. Example of the Ages at Death of the Kings of England For example, we discussed above that an ARIMA(0,1,1) model seems a plausible model for the ages at deaths of the kings of England. You can specify the values of p, d and q in the ARIMA model by using the 8220order8221 argument of the 8220arima()8221 function in R. To fit an ARIMA(p, d,q) model to this time series (which we stored in the variable 8220kingstimeseries8221, see above), we type: As mentioned above, if we are fitting an ARIMA(0,1,1) model to our time series, it means we are fitting an an ARMA(0,1) model to the time series of first differences. An ARMA(0,1) model can be written Xt - mu Zt - (theta Zt-1), where theta is a parameter to be estimated. From the output of the 8220arima()8221 R function (above), the estimated value of theta (given as 8216ma18217 in the R output) is -0.7218 in the case of the ARIMA(0,1,1) model fitted to the time series of ages at death of kings. Specifying the confidence level for prediction intervals You can specify the confidence level for prediction intervals in forecast. Arima() by using the 8220level8221 argument. For example, to get a 99.5 prediction interval, we would type 8220forecast. Arima(kingstimeseriesarima, h5, levelc(99.5))8221. We can then use the ARIMA model to make forecasts for future values of the time series, using the 8220forecast. Arima()8221 function in the 8220forecast8221 R package. For example, to forecast the ages at death of the next five English kings, we type: The original time series for the English kings includes the ages at death of 42 English kings. The forecast. Arima() function gives us a forecast of the age of death of the next five English kings (kings 43-47), as well as 80 and 95 prediction intervals for those predictions. The age of death of the 42nd English king was 56 years (the last observed value in our time series), and the ARIMA model gives the forecasted age at death of the next five kings as 67.8 years. We can plot the observed ages of death for the first 42 kings, as well as the ages that would be predicted for these 42 kings and for the next 5 kings using our ARIMA(0,1,1) model, by typing: As in the case of exponential smoothing models, it is a good idea to investigate whether the forecast errors of an ARIMA model are normally distributed with mean zero and constant variance, and whether the are correlations between successive forecast errors. For example, we can make a correlogram of the forecast errors for our ARIMA(0,1,1) model for the ages at death of kings, and perform the Ljung-Box test for lags 1-20, by typing: Since the correlogram shows that none of the sample autocorrelations for lags 1-20 exceed the significance bounds, and the p-value for the Ljung-Box test is 0.9, we can conclude that there is very little evidence for non-zero autocorrelations in the forecast errors at lags 1-20. To investigate whether the forecast errors are normally distributed with mean zero and constant variance, we can make a time plot and histogram (with overlaid normal curve) of the forecast errors: The time plot of the in-sample forecast errors shows that the variance of the forecast errors seems to be roughly constant over time (though perhaps there is slightly higher variance for the second half of the time series). The histogram of the time series shows that the forecast errors are roughly normally distributed and the mean seems to be close to zero. Therefore, it is plausible that the forecast errors are normally distributed with mean zero and constant variance. Since successive forecast errors do not seem to be correlated, and the forecast errors seem to be normally distributed with mean zero and constant variance, the ARIMA(0,1,1) does seem to provide an adequate predictive model for the ages at death of English kings. Example of the Volcanic Dust Veil in the Northern Hemisphere We discussed above that an appropriate ARIMA model for the time series of volcanic dust veil index may be an ARIMA(2,0,0) model. To fit an ARIMA(2,0,0) model to this time series, we can type: As mentioned above, an ARIMA(2,0,0) model can be written as: written as: Xt - mu (Beta1 (Xt-1 - mu)) (Beta2 (Xt-2 - mu)) Zt, where Beta1 and Beta2 are parameters to be estimated. The output of the arima() function tells us that Beta1 and Beta2 are estimated as 0.7533 and -0.1268 here (given as ar1 and ar2 in the output of arima()). Now we have fitted the ARIMA(2,0,0) model, we can use the 8220forecast. ARIMA()8221 model to predict future values of the volcanic dust veil index. The original data includes the years 1500-1969. To make predictions for the years 1970-2000 (31 more years), we type: We can plot the original time series, and the forecasted values, by typing: One worrying thing is that the model has predicted negative values for the volcanic dust veil index, but this variable can only have positive values The reason is that the arima() and forecast. Arima() functions don8217t know that the variable can only take positive values. Clearly, this is not a very desirable feature of our current predictive model. Again, we should investigate whether the forecast errors seem to be correlated, and whether they are normally distributed with mean zero and constant variance. To check for correlations between successive forecast errors, we can make a correlogram and use the Ljung-Box test: The correlogram shows that the sample autocorrelation at lag 20 exceeds the significance bounds. However, this is probably due to chance, since we would expect one out of 20 sample autocorrelations to exceed the 95 significance bounds. Furthermore, the p-value for the Ljung-Box test is 0.2, indicating that there is little evidence for non-zero autocorrelations in the forecast errors for lags 1-20. To check whether the forecast errors are normally distributed with mean zero and constant variance, we make a time plot of the forecast errors, and a histogram: The time plot of forecast errors shows that the forecast errors seem to have roughly constant variance over time. However, the time series of forecast errors seems to have a negative mean, rather than a zero mean. We can confirm this by calculating the mean forecast error, which turns out to be about -0.22: The histogram of forecast errors (above) shows that although the mean value of the forecast errors is negative, the distribution of forecast errors is skewed to the right compared to a normal curve. Therefore, it seems that we cannot comfortably conclude that the forecast errors are normally distributed with mean zero and constant variance Thus, it is likely that our ARIMA(2,0,0) model for the time series of volcanic dust veil index is not the best model that we could make, and could almost definitely be improved upon Links and Further Reading Here are some links for further reading. For a more in-depth introduction to R, a good online tutorial is available on the 8220Kickstarting R8221 website, cran. r-project. orgdoccontribLemon-kickstart . There is another nice (slightly more in-depth) tutorial to R available on the 8220Introduction to R8221 website, cran. r-project. orgdocmanualsR-intro. html . You can find a list of R packages for analysing time series data on the CRAN Time Series Task View webpage . To learn about time series analysis, I would highly recommend the book 8220Time series8221 (product code M24902) by the Open University, available from the Open University Shop . There are two books available in the 8220Use R8221 series on using R for time series analyses, the first is Introductory Time Series with R by Cowpertwait and Metcalfe, and the second is Analysis of Integrated and Cointegrated Time Series with R by Pfaff. Acknowledgements I am grateful to Professor Rob Hyndman. for kindly allowing me to use the time series data sets from his Time Series Data Library (TSDL) in the examples in this booklet. Many of the examples in this booklet are inspired by examples in the excellent Open University book, 8220Time series8221 (product code M24902), available from the Open University Shop . Thank you to Ravi Aranke for bringing auto. arima() to my attention, and Maurice Omane-Adjepong for bringing unit root tests to my attention, and Christian Seubert for noticing a small bug in plotForecastErrors(). Thank you for other comments to Antoine Binard and Bill Johnston. I will be grateful if you will send me (Avril Coghlan) corrections or suggestions for improvements to my email address alc 64 sanger 46 ac 46 uk

No comments:

Post a Comment