Time Series Forecasting
Predict future values from time-based data.
Predict the future with data.
What is Time Series?
Data collected over time: stock prices, temperature, sales.
**Goal**: Predict future values
Key Concepts
**Trend**: Long-term direction (up/down) **Seasonality**: Repeating patterns (summer/winter) **Noise**: Random fluctuations
Simple Moving Average
```python import pandas as pd
Calculate 7-day moving average df['MA_7'] = df['sales'].rolling(window=7).mean()
Predict: next value = average of last 7 ```
ARIMA Model
Classic time series model:
```python from statsmodels.tsa.arima.model import ARIMA
Fit ARIMA model = ARIMA(data, order=(1, 1, 1)) model_fit = model.fit()
Forecast next 10 days forecast = model_fit.forecast(steps=10) print(forecast) ```
LSTM for Time Series
```python from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense import numpy as np
Prepare data: use last 30 days to predict next day def create_sequences(data, seq_length=30): X, y = [], [] for i in range(len(data) - seq_length): X.append(data[i:i+seq_length]) y.append(data[i+seq_length]) return np.array(X), np.array(y)
X, y = create_sequences(prices)
Build model model = Sequential([ LSTM(50, return_sequences=True, input_shape=(30, 1)), LSTM(50), Dense(1) ])
model.compile(optimizer='adam', loss='mse') model.fit(X, y, epochs=50, batch_size=32)
Predict next_day = model.predict(last_30_days) ```
Prophet (by Facebook)
Easy and powerful:
```python from fbprophet import Prophet
Data needs 'ds' (date) and 'y' (value) df = pd.DataFrame({ 'ds': dates, 'y': values })
model = Prophet() model.fit(df)
Forecast 365 days future = model.make_future_dataframe(periods=365) forecast = model.predict(future)
Plot model.plot(forecast) ```
Evaluation Metrics
```python from sklearn.metrics import mean_absolute_error, mean_squared_error
mae = mean_absolute_error(y_true, y_pred) rmse = np.sqrt(mean_squared_error(y_true, y_pred))
print(f"MAE: {mae}") print(f"RMSE: {rmse}") ```
Real Applications
- Stock price prediction - Sales forecasting - Weather prediction - Traffic forecasting - Energy consumption
Best Practices
1. Check for stationarity 2. Handle seasonality 3. Use walk-forward validation 4. Don't predict too far ahead
Remember
- Time order matters! - Don't shuffle data - Use Prophet for easy start - LSTM for complex patterns