راهنمای کامل تجزیه و تحلیل سری زمانی و پیش بینی

ساخت وبلاگ

درک متوسط ، هموار سازی نمایی ، ثابت بودن ، همبستگی ، ساریما را درک کنید و این تکنیک ها را در دو پروژه اعمال کنید.

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

وارد سریال های زمانی شوید. یک سری زمانی صرفاً یک سری از نقاط داده است که به موقع سفارش داده می شود. در یک سری زمانی ، زمان اغلب متغیر مستقل است و هدف آن معمولاً پیش بینی آینده است.

با این حال ، جنبه های دیگری نیز وجود دارد که هنگام برخورد با سریال های زمانی بازی می شود.

آیا ثابت است؟

آیا فصلی وجود دارد؟

آیا متغیر هدف همبسته است؟

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

فراتر از اصول اولیه بروید و از مدل های پیشرفته مانند Sarimax ، Varmax ، CNN ، LSTM ، Resnet ، Autoregressive LSTM با تجزیه و تحلیل سری زمانی کاربردی در دوره پایتون استفاده کنید!

همبستگی

به طور غیررسمی ، همبستگی شباهت بین مشاهدات به عنوان تابعی از تاخیر زمانی بین آنها است.

در بالا نمونه ای از طرح همبستگی است. با نگاه دقیق ، می فهمید که مقدار اول و مقدار 24 دارای همبستگی بالایی هستند. به همین ترتیب ، مشاهدات دوازدهم و 36 بسیار همبسته است. این بدان معنی است که ما در هر 24 واحد زمان یک مقدار بسیار مشابه پیدا خواهیم کرد.

توجه کنید که چگونه طرح مانند عملکرد سینوسی به نظر می رسد. این یک اشاره برای فصلی است ، و می توانید با یافتن دوره در نقشه فوق ، که 24 ساعت می دهد ، ارزش آن را پیدا کنید.

فصلی

فصلی به نوسانات دوره ای اشاره دارد. به عنوان مثال ، مصرف برق در طول روز زیاد است و در طول شب کم است یا فروش آنلاین در طول کریسمس قبل از کند شدن دوباره افزایش می یابد.

همانطور که در بالا مشاهده می کنید ، یک فصلی روزانه روشن وجود دارد. هر روز ، یک قله به سمت عصر می بینید ، و پایین ترین امتیازات آغاز و پایان هر روز است.

به یاد داشته باشید که اگر شکل سینوسی داشته باشد ، فصلی نیز می تواند از یک نقشه همبستگی حاصل شود. به سادگی به دوره نگاه کنید و طول فصل را می دهد.

جایگاه

ثابت بودن ویژگی مهم سری زمانی است. گفته می شود که اگر خصوصیات آماری آن با گذشت زمان تغییر نکند ، یک سری زمانی ثابت است. به عبارت دیگر ، میانگین و واریانس ثابت دارد و کواریانس مستقل از زمان است.

دوباره به همان طرح نگاه می کنیم ، می بینیم که روند فوق ثابت است. میانگین و واریانس با گذشت زمان متفاوت نیست.

غالباً ، قیمت سهام یک فرآیند ثابت نیست ، زیرا ممکن است روند رو به رشد را ببینیم ، یا ممکن است نوسانات آن با گذشت زمان افزایش یابد (به این معنی که واریانس در حال تغییر است).

در حالت ایده آل ، ما می خواهیم یک سری زمانی ثابت برای مدل سازی داشته باشیم. البته همه آنها ثابت نیستند ، اما ما می توانیم تحولات مختلفی انجام دهیم تا آنها را ثابت کنیم.

نحوه آزمایش اگر یک فرآیند ثابت باشد

ممکن است در عنوان طرح بالا Dickey-Fuller توجه داشته باشید. این آزمایش آماری است که ما برای تعیین اینکه آیا یک سری زمانی ثابت است یا خیر ، اجرا می کنیم.

بدون ورود به فنی آزمون Dickey-Fuller ، این فرضیه تهی را که یک ریشه واحد وجود دارد ، آزمایش می کند.

If it is, then p>0 ، و روند ثابت نیست.

در غیر این صورت ، P = 0 ، فرضیه تهی رد می شود و روند ثابت در نظر گرفته می شود.

به عنوان نمونه ، روند زیر ثابت نیست. توجه کنید که چگونه میانگین در طول زمان ثابت نیست.

