Time Series Analysis: Stationarity and Forecasting
Module: Machine Learning | Difficulty: Advanced
Stationarity
AR(p) Model
MA(q) Model
ADF Test
: (unit root, non-stationary)
Spectral Density
import numpy as np
from statsmodels.tsa.arima.model import ARIMA
class ARIMAForecast:
def __init__(self, order=(1,1,1)):
self.order = order; self.model = None
def fit(self, y):
self.model = ARIMA(y, order=self.order).fit()
def forecast(self, steps=10):
return self.model.forecast(steps=steps)
def aic(self):
return self.model.aic
| Method | Stationarity | Nonlinear | Long-term | |--------|-------------|-----------|-----------| | ARIMA | Required | No | Poor | | Prophet | Optional | Limited | Good | | LSTM | Optional | Yes | Good | | Transformer | Optional | Yes | Excellent |
Research Insight: Transformer-based forecasting (Informer, Autoformer) outperform traditional methods on long sequences because attention captures long-range dependencies. However, they require large datasets and can overfit on short series.