درک عمیق از مدل Arima

ساخت وبلاگ

ویژگی های سری زمانی - ثابت بودن ، پایداری ، همبستگی را کاوش کنید

منتشر شده در

به سمت علم داده

14 دقیقه بخوانید 29 اوت 2021

مقدمه ای سریع برای سری زمانی

به طور کلی ، یک مدل برای پیش بینی سری زمانی می تواند به صورت نوشته شود

در جایی که Yₜ متغیرهایی است که باید پیش بینی شود (متغیر وابسته یا متغیر پاسخ) ، T زمانی است که پیش بینی می شود ، H افق پیش بینی ، متغیرهای مورد استفاده در زمان T برای پیش بینی (متغیر مستقل) ، است. θ بردار پارامترها در عملکرد G است و εₜ₊ₕ خطاها را نشان می دهد. شایان ذکر است که داده های مشاهده شده با توجه به زمان مشاهده ، منحصر به فرد منظم است ، اما لازم نیست به زمان وابسته باشد ، یعنی زمان (شاخص مشاهدات) لازم نیست یکی از متغیرهای مستقل باشد.

برخی از خصوصیات ممکن سری زمانی

ثابت بودن: یک فرآیند ثابت یک فرآیند تصادفی است که میانگین ، واریانس و ساختار همبستگی آن با گذشت زمان تغییر نمی کند. همچنین می توان آن را به طور رسمی با استفاده از اصطلاحات ریاضی تعریف کرد ، اما در این مقاله لازم نیست. به طور شهودی ، اگر یک سری زمانی ثابت باشد ، ما به بعضی از قسمت های آنها نگاه می کنیم ، آنها باید بسیار مشابه باشند - سری زمانی به نظر می رسد و شکل به تغییر زمان بستگی ندارد.(بررسی سریع دانش: آیا F (t) = گناه (t) یک فرآیند ثابت است؟ مطمئناً نیست ، زیرا تصادفی نیست ، ثابت بودن یکی از خصوصیات آن نیست)

شکل 1. 1 ساده ترین نمونه یک فرآیند ثابت را نشان می دهد - سر و صدای سفید.

تصویر فوق شکل 1. 2 یک سری زمانی غیر ثابت را نشان می دهد. چرا چنین است؟ما می توانیم روند واضح را ببینیم ، این بدان معنی است که واریانس با گذشت زمان تغییر می کند. اما اگر از رگرسیون خطی استفاده کنیم تا خطی را در آن قرار دهد (برای گرفتن روند) و حذف روند داده ها اکنون یک مکان و واریانس ثابت دارد ، اما به دلیل رفتار دوره ای هنوز ثابت نیست ، که تصادفی نیست.

هنگام استفاده از ARMA برای مدل سازی یک سری زمانی ، یکی از فرضیات این است که داده ها ثابت هستند.

فصلی: فصلی بودن ویژگی نشان دادن تغییرات خاص در یک بازه زمانی خاص است که کوتاه تر از یک سال است (البته می تواند در یک دوره متفاوت باشد.، سپس دوره یک روز است و می تواند فصلی نیز داشته باشد - قله ها ممکن است در ساعت 2 یا 3 بعد از ظهر ظاهر شوند. این بدان معنی است که ما مجبور نیستیم فصل را در زمینه فصلی با استفاده از عقل سلیم تفسیر کنیم) ، ماهانه ، سه ماهه و غیرهنمونه بسیار معمولی از سری زمانی فصلی ، مصرف برق است ، در تابستان میزان مصرف برق معمولاً بیشتر به دلیل تهویه مطبوع بیشتر است.

شکل 1. 5 داده ها را با خصوصیات فصلی نشان می دهد ، به راحتی می توانیم ببینیم که در ماه ژوئیه و آگوست اوج مصرف برق وجود دارد و اوج کوچکتر در ژانویه و دسامبر است. داده های ترسیم شده در شکل 1. 5 استفاده از برق در ایالات متحده از سال 1973 تا 2010 است. USMELEC مجموعه داده های ساخته شده در R. است. استفاده از برق در کل دوره به این شکل است