سری زمانی مدل سازی

روش های زیادی برای مدل سازی یک سری زمانی به منظور پیش بینی وجود دارد. در اینجا ، من ارائه می دهم:

  • میانگین متحرک
  • هموارسازی نمایی
  • اریما

میانگین متحرک

مدل متوسط در حال حرکت احتمالاً ساده لوحانه ترین روش برای مدل سازی سری زمانی است. این مدل به سادگی بیان می کند که مشاهده بعدی میانگین تمام مشاهدات گذشته است.

اگرچه ساده است ، این مدل ممکن است به طرز شگفت آور خوبی باشد و نقطه شروع خوبی را نشان می دهد.

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

در طرح بالا ، ما مدل متوسط متحرک را در یک پنجره 24H اعمال کردیم. خط سبز سری زمانی را صاف کرد و می بینیم که در یک دوره 24 ساعت 2 قله وجود دارد.

البته هرچه پنجره طولانی تر باشد ، این روند نرم تر خواهد بود. در زیر نمونه ای از میانگین حرکت در یک پنجره کوچکتر آورده شده است.

هموارسازی نمایی

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

از نظر ریاضی ، هموار سازی نمایی به صورت زیر بیان می شود:

در اینجا ، آلفا یک عامل صاف کننده است که مقادیر بین 0 تا 1 را می گیرد. این تعیین می کند که وزن برای مشاهدات قبلی چقدر سریع کاهش می یابد.

از طرح بالا ، خط آبی تیره نشان دهنده هموار سازی نمایی سری زمانی با استفاده از یک فاکتور صاف کننده 0. 3 است ، در حالی که خط نارنجی از یک ضریب هموار سازی 0. 05 استفاده می کند.

همانطور که مشاهده می کنید ، هرچه فاکتور صاف کننده کوچکتر باشد ، سریال زمانی نرم تر خواهد بود. این امر منطقی است ، زیرا با نزدیک شدن به ضریب هموار سازی 0 ، ما به مدل متوسط در حال حرکت نزدیک می شویم.

هموار سازی نمایی مضاعف

هنگامی که روند در سری زمانی وجود دارد ، از هموار سازی دو نمایی استفاده می شود. در این حالت ، ما از این تکنیک استفاده می کنیم ، که به سادگی استفاده بازگشتی از هموار سازی نمایی دو بار است.

در اینجا ، بتا عامل صاف کننده روند است و مقادیر بین 0 تا 1 را می گیرد.

در زیر ، می توانید ببینید که چگونه مقادیر مختلف آلفا و بتا بر شکل سری زمانی تأثیر می گذارد.

صافی نمایی تریپ

این روش با افزودن یک فاکتور صاف کننده فصلی ، هموار سازی دو نمایی را گسترش می دهد. البته اگر متوجه فصلی در سری زمانی خود شوید ، این مفید است.

از نظر ریاضی ، هموار سازی نمایی سه گانه به این صورت بیان شده است:

جایی که گاما عامل صاف کننده فصلی است و L طول فصل است.

مدل میانگین متحرک یکپارچه شده خود خودجوش فصلی (SARIMA)

ساریما در واقع ترکیبی از مدل های ساده تر برای ساختن یک مدل پیچیده است که می تواند سری زمانی را که دارای ویژگی های غیر ثابت و فصلی است مدل کند.

در ابتدا ، ما مدل Autoregression AR (P) را داریم. این اساساً رگرسیون سریال زمانی است که بر روی خود قرار می گیرد. در اینجا ، فرض می کنیم که مقدار فعلی با مقداری تاخیر به مقادیر قبلی آن بستگی دارد. این یک پارامتر P را می گیرد که حداکثر تاخیر را نشان می دهد. برای یافتن آن ، ما به طرح همبستگی جزئی نگاه می کنیم و تاخیر را که پس از آن بیشتر تاخیر قابل توجه نیست ، شناسایی می کنیم.

در مثال زیر ، P 4 خواهد بود.

سپس ، مدل متوسط MAVER MA (Q) را اضافه می کنیم. این یک پارامتر Q می گیرد که بزرگترین تاخیر را نشان می دهد که پس از آن سایر تأخیر در طرح همبستگی قابل توجه نیست.

در زیر ، Q 4 خواهد بود.

