پیش‌بینی سری‌های زمانی (time series forcasting) چیست؟

پیش‌بینی سری‌های زمانی (Time Series Forcasting) چیست؟

پیش‌بینی سری‌های زمانی یکی از پرکاربردترین تکنیک‌های علم داده در کسب‌وکار، مالی، مدیریت زنجیره تأمین، تولید و برنامه‌ریزی موجودی است. بسیاری از مسائل پیش‌بینی شامل مؤلفه زمانی هستند و بنابراین به برون‌یابی داده‌های سری زمانی یا پیش‌بینی سری‌های زمانی نیاز دارند. پیش‌بینی سری‌های زمانی همچنین حوزه‌ای مهم در یادگیری ماشین (ML) است و می‌توان آن را به‌عنوان یک مسئله یادگیری نظارت‌شده در نظر گرفت. روش‌های ML مانند رگرسیون، شبکه‌های عصبی، ماشین‌های بردار پشتیبان، جنگل‌های تصادفی و XGBoost — می‌توانند برای آن به‌کار گرفته شوند. پیش‌بینی شامل برازش مدل‌ها روی داده‌های تاریخی و استفاده از آن‌ها برای پیش‌بینی مشاهدات آینده است.

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

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

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

حجم داده‌های در دسترس — داده بیشتر اغلب مفیدتر است و فرصت بیشتری برای تحلیل اکتشافی داده، آزمون و تنظیم مدل و وفاداری مدل فراهم می‌کند.
افق زمانی موردنیاز پیش‌بینی‌ها — افق‌های زمانی کوتاه‌تر معمولاً آسان‌تر و با اطمینان بالاتری نسبت به افق‌های بلندتر قابل پیش‌بینی هستند.
تناوب به‌روزرسانی پیش‌بینی — ممکن است پیش‌بینی‌ها لازم باشد به‌طور مکرر در طول زمان به‌روزرسانی شوند یا یک‌بار انجام شوند و ثابت بمانند (به‌روزرسانی پیش‌بینی‌ها با در دسترس قرار گرفتن اطلاعات جدید اغلب به پیش‌بینی‌های دقیق‌تر منجر می‌شود).
تناوب زمانی پیش‌بینی — اغلب می‌توان پیش‌بینی‌ها را با تناوب‌های پایین‌تر یا بالاتر انجام داد که امکان استفاده از نمونه‌برداری کاهشی و افزایشی داده را فراهم می‌کند (که خود می‌تواند در زمان مدل‌سازی مزایا ایجاد کند).

تحلیل سری زمانی در برابر پیش‌بینی سری زمانی

در حالی که تحلیل سری زمانی کاملاً درباره درک مجموعه‌داده است؛ پیش‌بینی کاملاً درباره پیش‌بینی آن است. تحلیل سری زمانی شامل روش‌هایی برای تحلیل داده‌های سری زمانی به‌منظور استخراج آمار معنادار و سایر ویژگی‌های داده است. پیش‌بینی سری زمانی استفاده از یک مدل برای پیش‌بینی مقادیر آینده بر اساس مقادیر مشاهده‌شده قبلی است.

سه جنبه مدل‌سازی پیش‌بینی عبارت‌اند از:

  • داده نمونه: داده‌ای که جمع‌آوری می‌کنیم و مسئله ما را با روابط شناخته‌شده بین ورودی‌ها و خروجی‌ها توصیف می‌کند.
  • یادگیری یک مدل: الگوریتمی که روی داده نمونه به‌کار می‌بریم تا مدلی ایجاد کنیم که بعداً بارها و بارها از آن استفاده کنیم.
  • انجام پیش‌بینی: استفاده از مدل آموخته‌شده روی داده‌های جدیدی که خروجی آن‌ها را نمی‌دانیم.

اعتبارسنجی و آزمون یک مدل سری زمانی

از جمله عواملی که پیش‌بینی سری‌های زمانی را چالش‌برانگیز می‌کنند عبارت‌اند از:

وابستگی زمانی یک سری زمانی — فرض اساسی مدل رگرسیون خطی مبنی بر مستقل بودن مشاهدات در اینجا برقرار نیست. به‌دلیل وابستگی‌های زمانی در داده‌های سری زمانی، پیش‌بینی سری زمانی نمی‌تواند به تکنیک‌های اعتبارسنجی معمول تکیه کند. برای اجتناب از ارزیابی‌های جانبدارانه، مجموعه‌داده‌های آموزشی باید شامل مشاهداتی باشند که پیش از مشاهدات موجود در مجموعه‌های اعتبارسنجی رخ داده‌اند. پس از انتخاب بهترین مدل، می‌توان آن را روی کل مجموعه آموزشی برازش داد و عملکرد آن را روی یک مجموعه آزمون جداگانه که از نظر زمانی پس از آن قرار دارد، ارزیابی کرد.
فصلی‌بودن در یک سری زمانی — همراه با روند افزایشی یا کاهشی، بیشتر سری‌های زمانی نوعی روند فصلی دارند؛ یعنی تغییراتی خاص یک بازه زمانی مشخص.
مدل‌های سری زمانی می‌توانند روی یک مجموعه‌داده خاص عملکرد بهتری نسبت به سایرین داشته باشند — مدلی که روی یک نوع مجموعه‌داده بهترین عملکرد را دارد، لزوماً برای همه انواع دیگر همین‌گونه نخواهد بود.

انواع روش‌های پیش‌بینی

  • مدل کاربرد
  • تجزیه‌ای ساختارشکنی سری زمانی
  • مبتنی بر هموارسازی حذف ناهنجاری‌ها برای الگوهای شفاف
  • میانگین متحرک ردیابی یک نوع داده
  • هموارسازی نمایی مدل هموارسازی + تابع پنجره نمایی

نمونه‌هایی از پیش‌بینی سری‌های زمانی

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

پیش‌بینی مبتنی بر ذخیره‌سازی

در اینجا یک مثال مورد استفاده از پیش‌بینی مبتنی بر ذخیره‌سازی (در Veritas Technologies) آورده شده است که تصویر زیر از آن گرفته شده است:

پیش‌بینی سری‌های زمانی (time series forcasting) چیست؟

یادگیری ماشین

در اینجا یک مثال مورد استفاده از یادگیری ماشین (در Playtech) آورده شده است که تصویر زیر از آن گرفته شده است:

پیش‌بینی سری‌های زمانی (time series forcasting) چیست؟

مروری بر روش‌های پیش‌بینی سری‌های زمانی

مدل‌های تجزیه‌ای

داده‌های سری زمانی می‌توانند الگوهای متنوعی را نشان دهند، بنابراین اغلب مفید است که یک سری زمانی را به مؤلفه‌هایی تقسیم کنیم که هرکدام نمایانگر یک دسته الگوی زیربنایی هستند. این همان کاری است که مدل‌های تجزیه‌ای انجام می‌دهند.

تجزیه سری‌های زمانی یک وظیفه آماری است که یک سری زمانی را به چندین مؤلفه تجزیه می‌کند، که هرکدام نمایانگر یکی از دسته‌های الگوهای زیربنایی هستند. وقتی یک سری زمانی را به مؤلفه‌ها تجزیه می‌کنیم، آن را متشکل از سه مؤلفه در نظر می‌گیریم: مؤلفه روند، مؤلفه فصلی و باقیمانده‌ها یا «نویز» (که شامل هر چیز دیگری در سری زمانی است).

دو نوع اصلی تجزیه وجود دارد: تجزیه مبتنی بر نرخ‌های تغییر و تجزیه مبتنی بر قابلیت پیش‌بینی.

تجزیه مبتنی بر نرخ‌های تغییر

این یک تکنیک مهم تحلیل سری زمانی است، به‌ویژه برای تعدیل فصلی. هدف آن ساخت، از یک سری زمانی مشاهده‌شده، تعدادی سری مؤلفه‌ای است (که می‌توان از آن‌ها برای بازسازی سری اصلی از طریق جمع یا ضرب استفاده کرد) که هرکدام دارای ویژگی یا نوع خاصی از رفتار هستند.

اگر داده‌ها مقداری فصلی‌بودن نشان دهند (برای مثال روزانه، هفتگی، فصلی، سالانه)، ممکن است مفید باشد که سری زمانی اصلی را به مجموع سه مؤلفه تجزیه کنیم:

Y(t) = S(t) + T(t) + R(t)

