Electricity Load and Price Forecasting
with MATLAB
This example demonstrates building a short term electricity load (or price) forecasting system with
MATLAB. Two non-linear regression models (Neural Networks and Bagged Regression Trees) are
calibrated to forecast hourly day-ahead loads given temperature forecasts, holiday information and
historical loads. The models are trained on hourly data from the NEPOOL region (courtesy ISO New
England) from 2004 to 2007 and tested on out-of-sample data from 2008. The models are shown to
produce highly accurate day-ahead forecasts with average errors around 1-2%. The demo includes
publishable reports as well as an Excel front end which enables users to call the trained load forecasting
models through a MATLAB-deployed DLL.
1. Background
Accurate load forecasts are critical for short term operations and long term planning for utilities. The
load forecast influences a number of decisions including which generators to commit for a given period,
and broadly affects the wholesale electricity market prices. Load and price forecasting algorithms
typically also feature prominently in reduced-form hybrid models for electricity price, which are some of
the most accurate models for simulating markets and modeling energy derivatives. The electricity price
forecast is also used widely by market participants in many trading and risk management applications.
The load forecast influences a number of decisions including which generators to commit for a given
period, and broadly affects the wholesale electricity market prices. Load forecasting algorithms typically
also feature prominently in hybrid models for electricity prices, some of the most accurate class of
approaches for modeling electricity markets. The electricity price forecast is used widely by market
participants in many trading and risk management applications.
Traditionally, utilities and marketers have used commercial software packages for performing load
forecasts. The main disadvantage of these is that they are a black box, offering no transparency into how
the load forecast is calculated. They also only typically offer 80-90% of the functionality needed by a
utility. In many cases it is just not possible to meet all of the requirements through an off-the-shelf
product, for instance taking into account regional loads, different weather patterns and so on.
MathWorks tools provide the flexibility of building a completely customized load forecasting system that
meets 100% of the requirements. And because of the built-in models, high-level language and ease of
connecting to data, the time taken to develop such a system is also dramatically lower than building an
equivalent system in a lower level programming language, as is demonstrated in this example.