وبلاگ
سری زمانی چیست؟ راهنمای تحلیل و پیشبینی Time Series
سری زمانی یا Time Series به مجموعهای از مشاهدات گفته میشود که در طول زمان ثبت و به ترتیب زمانی مرتب شدهاند. قیمت روزانه یک کالا، فروش ماهانه یک فروشگاه، مصرف ساعتی برق یا دمای ثبتشده در طول روز نمونههایی از دادههای سری زمانی هستند.
تفاوت مهم سری زمانی با بسیاری از دادههای معمولی این است که زمان بخشی از ساختار داده است. ترتیب مشاهدات اهمیت دارد و مقدار امروز ممکن است با مقدار دیروز، هفته قبل یا همان دوره در سال گذشته ارتباط داشته باشد.
به همین دلیل تحلیل سری زمانی فقط بررسی چند عدد کنار یکدیگر نیست. هدف میتواند کشف روند، شناسایی الگوهای تکرارشونده، تشخیص ناهنجاری یا پیشبینی مقادیر آینده باشد.
سرفصل محتوا:
سری زمانی چیست؟
یک سری زمانی دنبالهای از مشاهدات یک متغیر است که در نقاط زمانی مشخص ثبت شده و ترتیب زمانی آنها حفظ شده است. برای نمونه، اگر میزان فروش یک فروشگاه را در پایان هر ماه ثبت کنیم، مجموعه حاصل یک سری زمانی از فروش ماهانه خواهد بود.
اگر مقدار مشاهدهشده در زمان t را با X(t) نمایش دهیم، هر مشاهده بخشی از مسیر تغییرات یک پدیده در طول زمان را نشان میدهد.
در دادههای سری زمانی، وابستگی زمانی اهمیت زیادی دارد. برای مثال، فروش یک فروشگاه در این هفته ممکن است به فروش هفته قبل، فصل جاری یا همان دوره در سال گذشته وابسته باشد.
تعریف کوتاه: سری زمانی مجموعهای از مشاهدات مرتبشده بر اساس زمان است که برای تحلیل رفتار یک پدیده در طول زمان و در بسیاری از پروژهها برای پیشبینی مقادیر آینده استفاده میشود.
برای درک بهتر جایگاه سری زمانی در Data Mining، ابتدا میتوانید مقاله داده کاوی چیست؟ را مطالعه کنید.
داده سری زمانی چه ویژگیهایی دارد؟
مهمترین ویژگی دادههای سری زمانی این است که مشاهدهها مستقل از زمان نیستند. ترتیب آنها میتواند اطلاعات ارزشمندی درباره رفتار سیستم در اختیار تحلیلگر قرار دهد.
- ترتیب زمانی: جایگاه هر مشاهده در زمان اهمیت دارد.
- وابستگی زمانی: مقدار یک متغیر ممکن است با مقادیر قبلی آن ارتباط داشته باشد.
- روند: داده ممکن است در بلندمدت افزایش یا کاهش پیدا کند.
- فصلمندی: بعضی الگوها در بازههای منظم تکرار میشوند.
- نوسان: مقدار متغیر میتواند در طول زمان تغییرات کوتاهمدت داشته باشد.
- بهروزرسانی: بسیاری از سریهای زمانی به صورت روزانه، ساعتی یا حتی لحظهای تولید میشوند.
انواع سری زمانی
سری زمانی تکمتغیره
در یک سری زمانی تکمتغیره یا Univariate Time Series، یک متغیر اصلی در طول زمان بررسی میشود.
برای مثال، اگر فقط فروش روزانه یک فروشگاه را ثبت کنیم، با یک سری زمانی تکمتغیره مواجه هستیم.
سری زمانی چندمتغیره
در سری زمانی چندمتغیره یا Multivariate Time Series، چند متغیر در طول زمان ثبت میشوند و ممکن است میان آنها رابطه وجود داشته باشد.
برای مثال، در پیشبینی مصرف برق میتوان همزمان دما، رطوبت، ساعت روز، روز هفته و میزان مصرف قبلی برق را در نظر گرفت.
بنابراین چندمتغیره بودن به تعداد متغیرهای زمانی مورد استفاده در تحلیل مربوط است، نه صرفاً تعداد ویژگیهای یک فرد یا یک رکورد.
سری زمانی گسسته
اگر مشاهدات در زمانهای مشخص مانند هر ساعت، هر روز یا هر ماه ثبت شوند، با یک سری زمانی گسسته مواجه هستیم.
فروش روزانه، تعداد سفارشهای هفتگی و مصرف برق ساعتی نمونههایی از این نوع داده هستند.
سری زمانی پیوسته
در سری زمانی پیوسته، متغیر در امتداد زمان به صورت پیوسته در نظر گرفته میشود. اندازهگیری پیوسته دما یا برخی سیگنالهای مهندسی نمونههایی از این نوع داده هستند.
اجزای اصلی سری زمانی
یک سری زمانی ممکن است از چند الگوی متفاوت تشکیل شده باشد. شناخت این اجزا کمک میکند تحلیلگر بفهمد تغییرات مشاهدهشده از کجا ناشی میشوند.
Trend یا روند
Trend جهت کلی حرکت یک سری زمانی در یک بازه نسبتاً طولانی است. روند میتواند صعودی، نزولی یا تقریباً ثابت باشد.
برای مثال، اگر تعداد کاربران یک سرویس در چند سال به طور کلی افزایش پیدا کند، سری زمانی آن احتمالاً دارای روند صعودی است.
Seasonality یا فصلمندی
Seasonality به الگویی گفته میشود که در فاصلههای زمانی منظم تکرار میشود.
برای مثال، فروش برخی فروشگاهها ممکن است در روزهای خاص هفته یا ماههای مشخص سال افزایش پیدا کند. اگر این الگو به صورت منظم تکرار شود، بخشی از رفتار فصلی سری زمانی محسوب میشود.
Cyclicality یا چرخهای بودن
الگوهای Cyclical نیز نوسانات تکرارشونده هستند، اما الزاماً دوره ثابت و مشخصی مانند Seasonality ندارند. چرخههای اقتصادی نمونه شناختهشدهای از این نوع تغییرات هستند.
Irregular Variation یا تغییرات نامنظم
بخشی از تغییرات سری زمانی ممکن است ناشی از عوامل غیرمنتظره یا نویز باشد و الگوی تکرارشونده مشخصی نداشته باشد.
تحلیلگر باید بین یک سیگنال واقعی و نویز تصادفی تمایز ایجاد کند؛ زیرا قرار دادن نویز در مدل میتواند به پیشبینی ضعیف روی دادههای آینده منجر شود.
سری زمانی مانا و غیرمانا چیست؟
یکی از مفاهیم مهم در تحلیل سری زمانی، Stationarity یا مانایی است. به طور ساده، یک سری زمانی مانا دارای ویژگیهای آماری نسبتاً پایدار در طول زمان است. در بسیاری از مدلهای کلاسیک سری زمانی، مانایی اهمیت ویژهای دارد.
مانا بودن به معنای ثابت بودن تکتک مقادیر سری نیست. یک سری مانا همچنان میتواند بالا و پایین شود؛ نکته مهم این است که رفتار آماری کلی آن در طول زمان تغییر اساسی نکند.
در مقابل، یک سری غیرمانا ممکن است دارای روند، تغییر در واریانس یا سایر تغییرات ساختاری باشد.
بنابراین نباید «مانا بودن» را با «قابل پیشبینی بودن» یکی دانست. یک سری زمانی میتواند الگوهایی داشته باشد که پیشبینی آن را آسانتر کنند، اما Stationarity یک مفهوم آماری مشخصتر است.
تحلیل سری زمانی چیست؟
تحلیل سری زمانی یا Time Series Analysis مجموعهای از روشها برای بررسی رفتار دادههای وابسته به زمان است.
در تحلیل سری زمانی، سؤالات مختلفی میتوانند مطرح شوند:
- آیا داده دارای روند مشخصی است؟
- آیا الگوی فصلی وجود دارد؟
- آیا مقادیر فعلی به مقادیر گذشته وابستهاند؟
- آیا نقطهای در داده رفتار غیرعادی دارد؟
- آیا میتوان مقدار آینده را پیشبینی کرد؟
بنابراین تحلیل سری زمانی الزاماً به معنای Forecasting نیست. پیشبینی یکی از مهمترین کاربردهای آن است، اما تحلیل توصیفی و تشخیص ناهنجاری نیز میتوانند هدف پروژه باشند.
پیشبینی سری زمانی چیست؟
Time Series Forecasting فرایند استفاده از دادههای تاریخی و اطلاعات در دسترس برای تخمین مقادیر آینده یک متغیر است.
برای مثال، یک فروشگاه ممکن است از داده فروش دو سال گذشته استفاده کند تا فروش هفته آینده را تخمین بزند. یک شرکت انرژی نیز میتواند با استفاده از مصرف گذشته و متغیرهایی مانند دما، تقاضای آینده را پیشبینی کند.
نکته مهم این است که Forecasting هیچگاه به معنی پیشبینی قطعی آینده نیست. خروجی مدل یک تخمین است و کیفیت آن به داده، ساختار مسئله، افق پیشبینی و روش مدلسازی بستگی دارد.
روشهای تحلیل و پیشبینی سری زمانی
روش مناسب به ویژگیهای داده و هدف پروژه بستگی دارد. برخی روشهای رایج عبارتاند از:
Moving Average
میانگین متحرک برای هموارسازی نوسانات کوتاهمدت و مشاهده بهتر روند داده استفاده میشود. این روش ساده است و میتواند برای تحلیل اولیه داده مفید باشد.
Exponential Smoothing
روشهای هموارسازی نمایی وزن بیشتری به مشاهدات جدیدتر میدهند. نسخههای پیشرفتهتر آن میتوانند روند و فصلمندی را نیز در مدل لحاظ کنند.
ARIMA
ARIMA یکی از مدلهای کلاسیک شناختهشده در Forecasting است که از ساختار خودهمبستگی داده و تغییرات آن در طول زمان استفاده میکند.
SARIMA
زمانی که سری زمانی علاوه بر رفتار خودهمبسته دارای الگوی فصلی باشد، مدلهای فصلی مانند SARIMA میتوانند گزینه مناسبی باشند.
Machine Learning
مدلهای یادگیری ماشین نیز میتوانند برای Forecasting استفاده شوند. در این رویکرد معمولاً ویژگیهایی مانند Lag، میانگینهای متحرک، اطلاعات تقویمی و متغیرهای خارجی به مدل داده میشوند.
تحلیل سری زمانی را با داده واقعی یاد بگیرید
اگر میخواهید از مشاهده نمودارها به تحلیل روند، کشف الگو و پیشبینی داده برسید، مسیر یادگیری Data Analyst را دنبال کنید.
یک مثال ساده از تحلیل سری زمانی
فرض کنید یک فروشگاه اطلاعات فروش روزانه خود را برای دو سال ذخیره کرده است.
در مرحله اول میتوان داده را روی نمودار نمایش داد. ممکن است نمودار نشان دهد فروش در بلندمدت روند صعودی دارد.
در مرحله بعد میتوان بررسی کرد که آیا فروش در بعضی روزهای هفته یا ماههای سال به شکل منظم افزایش پیدا میکند. اگر چنین الگویی وجود داشته باشد، Seasonality بخشی از ساختار سری زمانی خواهد بود.
سپس میتوان وابستگی فروش امروز به روزهای گذشته را بررسی کرد. اگر این وابستگی قابل توجه باشد، اطلاعات تاریخی میتواند در ساخت مدل Forecasting نقش مهمی داشته باشد.
در نهایت داده به بخشهای آموزش و ارزیابی تقسیم میشود و مدل روی گذشته آموزش میبیند و روی بازهای از آینده که در زمان آموزش در دسترس نبوده آزمایش میشود.
این نکته بسیار مهم است: در سری زمانی نباید داده آینده را به شکل نامناسب وارد فرایند آموزش کرد. ارزیابی باید ترتیب زمانی واقعی مسئله را حفظ کند.
کاربردهای سری زمانی
پیشبینی فروش و تقاضا
شرکتها میتوانند از دادههای تاریخی فروش برای تخمین تقاضای آینده، برنامهریزی موجودی و مدیریت منابع استفاده کنند.
مصرف انرژی
مصرف برق، گاز یا سایر منابع انرژی معمولاً در طول زمان ثبت میشود. تحلیل این دادهها میتواند به شناسایی الگوهای مصرف و برنامهریزی ظرفیت کمک کند.
مالی و اقتصادی
قیمتها، حجم معاملات، نرخهای اقتصادی و بسیاری از شاخصهای مالی ساختار زمانی دارند. تحلیل این دادهها میتواند برای مطالعه روند، نوسان و رفتار تاریخی استفاده شود؛ البته پیشبینی بازارهای مالی با عدمقطعیت بالایی همراه است.
بازاریابی و رفتار مشتری
تعداد سفارشها، بازدید کاربران، نرخ تبدیل و سایر شاخصهای کسبوکار را میتوان در طول زمان بررسی کرد تا روندها، فصلمندی و تغییرات رفتاری شناسایی شوند.
صنعت و نگهداری تجهیزات
حسگرهای تجهیزات صنعتی میتوانند داده را به شکل مداوم تولید کنند. تحلیل این دادهها برای تشخیص تغییر رفتار تجهیزات، کشف ناهنجاری و پشتیبانی از Predictive Maintenance کاربرد دارد.
هواشناسی و محیط زیست
دما، بارش، کیفیت هوا و بسیاری از متغیرهای محیطی در طول زمان اندازهگیری میشوند و میتوانند برای تحلیل روندها و پیشبینیهای کوتاهمدت یا بلندمدت مورد استفاده قرار گیرند.
سری زمانی در داده کاوی چه نقشی دارد؟
دادههای سری زمانی یکی از منابع مهم برای کشف الگو در Data Mining هستند. در اینجا هدف فقط مشاهده مقدار فعلی نیست؛ بلکه رابطه میان مشاهدات در طول زمان نیز اهمیت دارد.
برای مثال، در دادههای فروش میتوان الگوهای خرید را در دورههای مختلف بررسی کرد، در دادههای بانکی تغییر رفتار تراکنشها را شناسایی کرد و در دادههای صنعتی تغییرات غیرعادی حسگرها را مورد بررسی قرار داد.
بنابراین سری زمانی میتواند با حوزههایی مانند Data Mining، Machine Learning و Business Intelligence ارتباط پیدا کند. برای آشنایی با مفهوم گستردهتر داده کاوی، مقاله راهنمای داده کاوی را مطالعه کنید.
چالشهای تحلیل سری زمانی
تحلیل سری زمانی همیشه ساده نیست. چند مسئله میتواند کیفیت نتیجه را تحت تأثیر قرار دهد:
- دادههای گمشده: نبودن بخشی از مشاهدات میتواند ساختار زمانی را مختل کند.
- دادههای پرت: یک رخداد غیرعادی ممکن است با یک خطای ثبت اشتباه گرفته شود یا برعکس.
- تغییرات ساختاری: رفتار سیستم ممکن است پس از یک تغییر مهم دیگر مانند گذشته نباشد.
- فصلمندی پیچیده: بعضی دادهها بیش از یک الگوی دورهای دارند.
- Data Leakage: استفاده ناخواسته از اطلاعات آینده میتواند ارزیابی مدل را غیرواقعی کند.
- تغییر رفتار در طول زمان: مدلی که روی گذشته عملکرد خوبی داشته، لزوماً روی آینده به همان اندازه خوب نیست.
به همین دلیل انتخاب مدل تنها یک بخش از پروژه است. کیفیت داده، طراحی درست ویژگیها، روش ارزیابی و شناخت حوزه نیز اهمیت زیادی دارند.
مسیر یادگیری تحلیل سری زمانی
اگر قصد دارید تحلیل سری زمانی را به صورت عملی یاد بگیرید، بهتر است مسیر را مرحلهبهمرحله طی کنید:
- Python و مبانی کار با داده
- NumPy و pandas
- Data Visualization
- مفاهیم آماری و وابستگی زمانی
- Trend و Seasonality
- Stationarity و Transformation
- Autocorrelation و Lag Features
- مدلهای کلاسیک مانند ARIMA
- Machine Learning برای Forecasting
- ارزیابی و Backtesting مدل
- اجرای پروژه واقعی پیشبینی
این مهارتها در مسیر حرفهای تحلیل داده نیز کاربرد دارند و میتوانند در کنار موضوعاتی مانند خوشهبندی در داده کاوی و طبقهبندی در داده کاوی قرار بگیرند.
جمعبندی
سری زمانی نوعی از داده است که در آن زمان و ترتیب مشاهدات بخشی از ساختار مسئله هستند. تحلیل چنین دادهای به ما کمک میکند روند، فصلمندی، چرخهها و تغییرات غیرعادی را بهتر بشناسیم.
از طرف دیگر، Forecasting میتواند از همین اطلاعات تاریخی برای تخمین مقادیر آینده استفاده کند. اما پیشبینی موفق فقط به انتخاب یک الگوریتم وابسته نیست؛ کیفیت داده، شناخت مسئله، جلوگیری از Data Leakage و ارزیابی درست مدل اهمیت بسیار زیادی دارند.
برای یک تحلیلگر داده، یادگیری سری زمانی زمانی ارزشمند میشود که بتواند یک Dataset واقعی را از مرحله پاکسازی و تحلیل تا ساخت مدل و ارزیابی پیش ببرد.
به جای فقط دیدن روند داده، آینده آن را مدل کنید
تحلیل سری زمانی یکی از مهارتهایی است که میتواند تحلیلگر داده را از گزارشسازی صرف به سمت تحلیل پیشبینانه و حل مسئله واقعی هدایت کند.
سؤالات متداول درباره سری زمانی
سری زمانی چیست؟
سری زمانی مجموعهای از مشاهدات یک متغیر است که در نقاط زمانی مشخص ثبت و به ترتیب زمان مرتب شدهاند. فروش روزانه، مصرف ساعتی برق و دمای ثبتشده نمونههایی از سری زمانی هستند.
تفاوت سری زمانی و داده معمولی چیست؟
در سری زمانی ترتیب مشاهدات اهمیت دارد و مقدارهای گذشته ممکن است با مقدارهای آینده ارتباط داشته باشند. در بسیاری از دادههای معمولی، ترتیب ثبت رکوردها لزوماً بخشی از ساختار مسئله نیست.
سری زمانی مانا و غیرمانا چه تفاوتی دارند؟
در سری زمانی مانا، ویژگیهای آماری فرایند در طول زمان نسبتاً پایدار هستند. سری غیرمانا ممکن است دارای روند، تغییر واریانس یا تغییرات ساختاری باشد.
مهمترین اجزای یک سری زمانی کداماند؟
Trend، Seasonality، Cyclicality و Irregular Variation از اجزای مهمی هستند که ممکن است در رفتار یک سری زمانی مشاهده شوند.
تحلیل سری زمانی برای چه کاربردهایی استفاده میشود؟
از تحلیل سری زمانی برای بررسی روندها، شناسایی الگوهای فصلی، تشخیص ناهنجاری و پیشبینی مقادیر آینده در حوزههایی مانند فروش، انرژی، صنعت، اقتصاد و بازاریابی استفاده میشود.
بهترین روش برای پیشبینی سری زمانی چیست؟
یک روش واحد که برای همه سریهای زمانی بهترین باشد وجود ندارد. انتخاب روش به ساختار داده، وجود روند و فصلمندی، حجم داده، افق پیشبینی و هدف کسبوکار بستگی دارد. روشهایی مانند Exponential Smoothing، ARIMA و مدلهای Machine Learning میتوانند در شرایط مختلف مناسب باشند.