که در آن S(t) مؤلفه فصلی، T(t) مؤلفه روند-چرخه و R(t) مؤلفه باقیمانده است.

چندین تکنیک برای برآورد چنین تجزیه‌ای وجود دارد. ابتدایی‌ترین آن «تجزیه کلاسیک» نام دارد و شامل موارد زیر است:

برآورد روند T(t) از طریق میانگین متحرک
محاسبه S(t) به‌عنوان میانگین سری بدون‌روند Y(t)-T(t) برای هر فصل (برای مثال برای هر ماه)
محاسبه سری باقیمانده به‌صورت R(t)=Y(t)-T(t)-S(t)

سری‌های زمانی همچنین می‌توانند به مؤلفه‌های زیر تجزیه شوند:

Tt، مؤلفه روند در زمان t، که پیشرفت بلندمدت سری را بازتاب می‌دهد. روند زمانی وجود دارد که جهت افزایشی یا کاهشی پایدار در داده‌ها مشاهده شود.
Ct، مؤلفه چرخه‌ای در زمان t، که نوسانات تکرارشونده اما غیرتناوبی را بازتاب می‌دهد. مدت این نوسانات معمولاً حداقل دو سال است.
St، مؤلفه فصلی در زمان t، که فصلی‌بودن (تغییرات فصلی) را بازتاب می‌دهد. فصلی‌بودن در یک بازه زمانی ثابت و شناخته‌شده رخ می‌دهد (برای مثال فصل سال، ماه یا روز هفته).
It، مؤلفه نامنظم («باقیمانده‌ها» یا «نویز») در زمان t، که تأثیرات تصادفی و نامنظم را توصیف می‌کند.

تجزیه جمعی در برابر تجزیه ضربی

در یک سری زمانی جمعی، مؤلفه‌ها با هم جمع می‌شوند تا سری زمانی را بسازند. در یک سری زمانی ضربی، مؤلفه‌ها در هم ضرب می‌شوند تا سری زمانی را تشکیل دهند.

در اینجا نمونه‌ای از یک سری زمانی با استفاده از مدل جمعی آمده است:

مدل جمعی زمانی استفاده می‌شود که تغییرات پیرامون روند با سطح سری زمانی تغییر نکند. برای آشنایی بیشتر با پیش‌بینی داده‌های سری زمانی بر اساس مدل جمعی که در آن روندهای غیرخطی با فصلی‌بودن سالانه، هفتگی و روزانه به‌همراه اثرات تعطیلات برازش می‌شوند، به آموزش «پیش‌بینی با FB Prophet و InfluxDB» مراجعه کنید که نشان می‌دهد چگونه یک پیش‌بینی سری زمانی تک‌متغیره انجام دهید (Facebook Prophet یک کتابخانه متن‌باز منتشرشده توسط فیس‌بوک است که بر مدل‌های قابل تجزیه — روند + فصلی‌بودن + تعطیلات — مبتنی است).

در اینجا نمونه‌ای از یک سری زمانی با استفاده از مدل ضربی آمده است:

مدل ضربی زمانی مناسب است که روند متناسب با سطح سری زمانی باشد.

تجزیه مبتنی بر قابلیت پیش‌بینی

نظریه تحلیل سری‌های زمانی از ایده تجزیه یک سری زمانی به مؤلفه‌های معین و نامعین (یا قابل پیش‌بینی و غیرقابل پیش‌بینی) استفاده می‌کند.

در آمار، تجزیه وُلد یا قضیه نمایش وُلد، که به نام هرمان وُلد نام‌گذاری شده است، بیان می‌کند که هر سری زمانی با ایستایی کوواریانسی را می‌توان به مجموع دو سری زمانی، یکی معین و دیگری تصادفی، نوشت. به‌طور صوری:

که در آن:

Yt سری زمانی موردنظر است،
Et یک دنباله نامرتبط است که فرآیند نوآوری برای فرآیند محسوب می‌شود — یعنی یک فرآیند نویز سفید که ورودی فیلتر خطی {bj} است،
b برداری احتمالاً نامتناهی از وزن‌های میانگین متحرک (ضرایب یا پارامترها) است،
nt یک سری زمانی معین است، مانند سری‌ای که با موج سینوسی نمایش داده می‌شود.