بعد از آن ، ترتیب ادغام I (D) را اضافه می کنیم. پارامتر D تعداد اختلافات مورد نیاز برای ایجاد سری را نشان می دهد.

سرانجام ، ما مؤلفه نهایی را اضافه می کنیم: Seasonality S (P ، D ، Q ، S) ، جایی که S به سادگی طول فصل است. علاوه بر این ، این مؤلفه به پارامترهای P و Q نیاز دارد که همان P و Q هستند ، اما برای مؤلفه فصلی. سرانجام ، D ترتیب ادغام فصلی است که تعداد اختلافات مورد نیاز برای حذف فصلی از این سریال را نشان می دهد.

با ترکیب همه ، مدل Sarima (P ، D ، Q) (P ، D ، Q ، S) را دریافت می کنیم.

غذای اصلی این است: قبل از مدل سازی با Sarima ، ما باید تحولات را در سری زمانی خود اعمال کنیم تا فصلی و هرگونه رفتارهای غیر ثابت را از بین ببریم.

این تئوری زیادی برای پیچاندن سر ما بود! بیایید تکنیک های مورد بحث در بالا را در اولین پروژه ما اعمال کنیم.

ما سعی خواهیم کرد قیمت سهام یک شرکت خاص را پیش بینی کنیم. اکنون پیش بینی قیمت سهام تقریباً غیرممکن است. با این حال ، این یک تمرین سرگرم کننده باقی مانده است و این یک روش خوب برای تمرین آنچه ما آموخته ایم خواهد بود.

پروژه 1 - پیش بینی قیمت سهام

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

می توانید مجموعه داده ها و نوت بوک را از اینجا بگیرید.

مثل همیشه ، من به شدت توصیه می کنم که کد را همراهی کنید! نوت بوک خود را شروع کنید ، و بگذارید برویم!

داده ها را وارد کنید

اول ، ما برخی از کتابخانه ها را وارد می کنیم که در طول تحلیل ما مفید خواهند بود. همچنین ، ما میانگین خطای میانگین درصد (MAPE) را تعریف می کنیم ، زیرا این متریک خطای ما خواهد بود.

سپس ، ما مجموعه داده های خود را وارد می کنیم و قبلاً ده مدخل اول هستیم و شما باید دریافت کنید:

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

داده ها را تمیز کنید

ابتدا ورودی های ناخواسته را حذف می کنیم.

سپس ، ستون های ناخواسته را حذف می کنیم ، زیرا فقط می خواهیم روی قیمت بسته شدن سهام تمرکز کنیم.

اگر مجموعه داده را پیش نمایش می دهید ، باید ببینید:

عالی! ما برای تجزیه و تحلیل داده های اکتشافی آماده هستیم!

تجزیه و تحلیل داده های اکتشافی (EDA)

ما قیمت بسته شدن را در کل دوره زمانی مجموعه داده خود ترسیم می کنیم.

واضح است که می بینید که این یک روند ثابت نیست و به سختی می توان گفت که آیا نوعی فصلی وجود دارد یا خیر.

میانگین متحرک

بیایید از مدل متوسط در حال حرکت برای صاف کردن سری زمانی خود استفاده کنیم. برای این کار ، ما از یک عملکرد یاور استفاده خواهیم کرد که مدل متوسط متحرک را در یک پنجره زمانی مشخص اجرا می کند و نتیجه منحنی صاف را ترسیم می کند:

با استفاده از یک پنجره زمانی 5 روز ، ما دریافت می کنیم:

همانطور که می بینید ، ما به سختی می توانیم یک روند را ببینیم ، زیرا خیلی نزدیک به منحنی واقعی است. بیایید نتیجه هموار سازی تا ماه قبل و سه ماهه قبلی را ببینیم.

در حال حاضر روندها آسان تر است. توجه کنید که چگونه روند 30 روزه و 90 روزه منحنی رو به پایین را در پایان نشان می دهد. این ممکن است بدان معنی باشد که احتمالاً سهام در روزهای بعد کاهش می یابد.

هموارسازی نمایی

حال ، بیایید از هموار سازی نمایی استفاده کنیم تا ببینیم آیا می تواند روند بهتری را انتخاب کند.

در اینجا ، ما از 0. 05 و 0. 3 به عنوان مقادیر برای ضریب هموار سازی استفاده می کنیم. احساس راحتی کنید که مقادیر دیگر را امتحان کنید و ببینید نتیجه چیست.