حضور فصلی ما را ملزم می کند تا روش پیش بینی ها را تنظیم کنیم. به عنوان مثال ، اگر می خواهیم تهویه مطبوع را بفروشیم ، باید به جای نزدیکترین ماه ها ، فروش ماهانه را در آینده با استفاده از فروش در همان فصل در سالهای گذشته پیش بینی کنیم.

تعریف آریما قدم به قدم

یک یادداشت فنی: اپراتور پشتی

چیست؟این یک اپراتور است که متغیر Xₜ را به سمت عقب تغییر می دهد ، که گاهی اوقات به عنوان B (backshift) و گاهی L (LAG) مشخص می شود ، در این مقاله ، ما نماد B را اتخاذ خواهیم کرد.

و اپراتور رو به جلو B⁻⁻ ، که B⁻B = 1 را برآورده می کند.

چرا ما به این نیاز داریم؟به این دلیل است که ما را قادر می سازد تا صریحاً به صورت مختصر - از نظر چند جمله ای - از نظر چند جمله ای - که به ما در تعریف مدل های پیچیده تر کمک می کند - کمک کند. وقتی از چیزی برای نشان دادن چیزی در ریاضی استفاده می کنیم ، همیشه مهم است که ببینیم از چه عملیاتی پشتیبانی می کند. در این حالت ، ما به راحتی می توانیم ببینیم که اپراتور تغییر پشتی به تمام عملیات حسابی روی آن اجازه می دهد: علاوه بر این ، تفریق ، ضرب ، تقسیم ، نمایش و غیره.

یعنی ، به عنوان مثالبا استفاده از اپراتور (1-B) در Xₜ تفاوت Xₜ-Xₜ₋₁ را به ما می دهد ، اگر می خواهیم دوباره تفاوت Xₜ و Xₜ₋₁ را بگیریم ، از اپراتور (1-B) در Xₜ استفاده می کنیم ، که به ما می دهد(1–2b+ b²) xₜ = xₜ-2xₜ₋₁+ xₜ₋₂. این همان (xₜ-xₜ₋₁) است-(xₜ₋₁-xₜ₋₂). در این مثال ، ما با تفاوت مرتبه اول و مرتبه دوم (معادله 2. 12 ، 2. 13) روبرو شدیم که بعداً توضیح داده خواهد شد.

مدل خودکار (AR)

یک مدل اتورگرسیو مرتبه p، به اختصار AP(p)، مقدار فعلی را به صورت ترکیب خطی مقادیر p قبلی مدل می کند. این مدل نام خود را به این ترتیب گرفته است، این یک رگرسیون خطی با خود است. ما اصطلاحات زیادی را در تعریف می بینیم، اما مدل همچنان نگران است که یک متغیره باشد زیرا مقدار فعلی به مقادیر گذشته آن بستگی دارد. این مقادیر از همان متغیری هستند که در مقاطع زمانی مختلف گرفته شده اند، بنابراین در نهایت فقط یک متغیر مورد توجه است. یک مدل تعمیم‌یافته‌تر VAR (خودرگرسیون برداری) است که به سری‌های زمانی چند متغیره اجازه می‌دهد. به طور رسمی، یک مدل خودرگرسیون (یک متغیر) به این صورت تعریف می شود

کجا ₜ~wn(0، σᵥᵥ²)، و ϕ1، ϕ2،…، ϕp (φp ≠ 0) پارامترها هستند. wn به معنای نویز سفید است، توزیع نرمال با میانگین 0 و واریانس σᵥᵥ² دارد. گاهی اوقات نیز یک ثابت در سمت راست معادله 2. 2 وجود دارد که با c نشان داده می شود (پیش بینی: اصول و تمرین فصل 8. 3). نقش ثابت در زیربخش آریما توضیح داده خواهد شد.

از نظر عملگر تغییر مسیر، مدل اتورگرسیو به صورت تعریف شده است

مدل میانگین متحرک (MV).

مدل میانگین متحرک مرتبه q که به اختصار MA(q) نامیده می شود، مقدار فعلی را به صورت ترکیب خطی از عبارت های خطای q قبلی مدل می کند (برخلاف مدل خودرگرسیون، در میانگین متحرک، عبارت خطا است). به طور رسمی، به عنوان تعریف می شود