انواع روش‌های سری زمانی مورد استفاده برای پیش‌بینی

روش‌های سری زمانی به راه‌های مختلف اندازه‌گیری داده‌های زمان‌مند اشاره دارند. انواع رایج شامل: – خودرگرسیون (AR) – میانگین متحرک (MA) – خودرگرسیو میانگین متحرک (ARMA) – خودرگرسیو یکپارچه میانگین متحرک (ARIMA) – خودرگرسیو یکپارچه میانگین متحرک فصلی (SARIMA)

نکته مهم انتخاب روش پیش‌بینی مناسب بر اساس ویژگی‌های داده‌های سری زمانی است.

مدل‌های مبتنی بر هموارسازی

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

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

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

همراه با مدل خودرگرسیو (AR) (که در ادامه پوشش داده می‌شود)، مدل میانگین متحرک یک حالت خاص و مؤلفه‌ای کلیدی از مدل‌های کلی‌تر ARMA و ARIMA در سری‌های زمانی است که ساختار تصادفی پیچیده‌تری دارند.

برخلاف مدل AR، مدل MA محدود همواره ایستا است.

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

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

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

هموارسازی نمایی سه‌گانه یا هولت-وینترز از نظر ریاضی مشابه هموارسازی نمایی ساده است، با این تفاوت که فصلی‌بودن و روند در پیش‌بینی لحاظ می‌شوند.

پیش‌بینی سری‌های زمانی (time series forcasting) چیست؟

مدل میانگین متحرک در برابر مدل هموارسازی نمایی

در حالی که در میانگین متحرک ساده، مشاهدات گذشته به‌طور برابر وزن‌دهی می‌شوند، در هموارسازی نمایی از توابع نمایی برای اختصاص وزن‌هایی با کاهش نمایی در طول زمان استفاده می‌شود (مشاهدات اخیر وزن نسبتاً بیشتری در پیش‌بینی نسبت به مشاهدات قدیمی‌تر دریافت می‌کنند).
در مورد میانگین‌های متحرک، وزن‌های اختصاص‌داده‌شده به مشاهدات یکسان و برابر با ۱/N هستند. در هموارسازی نمایی، با این حال، یک یا چند پارامتر هموارسازی وجود دارد که باید تعیین (یا برآورد) شوند و این انتخاب‌ها وزن‌های اختصاص‌داده‌شده به مشاهدات را مشخص می‌کنند.

مدل‌های پیش‌بینی شامل فصلی‌بودن

ARIMA و SARIMA

برای تعریف ARIMA و SARIMA، ابتدا تعریف خودرگرسیون مفید است. خودرگرسیون یک مدل سری زمانی است که از مشاهدات گام‌های زمانی قبلی به‌عنوان ورودی یک معادله رگرسیون استفاده می‌کند تا مقدار گام زمانی بعدی را پیش‌بینی کند.

مدل‌های خودرگرسیو یکپارچه میانگین متحرک (ARIMA) از پرکاربردترین تکنیک‌های پیش‌بینی سری‌های زمانی هستند:

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

مدل SARIMA (ARIMA فصلی) با افزودن ترکیب خطی مقادیر فصلی گذشته و/یا خطاهای پیش‌بینی، ARIMA را گسترش می‌دهد.

TBATS

مدل TBATS یک مدل پیش‌بینی مبتنی بر هموارسازی نمایی است. نام آن مخفف Trigonometric، تبدیل Box-Cox، خطاهای ARMA، روند و مؤلفه‌های فصلی است.

ویژگی اصلی مدل TBATS توانایی آن در مواجهه با چندین فصلی‌بودن از طریق مدل‌سازی هر فصلی‌بودن با نمایش مثلثاتی مبتنی بر سری‌های فوریه است. یک مثال کلاسیک از فصلی‌بودن پیچیده، مشاهدات روزانه حجم فروش است که اغلب هم فصلی‌بودن هفتگی و هم سالانه دارند.

پایگاه داده سری زمانی (Time Series Database) چیست؟
تحلیل داده‌های سری زمانی (Time Series Data Analysis) چیست؟

دیدگاهتان را بنویسید

سبد خرید
علاقه‌مندی‌ها
مشاهدات اخیر
دسته بندی ها