Introduction
Time series forecasting predicts future values based on historical patterns.
Simple Methods
import pandas as pd
from sklearn.metrics import mean_absolute_error
# Moving average
df["ma_7"] = df["value"].rolling(window=7).mean()
df["ma_30"] = df["value"].rolling(window=30).mean()
# Exponential smoothing
df["ema"] = df["value"].ewm(span=7).mean()
# Naive forecast
df["naive"] = df["value"].shift(1)
Prophet
from prophet import Prophet
df = pd.DataFrame({
"ds": pd.date_range("2023-01-01", periods=365),
"y": sales_data
})
model = Prophet(yearly_seasonality=True, weekly_seasonality=True)
model.fit(df)
future = model.make_future_dataframe(periods=30)
forecast = model.predict(future)
ARIMA
from statsmodels.tsa.arima.model import ARIMA
model = ARIMA(df["value"], order=(5, 1, 0))
fitted = model.fit()
forecast = fitted.forecast(steps=30)
Practice Problems
- Create time series plots
- Detect trends and seasonality
- Use moving averages
- Fit ARIMA model
- Compare forecasting methods