سالهای زیادی است که مردم شرایط آب و هوایی، رویدادهای اقتصادی و سیاسی و نتایج ورزشی را پیش بینی کرده اند، اخیراً این فهرست گسترده با ارزهای رمزنگاری شده پر شده است. برای پیشبینی رویدادهای چندمنظوره، راههای زیادی برای توسعه پیشبینیها وجود دارد. به عنوان مثال، شهود، نظرات کارشناسان، استفاده از نتایج گذشته برای مقایسه با آمارهای سنتی و پیشبینی سریهای زمانی تنها یکی از آنهاست، در حالی که مدرنترین و دقیقترین نوع پیشبینی با طیف وسیعی از کاربردها است.
روش سری زمانی
روش سری زمانی (TS) مجموعه داده ای است که اطلاعات را در یک دوره زمانی جمع آوری می کند. روش های خاصی برای استخراج این نوع وجود دارد:
- خطی و غیرخطی;
- پارامتریک و ناپارامتریک;
- یک بعدی و چند بعدی.
زمان پیش بینیاین سری مجموعهای از قابلیتهای منحصربهفرد را برای مقابله با چالشهای امروزی به همراه دارد. مدل سازی بر یادگیری برای ایجاد نیروی محرکه در پس تغییر داده ها متکی است. این فرآیند از روندهای بلندمدت، اثرات فصلی، یا نوسانات نامنظم ناشی می شود که مشخصه TS است و در انواع دیگر تحلیل ها دیده نمی شود.
یادگیری ماشین شاخهای از علوم کامپیوتر است که در آن الگوریتمها از دادهها گردآوری میشوند و شامل شبکههای عصبی مصنوعی، یادگیری عمیق، قوانین ارتباط، درختهای تصمیمگیری، یادگیری تقویتی و شبکههای بیزی میشوند. الگوریتمهای متنوعی گزینههایی را برای حل مسائل ارائه میدهند و هر کدام از نظر ورودی داده، سرعت و دقت نتایج، الزامات و معاوضههای خاص خود را دارند. اینها، همراه با دقت پیشبینیهای نهایی، زمانی وزن میشوند که کاربر تصمیم بگیرد کدام الگوریتم برای موقعیت مورد مطالعه بهترین کارایی را دارد.
پیشبینی سریهای زمانی از حوزه آمار وام میگیرد، اما رویکردهای جدیدی برای مدلسازی مسئله ارائه میکند. مشکل اصلی برای یادگیری ماشین و سری های زمانی یکسان است - پیش بینی نتایج جدید بر اساس داده های شناخته شده قبلی.
هدف مدل پیشگو
TS مجموعه ای از نقاط داده است که در فواصل زمانی منظم جمع آوری می شوند. آنها برای تعیین یک روند بلندمدت، پیش بینی آینده یا انجام انواع دیگری از تجزیه و تحلیل تجزیه و تحلیل می شوند. 2 چیز وجود دارد که TS را از یک مشکل رگرسیون معمولی متفاوت می کند:
- آنها به زمان بستگی دارند. بنابراینفرض اساسی یک مدل رگرسیون خطی مبنی بر مستقل بودن مشاهدات در این مورد صادق نیست.
- همراه با روند افزایشی یا کاهشی، اکثر TS ها نوعی از فصلی بودن دارند، یعنی تغییراتی که مختص یک دوره زمانی خاص است.
هدف یک مدل پیشبینی سری زمانی ارائه یک پیشبینی دقیق در صورت تقاضا است. سری زمانی دارای زمان (t) به عنوان متغیر مستقل و متغیر وابسته هدف است. در بیشتر موارد، پیش بینی یک نتیجه خاص است، به عنوان مثال، قیمت فروش یک خانه، نتیجه ورزشی مسابقه، نتایج معاملات در بورس. پیش بینی نشان دهنده میانگین و میانگین است و شامل یک فاصله اطمینان است که سطح اطمینان را در محدوده 80-95٪ بیان می کند. هنگامی که آنها در فواصل منظم ثبت می شوند، فرآیندها سری زمانی نامیده می شوند و به دو صورت بیان می شوند:
- یک بعدی با شاخص زمانی که نظم ضمنی ایجاد می کند؛
- مجموعه ای با دو بعد: زمان با یک متغیر مستقل و یک متغیر وابسته دیگر.
ایجاد ویژگیها یکی از مهمترین و زمانبرترین کارها در یادگیری ماشینی کاربردی است. با این حال، پیشبینی سریهای زمانی، حداقل به معنای سنتی، ویژگیهایی ایجاد نمیکند. این به ویژه زمانی صادق است که میخواهید نتیجه را چندین مرحله جلوتر پیشبینی کنید، نه فقط مقدار بعدی را.
این بدان معنا نیست که ویژگیها کاملاً غیرفعال هستند. آنها فقط باید با احتیاط به دلایل زیر استفاده شوند:
- مشخص نیست آینده واقعی چیستمقادیر برای این ویژگی ها خواهد بود.
- اگر اشیاء قابل پیش بینی هستند و دارای برخی الگوها هستند، می توانید یک مدل پیش بینی برای هر یک از آنها بسازید.
با این حال، توجه داشته باشید که استفاده از مقادیر پیش بینی به عنوان ویژگی، خطا را در متغیر هدف منتشر می کند و منجر به خطا یا پیش بینی های جانبدارانه می شود.
مولفه های سری زمانی
روند زمانی وجود دارد که سری افزایش، کاهش یا در یک سطح ثابت در طول زمان باقی بماند، بنابراین به عنوان یک تابع در نظر گرفته می شود. فصلی بودن به ویژگی یک سری زمانی اشاره دارد که الگوهای تناوبی را نشان می دهد که با فرکانس ثابت (m) تکرار می شوند، به عنوان مثال، m=12 به این معنی است که الگو هر دوازده ماه تکرار می شود.
متغیرهای ساختگی شبیه به فصلی را می توان به عنوان یک تابع باینری اضافه کرد. برای مثال میتوانید تعطیلات، رویدادهای خاص، کمپینهای بازاریابی را بدون توجه به خارجی بودن یا نبودن ارزش در نظر بگیرید. با این حال، باید به خاطر داشته باشید که این متغیرها باید الگوهای خاصی داشته باشند. با این حال، تعداد روزها را میتوان به راحتی حتی برای دورههای آینده محاسبه کرد و بر پیشبینی سریهای زمانی، بهویژه در حوزه مالی تأثیر گذاشت.
چرخهها فصلهایی هستند که با نرخ ثابتی اتفاق نمیافتند. به عنوان مثال، ویژگی های تولید مثل سالانه سیاهگوش کانادا، الگوهای فصلی و چرخه ای را منعکس می کند. آنها در فواصل منظم تکرار نمی شوند و ممکن است حتی اگر فرکانس 1 باشد (m=1).
مقادیر تاخیر -مقادیر عقب مانده یک متغیر را می توان به عنوان پیش بینی گنجاند. برخی از مدلها، مانند ARIMA، خودرگرسیون برداری (VAR)، یا شبکههای عصبی خود رگرسیون (NNAR)، به این روش کار میکنند.
مولفه های متغیر مورد علاقه برای تحلیل و پیش بینی سری های زمانی، درک رفتار، الگوهای آنها و انتخاب مدل مناسب بسیار مهم هستند.
ویژگی های مجموعه داده
شما ممکن است عادت داشته باشید هزاران، میلیون ها و میلیاردها نقطه داده را در مدل های یادگیری ماشین وارد کنید، اما این برای سری های زمانی لازم نیست. در واقع می توان با TS کوچک و متوسط بسته به فرکانس و نوع متغیر کار کرد و این عیب روش نیست. علاوه بر این، در واقع چندین مزیت برای این رویکرد وجود دارد:
- چنین مجموعه ای از اطلاعات با قابلیت های یک رایانه خانگی مطابقت دارد.
- در برخی موارد، تجزیه و تحلیل سری های زمانی و پیش بینی را با استفاده از کل مجموعه داده انجام دهید، نه فقط یک نمونه.
- طول TS برای ایجاد نمودارهای قابل تجزیه و تحلیل مفید است. این نکته بسیار مهمی است زیرا برنامه نویسان در مرحله تحلیل به گرافیک متکی هستند. این بدان معنا نیست که آنها با سری های زمانی بزرگ کار نمی کنند، اما در ابتدا باید بتوانند TS های کوچکتر را مدیریت کنند.
- هر مجموعه داده ای که حاوی یک فیلد مرتبط با زمان باشد، می تواند از تجزیه و تحلیل سری های زمانی و پیش بینی بهره مند شود. با این حال، اگر برنامه نویس مجموعه ای بزرگتر از داده ها داشته باشد، DB (TSDB)ممکن است مناسب تر باشد.
برخی از این مجموعهها از رویدادهایی هستند که با مهر زمانی، گزارشهای سیستم و دادههای مالی ثبت شدهاند. از آنجایی که TSDB به صورت بومی با سری های زمانی کار می کند، این یک فرصت عالی برای اعمال این تکنیک در مجموعه داده های بزرگ مقیاس است.
یادگیری ماشین
یادگیری ماشینی (ML) می تواند از روش های پیش بینی سری زمانی سنتی بهتر عمل کند. مطالعات زیادی وجود دارد که روشهای یادگیری ماشین را با روشهای آماری کلاسیکتر در دادههای TS مقایسه میکنند. شبکه های عصبی یکی از فناوری هایی هستند که به طور گسترده مورد تحقیق قرار گرفته و از رویکردهای TS استفاده می کنند. روشهای یادگیری ماشینی در رتبهبندی جمعآوری دادهها بر اساس سریهای زمانی پیشرو هستند. این مجموعهها ثابت کردهاند که مؤثر هستند، و عملکرد بهتری از مجموعههای TS خالص در برابر M3 یا Kaggle دارند.
MO مشکلات خاص خود را دارد. توسعه ویژگیها یا تولید پیشبینیکنندههای جدید از یک مجموعه داده گام مهمی برای آن است و میتواند تأثیر زیادی بر عملکرد داشته باشد و راهی ضروری برای رسیدگی به مسائل روند و فصلی دادههای TS باشد. همچنین، برخی از مدلها از نظر تناسب با دادهها مشکل دارند و اگر اینطور نباشد، ممکن است روند اصلی را از دست بدهند.
رویکردهای سری زمانی و یادگیری ماشین نباید جدا از یکدیگر وجود داشته باشند. آنها را می توان با هم ترکیب کرد تا مزایای هر رویکرد را ارائه دهد. روشهای پیشبینی و تحلیل سریهای زمانی در تجزیه دادهها به دادههای روند و فصلی خوب هستند.عناصر. سپس این تجزیه و تحلیل می تواند به عنوان ورودی یک مدل ML استفاده شود که اطلاعات روند و فصلی را در الگوریتم خود دارد و بهترین های هر دو جهان را ارائه می دهد.
درک بیان مشکل
برای مثال، TS مربوط به پیش بینی تعداد مسافران در یک سرویس راه آهن پرسرعت جدید را در نظر بگیرید. به عنوان مثال، شما 2 سال داده (اوت 2016 - سپتامبر 2018) دارید و با این داده ها باید تعداد مسافران را برای 7 ماه آینده پیش بینی کنید، با داشتن داده های 2 ساله (2016-2018) در سطح ساعتی با تعداد مسافرانی که در حال سفر هستند و باید تعداد آنها را در آینده تخمین زد.
زیر مجموعه مجموعه داده برای پیشبینی با سری زمانی:
- ایجاد قطار و فایل آزمایشی برای شبیه سازی.
- 14 ماه اول (اوت 2016 - اکتبر 2017) به عنوان داده های آموزشی استفاده می شود و 2 ماه آینده (نوامبر 2017 - دسامبر 2017) داده های آزمایشی است.
- مجموعه مجموعه داده به صورت روزانه.
تجسم داده را انجام دهید تا ببینید چگونه در یک دوره زمانی تغییر می کند.
روش ساخت با رویکرد ساده لوحانه
کتابخانه ای که در این مورد برای پیش بینی TS استفاده می شود، statsmodels است. قبل از اعمال هر یک از این رویکردها باید نصب شود. شاید statsmodels قبلاً در محیط پایتون نصب شده باشد، اما از روش ها پشتیبانی نمی کندپیشبینی، بنابراین باید آن را از مخزن کلون کنید و از منبع نصب کنید.
برای این مثال، به این معنی است که قیمت سفر سکه از همان ابتدا و در کل دوره زمانی ثابت است. این روش فرض می کند که نقطه مورد انتظار بعدی برابر با آخرین نقطه مشاهده شده است و رویکرد ساده لوح نامیده می شود.
حالا انحراف استاندارد را برای آزمایش دقت مدل در مجموعه داده آزمایشی محاسبه کنید. از مقدار RMSE و نمودار بالا، میتوان نتیجه گرفت که Naive برای گزینههای با نوسان بالا مناسب نیست، اما برای گزینههای پایدار استفاده میشود.
سبک متوسط ساده
برای نشان دادن روش، نموداری رسم می شود، با این فرض که محور Y نشان دهنده قیمت و محور X نشان دهنده زمان (روز) است.
از آن می توان نتیجه گرفت که قیمت به طور تصادفی با یک حاشیه کوچک افزایش و کاهش می یابد، به طوری که مقدار متوسط ثابت می ماند. در این صورت می توانید قیمت دوره بعدی را مشابه میانگین تمام روزهای گذشته پیش بینی کنید.
این روش پیشبینی با میانگین مورد انتظار نقاط مشاهده شده قبلی، روش میانگین ساده نامیده میشود.
در این حالت، مقادیر شناخته شده قبلی گرفته شده، میانگین محاسبه شده و به عنوان مقدار بعدی در نظر گرفته می شود. البته، این دقیق نخواهد بود، اما بسیار نزدیک است، و شرایطی وجود دارد که این روش بهترین کار را دارد.
بر اساس نتایج نمایش داده شده در نمودار، این روش زمانی بهترین کار را دارد که میانگین مقدار در هر دوره زمانی ثابت بماند. اگرچه روش سادهلوح بهتر از میانگین است، اما نه برای همه مجموعههای داده. توصیه می شود هر مدل را مرحله به مرحله امتحان کنید و ببینید آیا نتیجه را بهبود می بخشد یا خیر.
مدل میانگین متحرک
بر اساس این نمودار، میتوان نتیجه گرفت که قیمتها در گذشته چندین برابر با حاشیه زیادی افزایش یافتهاند، اما اکنون ثابت هستند. برای استفاده از روش میانگین گیری قبلی، باید میانگین تمام داده های قبلی را بگیرید. قیمت های دوره اولیه به شدت بر پیش بینی دوره بعدی تاثیر خواهد گذاشت. بنابراین، به عنوان بهبودی نسبت به میانگین ساده، میانگین قیمتها را فقط برای چند دوره گذشته در نظر بگیرید.
این تکنیک پیشبینی، تکنیک میانگین متحرک نامیده میشود، که گاهی به عنوان پنجره متحرک اندازه «n» نامیده میشود. با استفاده از یک مدل ساده، مقدار بعدی در TS برای بررسی صحت روش پیشبینی میشود. واضح است که Naive از میانگین و میانگین متحرک برای این مجموعه داده بهتر است.
نوعی از پیش بینی با روش هموارسازی نمایی ساده وجود دارد. در روش میانگین متحرک، مشاهدات "n" گذشته به یک اندازه وزن داده می شوند. در این حالت، ممکن است با موقعیتهایی مواجه شوید که هر یک از «n»های گذشته بهنحو خود بر پیشبینی تأثیر میگذارند. این تغییر، که به مشاهدات گذشته وزن متفاوتی می دهد، روش نامیده می شودمیانگین متحرک وزنی.
برون یابی الگوها
یکی از مهمترین ویژگی های مورد نیاز برای در نظر گرفتن الگوریتم های پیش بینی سری های زمانی، توانایی برون یابی الگوهای خارج از حوزه داده های آموزشی است. بسیاری از الگوریتم های ML این قابلیت را ندارند زیرا تمایل دارند به منطقه ای محدود شوند که توسط داده های آموزشی تعریف شده است. بنابراین، آنها برای TS، که هدف آن نمایش نتیجه به آینده است، مناسب نیستند.
یکی دیگر از ویژگی های مهم الگوریتم TS امکان به دست آوردن فواصل اطمینان است. در حالی که این ویژگی پیشفرض برای مدلهای TS است، اکثر مدلهای ML این قابلیت را ندارند زیرا همه آنها بر اساس توزیعهای آماری نیستند.
فکر نکنید که فقط از روش های آماری ساده برای پیش بینی TS استفاده می شود. اصلا شبیه به آن نیست. بسیاری از رویکردهای پیچیده وجود دارد که می تواند در موارد خاص بسیار مفید باشد. ناهمسانی شرطی خودبازگشتی تعمیم یافته (GARCH)، بیزی و VAR تنها برخی از آنها هستند.
همچنین مدلهای شبکه عصبی وجود دارند که میتوانند برای سریهای زمانی اعمال شوند که از پیشبینیکنندههای عقب مانده استفاده میکنند و میتوانند ویژگیهایی مانند خودرگرسیون شبکه عصبی (NNAR) را کنترل کنند. حتی مدلهای سری زمانی وام گرفته شده از یادگیری پیچیده، بهویژه در خانواده شبکههای عصبی مکرر، مانند شبکههای LSTM و GRU وجود دارد.
معیارهای برآورد و تشخیص باقیمانده
رایج ترین معیارهای پیش بینی هستندrms یعنی، که بسیاری از مردم هنگام حل مشکلات رگرسیون از آن استفاده می کنند:
- MAPE زیرا مستقل از مقیاس است و نسبت خطا به مقادیر واقعی را به صورت درصد نشان می دهد؛
- MASE، که نشان می دهد پیش بینی در مقایسه با پیش بینی متوسط ساده و بی تکلف چقدر خوب عمل می کند.
هنگامی که یک روش پیشبینی تطبیق داده شد، ارزیابی اینکه چگونه میتواند مدلها را به تصویر بکشد، مهم است. اگرچه معیارهای ارزیابی به تعیین نزدیکی مقادیر به مقادیر واقعی کمک می کنند، اما ارزیابی نمی کنند که آیا مدل با TS مطابقت دارد یا خیر. باقیمانده ها روش خوبی برای ارزیابی این موضوع هستند. از آنجایی که برنامه نویس در تلاش است تا الگوهای TS را اعمال کند، می تواند انتظار داشته باشد که خطاها مانند "نویز سفید" رفتار کنند، زیرا آنها چیزی را نشان می دهند که توسط مدل قابل ثبت نیست.
"White Noise" باید ویژگی های زیر را داشته باشد:
- باقیمانده نامرتبط (Acf=0)
- باقیمانده ها از توزیع نرمال با میانگین صفر (بی طرفانه) و واریانس ثابت پیروی می کنند.
- اگر یکی از دو ویژگی از دست رفته باشد، فضایی برای بهبود در مدل وجود دارد.
- خاصیت میانگین صفر را می توان به راحتی با استفاده از آزمون T آزمایش کرد.
- خواص نرمال بودن و واریانس ثابت به صورت بصری با استفاده از هیستوگرام باقیمانده ها یا آزمون نرمال بودن تک متغیره مناسب کنترل می شوند.
ARIMA Model
ARIMA - مدل میانگین متحرک یکپارچه خودکار پسرونده، یکی از محبوبترین روشهای مورد استفاده در پیشبینی TS است، عمدتاًاز طریق همبستگی خودکار داده ها برای ایجاد مدل های با کیفیت بالا.
هنگام ارزیابی ضرایب ARIMA، فرض اصلی این است که داده ها ثابت هستند. این بدان معنی است که روند و فصلی نمی تواند بر واریانس تأثیر بگذارد. کیفیت مدل را می توان با مقایسه نمودار زمانی مقادیر واقعی با مقادیر پیش بینی شده ارزیابی کرد. اگر هر دو منحنی نزدیک باشند، می توان فرض کرد که مدل برازش مورد تحلیل شده است. این باید هر گونه روند و فصلی را، در صورت وجود، افشا کند.
تجزیه و تحلیل باقیمانده ها باید نشان دهد که آیا مدل مطابقت دارد یا خیر: باقیمانده های تصادفی به معنای دقیق بودن آن است. برازش ARIMA با پارامترهای (0، 1، 1) نتایجی مشابه با هموارسازی نمایی به همراه خواهد داشت و استفاده از پارامترهای (0، 2، 2) نتایج هموارسازی نمایی دو برابری را به دست میدهد.
می توانید به تنظیمات ARIMA در اکسل دسترسی پیدا کنید:
- Excel را شروع کنید.
- XL MINER را در نوار ابزار پیدا کنید.
- در روبان، ARIMA را از منوی کشویی انتخاب کنید.
خلاصه ای از قابلیت های مدل ARIMA:
- ARIMA - میانگین متحرک یکپارچه خود رگرسیون.
- مدل پیشبینی مورد استفاده در تحلیل سریهای زمانی.
- نحو پارامتر ARIMA: ARIMA (p، d، q) که در آن p=تعداد عبارتهای خودبازگشت، d=تعداد تفاوتهای فصلی، و q=تعداد عبارتهای میانگین متحرک.
الگوریتم ها در SQL Server
انجام پیش بینی متقاطع یکی از موارد مهم استویژگی های سری های زمانی در پیش بینی وظایف مالی اگر از دو سری مرتبط استفاده شود، مدل حاصل می تواند برای پیش بینی نتایج یک سری بر اساس رفتار سری های دیگر استفاده شود.
SQL Server 2008 دارای ویژگی های قدرتمند سری زمانی جدید برای یادگیری و استفاده است. این ابزار دارای دادههای TS است که به راحتی قابل دسترسی است، یک رابط کاربری آسان برای شبیهسازی و بازتولید توابع الگوریتم، و یک پنجره توضیحی با پیوندی به درخواستهای DMX سمت سرور، بنابراین میتوانید بفهمید که در داخل چه میگذرد.
سری های زمانی بازار حوزه وسیعی است که می توان مدل ها و الگوریتم های یادگیری عمیق را در آن اعمال کرد. بانکها، کارگزاران و صندوقها اکنون در حال آزمایش تحلیل و پیشبینی خود برای شاخصها، نرخ ارز، آتی، قیمت ارزهای دیجیتال، سهام دولتی و موارد دیگر هستند.
در پیشبینی سریهای زمانی، شبکه عصبی با مطالعه ساختارها و روند بازارها الگوهای قابل پیشبینی را پیدا کرده و به معاملهگران توصیه میکند. این شبکهها همچنین میتوانند به شناسایی ناهنجاریهایی مانند اوجهای غیرمنتظره، سقوط، تغییرات روند و تغییر سطح کمک کنند. بسیاری از مدلهای هوش مصنوعی برای پیشبینیهای مالی استفاده میشوند.