کجا ₜ~wn(0، σᵥᵥ²)، و θ1، θ2،…، θq (θq ≠ 0) پارامترها هستند. wn به معنای "نویز سفید" است، مانند تعریف مدل خودرگرسیون، دارای توزیع نرمال با میانگین 0 و واریانس σᵥᵥ² است. این نیز یک مدل تک متغیره است. یک ثابت نیز می تواند به تعریف اضافه شود (پیش بینی: اصول و تمرین فصل 8. 4).

از نظر عملگر تغییر مسیر، مدل میانگین متحرک را می توان به صورت تعریف کرد

برخلاف مدل اتورگرسیو، نام این مدل میانگین متحرک چندان واضح نیست. با توجه به پاورقی صفحه 48 در Forecasting with Univariate Box-Jenkins Models (2009): مفاهیم و موارد توسط Pankratz: "برچسب "میانگین متحرک" از نظر فنی نادرست است زیرا ضرایب MA ممکن است منفی باشد و ممکن است جمع واحد نباشد. این برچسب طبق قرارداد استفاده می شود.

یکی دیگر از موارد گیج کننده مفهومی است که شبیه مدل میانگین متحرک، میانگین متحرک، که برای هموارسازی یک سری زمانی استفاده می شود، است. در واقع، این ابزار کاملاً متفاوت است - برای پیش بینی استفاده نمی شود. برای روشن شدن این موضوع از مثالی از میانگین متحرک ساده استفاده می کنیم

پس از مشاهده فرمول ها ، می توانیم ببینیم که برای محاسبه میانگین متحرک K-Th به مقدار K-TH نیاز داریم.

مدل متوسط حرکت خود (ARMA)

مدل ARMA ترکیبی از AR و MA است که کاملاً توضیحی است. ARMA هم مقادیر گذشته و هم اصطلاحات خطای گذشته را در نظر می گیرد و یک فرآیند تصادفی (ضعیف) ثابت را از نظر دو چند جمله ای توصیف می کند. به طور رسمی یک سری زمانی ARMA (P ، Q) اگر ثابت باشد و

جایی که ϕp ≠ 0 ، θq ≠ 0 ، wₜ~ wn(0, σᵥᵥ²), and σᵥᵥ²>0. پارامترهای P و Q به ترتیب سفارشات خودجوش و میانگین در حال حرکت هستند ، همانطور که قبلاً ذکر شد. از نظر اپراتور عقب تغییر ، مدل ARIMA را می توان به عنوان نوشت

این بازنویسی بی اهمیت نیست. این یک مشکل جدی را نشان می دهد که می تواند در مدل رخ دهد - افزونگی پارامترها. اگر چند جمله ای ϕ (b) = 0 و θ (b) = 0 عوامل مشترکی داشته باشند ، مدل ها حاوی پارامترهای اضافی هستند. این مدل را بی فایده پیچیده می کند. چه زمانی می تواند این وضعیت رخ دهد؟وقتی سعی می کنیم با استفاده از یک مدل ARMA (1،1) یک سری سر و صدای سفید (Xₜ = Wₜ) قرار دهیم ، این برنامه این کار را انجام می دهد ، اما مدلی که می گیریم پارامترهای اضافی خواهد داشت. بنابراین ، ما برای ساده کردن مدل باید افزونگی را حذف کنیم و افزونگی را می توان با استفاده از تجزیه و تحلیل کواریانس حذف کرد.

تعریف نشان داده شده در معادله 2. 8 ، ARMA غیر فصلی است. اما اغلب اتفاق می افتد که داده ها فصلی هستند. اگر می خواهیم فصلی را حذف کنیم ، چه کاری باید انجام دهیم؟پاسخ این است که یک تاخیر H (طول دوره فصلی) را معرفی کنیم ، که ما را به آرما فصلی (سارما) می رساند ، که به عنوان ARMA (P ، Q) مشخص شده است و از آن شکل گرفته است.

