سود:
- توانایی درک مفاهیم روند، فصلی، ایستایی و ریشه واحد و استفاده از هوش مصنوعی با داده های دقیق برای مدل سازی و پیش بینی سری های زمانی.
- توانایی تفسیر مدل های ARIMA/فصلی و پیش بینی عدم قطعیت (فاصله اطمینان، تحلیل باقیمانده) و جلوگیری از رگرسیون کاذب
- توانایی تشخیص اینکه پیشبینی هوش مصنوعی مبتنی بر الگوهای گذشته است و قضاوت متخصص در دورههای شکست ساختاری و بحران مطرح میشود.
بسیاری از داده هایی که نان و نان اقتصاددانان و تحلیلگران مالی است سری های زمانی هستند: مقادیر همان متغیر که در فواصل زمانی منظم در طول زمان اندازه گیری می شوند (تورم ماهانه، قیمت روزانه سهام، تولید ناخالص داخلی سه ماهه). سری های زمانی اساساً با داده های مقطعی معمولی متفاوت است زیرا مشاهدات مستقل نیستند: ارزش امروز به دیروز بستگی دارد. این وابستگی هم یک فرصت است (ما می توانیم آینده را پیش بینی کنیم) و هم یک خطر (پسرفت معمولی در اینجا به راحتی گمراه می شود). در این بخش، خواهیم دید که چگونه هوش مصنوعی (AI) مدلسازی و پیشبینی سریهای زمانی را تسریع میکند، اما چرا خطرناکترین تله - رگرسیون ساختگی - نیاز به توجه دارد.
مفاهیم اساسی
یک سری زمانی به طور کلی شامل سه جزء است: روند (روند بلندمدت صعودی / نزولی)، فصلی (الگوی منظمی که در طول سال تکرار می شود، به عنوان مثال افزایش گردشگری در تابستان)، و چرخه / نویز (نوسانات باقیمانده). قبل از مدل سازی، مهم ترین ویژگی این سری ثابت بودن است.
سری ثابت مجموعه ای است که ویژگی های آماری آن (میانگین، واریانس) در طول زمان ثابت می ماند. یک سری غیر ثابت شامل یک روند است، واریانس آن رشد می کند یا یک ریشه واحد دارد. ریشه واحد ساختاری است که در آن سریال به طور دائم شوکها را به یاد میآورد و به میانگین خود باز نمیگردد. چنین سریالی مانند یک پیاده روی تصادفی رفتار می کند. چرا مهم است؟ از آنجا که رگرسیون بین دو سری غیر ثابت می تواند ضرایب R-square بالا و معنی دار ایجاد کند حتی اگر هیچ رابطه ای در واقعیت وجود نداشته باشد - به این رگرسیون کاذب می گویند. تنها روند مشترک باعث می شود که این دو سریال "مرتبط" به نظر برسند.
احتیاط: دو سری در حال افزایش (مثلاً جمعیت یک کشور و فروش بستنی در یک کشور دیگر) می توانند به شدت با هم مرتبط باشند. زیرا هر دو در طول زمان افزایش می یابند. این یک رابطه نیست، بلکه توهم یک روند مشترک است. قبل از شروع رگرسیون در سری زمانی، حتماً ثابت بودن را بررسی کنید.
گردش کار سری های زمانی گام به گام
1. تجسم کنید. داستان سریال: آیا روندی وجود دارد، آیا فصلی وجود دارد، آیا واریانس در طول زمان تغییر می کند، آیا یک شکست ساختاری (تغییر سطح ناگهانی) وجود دارد؟
2. ایستایی را آزمایش کنید. تست ADF (Augmented Dickey-Fuller) و تست تست KPSS ریشه/ایستایی واحد. این دو مکمل یکدیگر هستند: در ADF فرضیه صفر "ریشه واحد وجود دارد" و در KPSS "ایستا" است. استفاده از هر دو با هم ایمن تر است.
3. راکد ماندن. اگر سری غیر ثابت باشد، معمولاً متفاوت است (تفاوت مشاهدات متوالی؛ این روند را حذف می کند). تمایز یک بار باعث می شود یک سری "یکپارچه مرتبه اول" (I(1)) ثابت بماند. اگر واریانس در حال رشد باشد، تبدیل لاگ نیز کمک می کند.
4. یک مدل بسازید. رایج ترین چارچوب ARIMA (AutoRegressive Integrated Moving Average) است: مولفه های AR (وابستگی سری به مقادیر گذشته خودش)، I (درجه تفاوت)، MA (اثر خطاهای گذشته) را با هم ترکیب می کند. در صورت فصلی بودن از SARIMA استفاده می شود. هوش مصنوعی کدهایی را برای ابزارهای انتخاب خودکار مانند auto.arima تولید می کند. اما کورکورانه انتخاب خودکار را نپذیرید.
5. باقی مانده را بررسی کنید. باقیمانده یک مدل خوب باید نویز سفید باشد: بدون الگو، بدون همبستگی خودکار. تست Ljung-Box این را آزمایش می کند. اگر هنوز الگوی در باقیمانده ها وجود داشته باشد، مدل ناقص است.
6. پیش بینی و نشان دادن عدم قطعیت. پیش بینی یک خط نیست. همیشه با فاصله اطمینان/تخمین داده می شود. با درازتر شدن افق، دامنه وسیع تر می شود - این نشانه صداقت است، نه نقص.
هم انباشتگی: رابطه واقعی با سری های غیر ثابت
دو سریال غیر ثابت همیشه روابط جعلی ایجاد نمی کنند. اگر یک تعادل بلندمدت واقعی بین آنها وجود داشته باشد (آنها با هم حرکت می کنند)، به این حالت هم انباشتگی گفته می شود و می توان با مدل تصحیح خطا (ECM) مدل کرد. پس راه حل «تفاوت و دور انداختن اطلاعات» نیست. این است که ابتدا یکپارچگی را آزمایش کنیم. این تمایز رگرسیون کاذب را از همبستگی بلندمدت واقعی متمایز می کند و یک ملاحظات نظری است که هوش مصنوعی نمی تواند به تنهایی تصمیم بگیرد.
نمودار مقایسه
وضعیت
علامت
رویکرد درست
سری ثابت
میانگین/واریانس ثابت
ARCHING مستقیم
با روند (ریشه واحد)
افزایش مداوم، ADF بی معنی است
تفاوت، سپس مدل
دو سری غیر ثابت
R² بالا ممکن است جعلی باشد
اول، آزمون همگرایی
فصلی
الگوی تکرار سالانه
ساریما / تفاوت فصلی
شکست ساختاری
تغییر سطح / شیب ناگهانی
تست شکست، قضاوت متخصص
چهار فرمان قابل کپی
1. تشخیص ثابت بودن:
نقش شما: دستیار سری زمانی. من کد R می خواهم، من داده ها را به اشتراک نمی گذارم. "series" یک سری زمانی ماهانه (ts object) است. وظیفه: (1) نمودارهای سری و خودهمبستگی (ACF/PACF) را رسم کنید، (2) آزمون های ADF و KPSS را اعمال کنید، (3) توضیح دهید که چگونه نتایج را با هم تفسیر کنید. من تصمیم خواهم گرفت که تفاوت را اتخاذ کنم. شما یک تشخیص ایجاد می کنید.
2. ساختمان نمونه (با نظارت):
سریال من در اولین تفاوت ثابت به نظر می رسد. مدلی را با auto.arima پیشنهاد کنید، اما: (1) دستورات انتخاب شده (p، d، q) را توضیح دهید و چرا انتخاب شدهاند، (2) کد اضافه کنید تا بررسی کنید که آیا باقیماندهها با Ljung-Box نویز سفید هستند، (3) به من یادآوری کنید که کورکورانه انتخاب خودکار را نپذیرم.
3. هشدار رگرسیون جعلی:
من می خواهم رگرسیون بین دو سری زمانی خود (X، Y) تنظیم کنم، اما هر دوی آن ها از هم جدا شده اند. کد گردش کار را بنویسید که خطر رگرسیون کاذب را بررسی می کند: ابتدا ثابت بودن هر دو را آزمایش کنید، سپس یک آزمون همجمعی (Engle-Granger یا Johansen) را اعمال کنید. قبل از اینکه lm() را مستقیم اجرا کنم، مرا متوقف کنید و توضیح دهید که چرا این کار خطرناک است.
4. پیش بینی و عدم قطعیت:
کدی بنویسید که یک پیش بینی 12 ماهه را با مدل ARIMA که من ایجاد کردم ایجاد کند. برآورد را با فواصل اطمینان 80% و 95% آن ترسیم کنید. یک یادداشت زیر نمودار اضافه کنید که پیشبینی براساس الگوهای گذشته است و ممکن است در صورت شکست ساختاری/بحران نامعتبر شود.
اعلان ضعیف / اعلان قوی
اعلان ضعیف:
رابطه این دو سری را با رگرسیون پیدا کنید و سال بعد را پیش بینی کنید.
این ادعا دعوتی است به تله رگرسیون کاذب: اگر رگرسیون بدون بررسی ثابت بودن تنظیم شود، یک "رابطه" با R-square بالا اما بی معنی و یک تخمین ناموجه ظاهر می شود.
اعلان قدرتمند:
نقش شما: دستیار دقیق سری زمانی. گام به گام ادامه دهید: (1) ثابت بودن هر دو سری و گزارش را آزمایش کنید، (2) اگر ثابت نیستند، رگرسیون مستقیم انجام ندهید، ابتدا هم انباشتگی را آزمایش کنید، (3) اگر یک پیش بینی ایجاد کردید، حتما یک فاصله اطمینان اضافه کنید و یک هشدار شکست ساختاری بنویسید. تصمیم را در هر قدم به من بسپار. پیشرفت خودکار
تفاوت: تقاضای قوی قبل از رگرسیون نیاز به ایستایی و یکپارچگی دارد و برآورد را با عدم قطعیت ارائه می دهد.
سه کیف کوچک
مورد 1 - رگرسیون کاذب. یک تحلیلگر R²=0.91، p<0.001 را بین دو سری در حال افزایش (گردش یک بخش و مصرف انرژی یک کشور دیگر) یافت و "رابطه قوی" نوشت. هنگامی که مشاور وی درخواست تست ثابت بودن را کرد، مشاهده شد که هر دوی آنها دارای ریشه واحد هستند و زمانی که اختلاف آنها گرفته شد، رابطه (04/0r=) به طور کامل از بین رفت. R-squared بالا صرفاً یک توهم از روند رایج بود. درس: رگرسیون سری زمانی بدون آزمایش ثابت بودن غیرقابل اعتماد است.
مورد 2 - اعتماد کور به مدل اتوماتیک. یک دانش آموز از مدل انتخاب شده توسط auto.arima بدون بررسی آن استفاده کرد. او دیگر متوجه باقی ماندن فصلی قابل توجهی در تحلیل خود نشد. مدل به طور سیستماتیک ماه های تابستان را دست کم گرفت. آزمون Ljung-Box همبستگی خودکار را در باقیمانده ها نشان داد. راه صحیح: اضافه کردن جزء فصلی (SARIMA) بود. درس: انتخاب خودکار آغاز است، نه کلمه پایانی. باقی مانده ها باید بررسی شوند.
مورد 3 - پیش بینی سقوط در شکست ساختاری. یک مدل تقاضای سال 2020 را با داده های 2019 پیش بینی کرد. فاصله اطمینان باریک بود، برآورد مطمئن بود. شوک بزرگ (همهگیری) 2020 پیشبینی را کاملاً منفجر کرد زیرا مدل فقط الگوی گذشته را میدانست. درس: پیشبینی سری زمانی فرض میکند که گذشته شبیه آینده خواهد بود. در مواقع بحران/شکست، قضاوت کارشناسی مطرح می شود.
اشتباهات رایج
- ایجاد رگرسیون بدون بررسی ثابت بودن. رگرسیون جعلی یک رابطه R-square بالا اما ناچیز ایجاد می کند. ابتدا ADF/KPSS را اعمال کنید.
- تمایز و پرش از هم انباشتگی. اگر یک رابطه بلندمدت واقعی وجود داشته باشد، کورکورانه گرفتن تفاوت اطلاعات را دور می اندازد. ابتدا یکپارچگی را تست کنید.
- استفاده از مدل اتوماتیک بدون بررسی آن. auto.arima شروع خوبی است اما بدون بررسی باقیمانده ها (Ljung-Box) غیر قابل اعتماد است.
- ارائه برآورد به صورت تک خطی تخمین بدون فاصله اطمینان، دقت کاذب ایجاد می کند. همیشه عدم اطمینان را نشان دهید.
- نادیده گرفتن شکست ساختاری بحران/تغییر رژیم الگوی گذشته را مختل می کند. مدل نمی تواند این را بداند، قضاوت متخصص لازم است.
نکته: قبل از نوشتن یافتن سری زمانی، دوباره به نمودار خام سری نگاه کنید. یک روند یا شکست واضحی که با چشمان خود می بینید، قوی ترین هشدار است که هیچ آزمایشی نباید شما را فراموش کند.
به طور خلاصه
در تحلیل سری های زمانی، مشاهدات مستقل نیستند. این هم قدرت پیش بینی می دهد و هم دام هایی مانند رگرسیون ساختگی ایجاد می کند. تست ایستایی (ADF/KPSS) قبل از مدل سازی. به جای ایجاد مستقیم رگرسیون بین سری های غیر ثابت، هم انباشتگی را آزمایش کنید. باقیمانده های مدل ARIMA/SARIMA را بررسی کنید تا نویز سفید وجود داشته باشد. همیشه برآورد را با فاصله اطمینان ارائه کنید. هوش مصنوعی کد تمام این مراحل را تولید میکند، اما متخصص انتخاب خودکار مدل، تصمیم همگرایی و تفسیر شکست ساختاری را کنترل میکند. پیش بینی بر اساس گذشته است. در زمان بحران، قضاوت انسان حرف آخر را می زند.
وظیفه کاربردی
یک سری زمانی (ماهانه یا فصلی) انتخاب کنید. قبل از هوش مصنوعی، عیبیابی ثابت بودن (گراف، ACF/PACF، ADF، KPSS) را درخواست و اجرا کنید و سری را بهعنوان ثابت/غیر ثابت طبقهبندی کنید. در صورت لزوم، یک مدل ARIMA/SARIMA راه اندازی کنید و باقیمانده ها را با Ljung-Box بررسی کنید. یک پیشبینی دورهای 6-12 ایجاد کنید و آن را با فاصله اطمینان ترسیم کنید. در نهایت، در یک پاراگراف در نظر بگیرید که چگونه پیشبینی شما ممکن است اشتباه باشد، اگر یک شکست ساختاری در دادههای شما وجود داشته باشد.
چک لیست
- [ ] من سریال را ترسیم کردم و روندها، فصلی بودن و وقفه ها را به صورت بصری بررسی کردم.
- [ ] ثابت بودن را با ADF و KPSS آزمایش کردم. من تفاوت لازم را دریافت کردم.
- [ ] من از رگرسیون مستقیم اجتناب کردم و هم انباشتگی بین سری های غیر ثابت را آزمایش کردم.
- [ ] من باقیمانده مدل (Ljung-Box) را بررسی کردم و تأیید کردم که نویز سفید است.
- [ ] من برآورد را با فاصله اطمینان ارائه کردم. من به صورت تک خطی ندادم.
- [ ] من به محدودیت های پیش بینی در صورت شکست ساختاری/بحران اشاره کردم.