همانطور که مشاهده می کنید ، مقدار آلفا 0. 05 در حالی که بیشتر روندهای رو به بالا و رو به پایین را انتخاب می کند ، منحنی را صاف می کند.

اکنون ، اجازه دهید از هموار سازی دو نمایی استفاده کنیم.

هموار سازی نمایی مضاعف

مجدداً با ترکیب های مختلف آلفا و بتا آزمایش کنید تا منحنی های بهتر به نظر برسید.

مدل سازی

همانطور که قبلاً بیان شد ، برای مدل سازی آن باید سری خود را به یک فرآیند ثابت تبدیل کنیم. بنابراین ، اجازه دهید آزمایش Dickey-Fuller را انجام دهیم تا ببینیم آیا این یک روند ثابت است:

با استفاده از آزمون Dickey-Fuller ، سریال زمانی به طرز شگفت آور غیر ثابت است. همچنین ، با نگاهی به طرح همبستگی ، می بینیم که بسیار زیاد است و به نظر می رسد فصلی مشخصی وجود ندارد.

بنابراین ، برای خلاص شدن از شر همبستگی بالا و برای ثابت کردن روند ، اجازه می دهیم اولین تفاوت را انجام دهیم (خط 23 در بلوک کد). ما به سادگی سریال های زمانی را با تأخیر یک روز از خود تفریق می کنیم و دریافت می کنیم:

عالی! سری ما اکنون ثابت است و می توانیم مدل سازی را شروع کنیم!

ساریما

اکنون ، برای Sarima ، ابتدا چند پارامتر و طیف وسیعی از مقادیر را برای سایر پارامترها تعریف می کنیم تا لیستی از کلیه ترکیبات ممکن P ، Q ، D ، P ، Q ، D ، S تولید کنیم.

اکنون ، در سلول کد فوق ، ما 625 ترکیب مختلف داریم! ما هر ترکیب را امتحان خواهیم کرد و Sarima را با هر یک آموزش خواهیم داد تا بهترین مدل عملکرد را پیدا کنیم. این ممکن است در حالی که بسته به قدرت پردازش رایانه شما طول می کشد ، طول بکشد.

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

عالی! سرانجام قیمت پایانی پنج روز معاملاتی آینده را پیش بینی می کنیم و ماپه مدل را ارزیابی می کنیم.

در این حالت ، ما 0. 79 ٪ از 0. 79 ٪ داریم که بسیار خوب است!

قیمت پیش بینی شده را با داده های واقعی مقایسه کنید

اکنون ، برای مقایسه پیش بینی خود با داده های واقعی ، ما داده های مالی را از Finance Yahoo گرفته و DataFrame ایجاد می کنیم.

سپس ، ما یک نقشه تهیه می کنیم تا ببینیم ما از قیمت های واقعی بسته شدن فاصله داریم:

به نظر می رسد که ما در پیش بینی های خود کمی فاصله داریم. در واقع، قیمت پیش بینی شده اساساً ثابت است، به این معنی که مدل ما احتمالاً عملکرد خوبی ندارد.

باز هم، این به دلیل رویه ما نیست، بلکه به این دلیل است که پیش بینی قیمت سهام اساساً غیرممکن است.

از پروژه اول، ما تمام مراحل ساخت یک سری زمانی ثابت را قبل از استفاده از SARIMA برای مدل سازی آموختیم. این یک فرآیند طولانی و خسته کننده است، با تنظیمات دستی زیادی.

حالا بیایید پیامبر فیسبوک را معرفی کنیم. این یک ابزار پیش بینی است که هم در پایتون و هم در R موجود است. این ابزار به افراد متخصص و غیرمتخصص اجازه می دهد تا پیش بینی هایی با کیفیت بالا با کمترین تلاش تولید کنند.

بیایید ببینیم چگونه می توانیم از آن در این پروژه دوم استفاده کنیم!

پروژه 2 - پیش بینی کیفیت هوا با پیامبر

عنوان گویای همه چیز است: ما از پیامبر برای کمک به پیش بینی کیفیت هوا استفاده خواهیم کرد!

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

برچسب : نویسنده : سعید شیخ‌زاده بازدید : <-PostHit-> تاريخ : دوشنبه 8 خرداد 1402 ساعت: 20:39