این روش حذف اثر فصلی با آنچه قبلاً توضیح داده ایم مطابقت دارد: استفاده از داده های آگوست برای پیش بینی فروش آگوست. H باید برابر باشد؟این بستگی به فرکانس فصلی دارد ، به عنوان مثال ، اگر تنوع فصلی یک بار در سال در برخی از ماه های خاص ظاهر شود ، سپس h = 12 ، اگر در هر سه ماهه یک بار ظاهر شود ، سپس h = 4. اگر ترکیب کنیمARMA فصلی با ARMA غیر فصلی (چند اپراتورهای فصلی و غیر فصل را با هم ضرب کنید) ، ما یک لایه عمومی سازی را دریافت خواهیم کرد-فصل مختلط ARMA.

مدل میانگین متحرک یکپارچه خود (ARIMA)

مدل ARIMA ARMA بر روی یک سری متفاوت مدل شده است ، متفاوت بودن گاهی اوقات به عنوان ▽ مشخص می شود. پس تفاوت چیست؟این یک تکنیک برای از بین بردن غیر ثابت یک سری است (این روند غیر ثابت را از بین می برد ، به این معنی که فقط باعث می شود میانگین لوازم التحریر باشد ، اما واریانس نیست). این تفاوت بین دو مشاهده است.

البته می توانیم چندین بار مشاهدات را تفاوت دهیم. EQ 2. 12 و EQ 2. 13 نمونه ای از تفاوت های مرتبه اول و تفاوت مرتبه دوم را نشان می دهد. بدیهی است که چگونه تفاوت با تمایز متفاوت است - تفاوت فقط تفاوت را در بر می گیرد ، در عین حال ، تمایز میزان تغییر را محاسبه می کند. مدل Arima معمولاً توسط Arima (P ، D ، Q) مشخص می شود ، معنی پارامترها در جدول زیر خلاصه می شود

اکنون وقت آن رسیده است که تعریف رسمی مدل Arima را معرفی کنیم ،

جایی که Yₜ به معنای سری تفاوت است ، پارامترهای دیگر به همان روشی که در مدل ARMA تعریف می شوند تعریف می شوند. مانند گذشته ، یک ثابت می تواند به مدل اضافه شود ، که نشان دهنده رانش است. این را می توان به راحتی از طریق یک مثال با یک مدل ARIMA (0 ، 1 ، 0) درک کرد (بدون اصطلاحات خودجوش و متوسط ، که با استفاده از اختلاف درجه یک مدل شده است) درگیر است:

بدون پارامتر: مدل xₜ = xₜ₋₁ + εₜ است که یک پیاده روی تصادفی است.

با پارامتر: مدل xₜ = c + xₜ₋₁ + εₜ است. این یک پیاده روی تصادفی با رانش است.

ثابت یک روند غیر ثابت به روند کار می افزاید.(این جمله بسیار عجیب به نظر می رسد ، اما ما باید بدانیم که فرمول Xₜ = C+ Xₜ₋₁+ εₜ بازگشتی است و در هر یک از آنها ثابت در فرمول با پشته است) این میزان تأثیر دارد؟زیاد. ما می توانیم این را از شبیه سازی دو پیاده روی تصادفی ، یکی با و دیگری بدون رانش ببینیم

با این حال ، این تفاوت به فصلی اهمیت نمی دهد. برای از بین بردن فصلی ، ما باید اختلاف فصلی (تفاوت بین Xₜ و Xₜ₋ₕ) را بدست آوریم ، و این ما را به مدل میانگین متحرک یکپارچه خود (SARIMA) خودروهای فصلی می رساند. رابطه ساریما و سارما بسیار شبیه به رابطه Arima و Arma است-Sarima Sarma با تفاوت است ، اما اکنون باید نه تنها تفاوت غیر فصلی بلکه تفاوت فصلی را نیز در نظر بگیریم. ما از ▽ ᴰ و ▽ ᵈ برای نشان دادن اختلافات فصلی و غیر فصلی استفاده می کنیم. D درجه تفاوت فصلی است.

آریما در عمل

