← All projects

Machine learning

Day-ahead price forecasting (DE-LU)

Linear regression, Random Forest, XGBoost, LSTM and GRU compared on SMARD data with 10-fold walk-forward validation.

GRU with causal features reaches MAE ≈ 24 €/MWh (R² ≈ 0.83), vs. ≈ 60 €/MWh for persistence.

Day-ahead price forecast for 10 Oct 2022: actual price, GRU prediction and persistence baseline over 24 hours

Forecasting the 24 hourly day-ahead prices for the German-Luxembourg bidding zone, using only information available before the market’s noon deadline.

Approach

  • Data: historical prices, demand forecasts and generation forecasts from SMARD. All features are strictly causal, using data up to D 23:00 to predict D+1.
  • Features: lags (1, 24, 48, 168 h), rolling statistics (24 h and 168 h windows) and calendar features.
  • Models: linear regression, Random Forest, XGBoost, LSTM and GRU.
  • Validation: 10-fold walk-forward cross-validation with 168-hour input windows, preserving temporal order.
  • Interpretability: feature attribution with Integrated Gradients (Captum) and SHAP.

Result

The GRU with causal features reached MAE ≈ 24 €/MWh (R² ≈ 0.83), compared with ≈ 60 €/MWh for a persistence baseline.