همانطور که در پیش بینی کتاب کتاب مقدس بیان شده است: اصول و شیوه ها ، یک رویکرد کلی برای قرار دادن یک مدل ARIMA وجود دارد: پیش پردازش ، تا زمانی که داده ها ثابت نشوند. تغذیه به یک تابع ، که مدل ARIMA را محاسبه می کند. مقایسه مدل ها ؛نتایج (باقیمانده ها) را بررسی کنید. اگر به اندازه کافی خوب نباشد ، تکرار کنید ، در غیر این صورت از مدل نتیجه برای انجام پیش بینی استفاده کنید.

در R ، پارامترها با استفاده از برآورد حداکثر احتمال (MLE) تخمین زده می شوند ، که عملکرد احتمال را به حداکثر می رساند. با توجه به پارامترهای (ϕ ، θ ، ...) مدل ما ، احتمال آن برابر است که یک مشاهده X تولید می شود. برای مقایسه مدل ها ، از معیار اطلاعات Akaike (AIC) استفاده می شود که از دست دادن اطلاعات را ارزیابی می کند و همچنین عارضه مدل ها (میزان پارامترهای برآورد شده) را مجازات می کند. ما مدل را با کمترین مقدار AIC انتخاب می کنیم.

خودکار

اگر می خواهیم از یک فرآیند خودکار برای ساخت مدل استفاده کنیم ، عملکرد Auto. arima در اختیار ماست. از یک روش گام به گام (الگوریتم Hyndman-Khandakar) برای عبور از فضای مدلها به طور کارآمد استفاده می کند. عملکرد AUTO. ARIMA از متفاوت کردن داده ها مراقبت می کند تا داده ها ثابت شود (خواه D = 0) ، انتخاب HyperParameters و انتخاب بهترین مدل با توجه به AIC.

ما از شانزدهم آگوست سال گذشته تا 26 اوت امسال از قیمت نفت استفاده می کنیم تا روند خودکار ARIMA را نشان دهیم. آنچه ما می خواهیم به آن دست یابیم استفاده از داده ها از 16 اوت 2020 تا 16 اوت . 2021 برای پیش بینی قیمت نفت در 10 روز بعد است ، سپس نتیجه را در برابر مقادیر واقعی مقایسه کنید.(در این مقاله ، هدف عمدتاً معرفی خواننده با اصل مدل Arima است ، بنابراین این واقعاً یک پیش بینی سهام خشن است و مواردی مانند آزمایش برگشت شامل نمی شوند)

# داده ها را بخوانید# DataSource: https://finance. yahoo. com/quote/oil/history؟p=oilDataOil Head (DataOil)# تقسیم به داده های آموزش و آزمایشقطار lenoil# 12 ماه اول را بگیریدtrain. oil test. oil# تبدیل به سری زمانیtrain. close train. close# فرکانس تنظیم شده است زیرا ما فقط یک سال داده داریمtrain. close. ts# داده های آموزش را ترسیم کنیدطرح (train. close ، type = 'l' ، ylab = 'قیمت نزدیک' ، اصلی = "قیمت نفت یک سال")

بدیهی است که ما می‌توانیم روندی را ببینیم، و سری زمانی ثابت نیست، اما شواهدی مبنی بر تغییر واریانس وجود ندارد، بنابراین ما هیچ تغییری انجام نمی‌دهیم. بقیه ساختمان مدل توسط auto. arima نگهداری می شود. اما کاری که ما باید انجام دهیم این است که باقیمانده ها را بررسی کنیم، تا مطمئن شویم که شبیه نویز تصادفی هستند، این قسمت توسط checkresiduals انجام می شود که تست Ljung-Box را اعمال می کند. اگر مقدار p آزمون Ljung-Box بزرگتر از 0. 05 باشد، نمی‌توانیم فرضیه صفر را رد کنیم که باقیمانده‌ها به طور مستقل توزیع شده‌اند. بنابراین، این مدل قابل قبول است، در غیر این صورت، ما باید مدل جدیدی را انتخاب کنیم.

شروع تست. آزمون شاخص. بستنaa.train # >AIC = 157. 11چک باقی مانده (aa. train)# >p-value = 0. 07454طرح (پیش‌بینی (aa. train، h=10))خطوط (test. index، test. close)

در مقایسه با مقادیر واقعی قیمت نفت از 17 اوت تا 26 اوت (10 روز گذشته) نتیجه به این شکل به نظر می رسد.

مدل مشتری

فرآیند خودکار ممکن است مدل مناسبی برای ما پیدا نکند. اگر در تست Ljung-Box رد شد، باید خودمان ابرپارامترها را انتخاب کنیم. بنابراین، گاهی اوقات ممکن است لازم باشد مدل خود را انتخاب کنیم (با استفاده از Arima). در مقایسه با فرآیند خودکار، علاوه بر استفاده از مدل خود، چه کارهایی باید انجام دهیم؟ابتدا پس از مشاهده داده ها، باید خود همبستگی جزئی داده ها را بررسی کنیم.(برای اطلاعات بیشتر در مورد همبستگی جزئی اینجا را کلیک کنید).

# تفاوت جزئی را رسم کنیدdif. train ggtsdisplay(dif. train, plot. type='partial')

تفاوت نشان داده شده در نمودار کاملا ثابت به نظر می رسد، بنابراین ما فقط از تفاوت مرتبه اول استفاده می کنیم. اما هنوز هم می‌توانیم یک آزمایش ریشه واحد برای بررسی ثابت بودن انجام دهیم. ما چندین جایگزین برای این کار داریم، در اینجا از آزمون دیکی-فولر تقویت شده استفاده می کنیم (ADF، در R آن adf. test است، اگر k=0 را تنظیم کنیم، آنگاه به سادگی به تست دیکی-فولر تبدیل می شود).

# تست ADFdif. train adf. test(dif. train)# >p-value کوچکتر از 0. 01

با توجه به نتیجه ، ما می توانیم فرضیه تهی را رد کنیم که تفاوت مرتبه اول غیر ثابت است. بنابراین D = 1 را تنظیم می کنیم. با توجه به اتوکوارانس جزئی ، که همبستگی بین یک سری زمانی ثابت و مقادیر تاخیر خود را با تأثیر تاخیر کوتاه تر برداشته شده نشان می دهد ، متغیر Xₜ با Xₜ₊₄ همبستگی دارد ، سپس می توانیم سعی کنیم p = 4 را تنظیم کنیم. بقیه Q است ، ما می توانیم از 0 امتحان کنیم و به تدریج آن را افزایش دهیم. در مورد فصلی ، واقعاً در نمودار نشان داده نشده است ، بنابراین می توانیم پارامترهای فصلی (P ، D ، Q) را به عنوان صفرهای پیش فرض رها کنیم. آیا باید رانش اضافه کنیم؟از روند فزاینده شکل 3. 2 ، به نظر می رسد بله ، ما می توانیم تنظیم کنیم. DRIFT درست است.

# پارامترهای مختلف را بصورت دستی امتحان کنیدfit. m1 fit. m1# >AIC = 156. 15fit. m2 fit. m2# >AIC = 157. 61# پس از تلاش برخی دیگر از ارزشهای دیگر Q ، خواهیم فهمید# که افزایش Q واقعاً AIC را کاهش نمی دهدcheckresiduals (fit. m1)# >p-value = 0. 4187طرح (پیش بینی (fit. m1 ، h = 10))خطوط (test. index، test. close)

مدل سفارشی ما دارای مقدار AIC کمی پایین تر است ، اما این طرح تقریباً مشابه مدل نشان داده شده در شکل 3. 2 به نظر می رسد.

در این مقاله ، در ابتدا ، ما به سرعت تعریف رسمی از سری زمانی و برخی از خصوصیات معمولی را که می تواند در یک سری زمانی رخ دهد ، معرفی کردیم. پس از آن ، ما با تعریف آریما به تدریج ، همراه با گسترش آرما و آریما - آرما فصلی (سارما) و آریما فصلی (ساریما) آشنا می شویم. سرانجام ، ما یک مدل برای پیش بینی کوتاه مدت از قیمت نفت به صورت خودکار و دستی ایجاد می کنیم.

حساب اسلامي...
ما را در سایت حساب اسلامي دنبال می کنید

برچسب : نویسنده : کامران فیوضات بازدید : 35 تاريخ : چهارشنبه 15 شهريور 1402 ساعت: 7:37