The document describes forecasting electricity demand distributions using a semi-parametric additive model. It aims to forecast peak electricity demand 20 years into the future based on 15 years of half-hourly electricity, temperature, economic and demographic data from South Australia, which has highly volatile demand. The model predicts each half-hour period separately for each season using calendar effects, temperature variables, and other predictors selected through cross-validation to provide the best out-of-sample predictions. The goal is to generate forecasts of the entire demand distribution, not just the mean or median.
2. Outline
1 The problem
2 The model
3 Long-term forecasts
4 Short term forecasts
5 Forecast density evaluation
6 Forecast quantile evaluation
7 References and R implementation
Forecasting electricity demand distributions The problem 2
3. The problem
We want to forecast the peak electricity
demand in a half-hour period in twenty years
time.
We have fifteen years of half-hourly electricity
data, temperature data and some economic
and demographic data.
The location is South Australia: home to the
most volatile electricity demand in the world.
Sounds impossible?
Forecasting electricity demand distributions The problem 3
4. The problem
We want to forecast the peak electricity
demand in a half-hour period in twenty years
time.
We have fifteen years of half-hourly electricity
data, temperature data and some economic
and demographic data.
The location is South Australia: home to the
most volatile electricity demand in the world.
Sounds impossible?
Forecasting electricity demand distributions The problem 3
5. The problem
We want to forecast the peak electricity
demand in a half-hour period in twenty years
time.
We have fifteen years of half-hourly electricity
data, temperature data and some economic
and demographic data.
The location is South Australia: home to the
most volatile electricity demand in the world.
Sounds impossible?
Forecasting electricity demand distributions The problem 3
6. The problem
We want to forecast the peak electricity
demand in a half-hour period in twenty years
time.
We have fifteen years of half-hourly electricity
data, temperature data and some economic
and demographic data.
The location is South Australia: home to the
most volatile electricity demand in the world.
Sounds impossible?
Forecasting electricity demand distributions The problem 3
7. The problem
We want to forecast the peak electricity
demand in a half-hour period in twenty years
time.
We have fifteen years of half-hourly electricity
data, temperature data and some economic
and demographic data.
The location is South Australia: home to the
most volatile electricity demand in the world.
Sounds impossible?
Forecasting electricity demand distributions The problem 3
17. South Australian demand data
Black Saturday →
Forecasting electricity demand distributions The problem 8
18. South Australian demand data
South Australia state wide demand (summer 10/11)
3.5
South Australia state wide demand (GW)
3.0
2.5
2.0
1.5
Oct 10 Nov 10 Dec 10 Jan 11 Feb 11 Mar 11
Forecasting electricity demand distributions The problem 8
19. South Australian demand data
South Australia state wide demand (January 2011)
3.5
3.0
South Australian demand (GW)
2.5
2.0
1.5
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
Date in January
Forecasting electricity demand distributions The problem 8
21. Temperature data (Sth Aust)
Time: 12 midnight
3.5
Workday
Non−workday
3.0
2.5
Demand (GW)
2.0
1.5
1.0
10 20 30 40
Temperature (deg C)
Forecasting electricity demand distributions The problem 10
22. Demand densities (Sth Aust)
Density of demand: 12 midnight
4
3
Density
2
1
0
1.0 1.5 2.0 2.5 3.0 3.5
South Australian half−hourly demand (GW)
Forecasting electricity demand distributions The problem 11
25. Outline
1 The problem
2 The model
3 Long-term forecasts
4 Short term forecasts
5 Forecast density evaluation
6 Forecast quantile evaluation
7 References and R implementation
Forecasting electricity demand distributions The model 13
26. Predictors
calendar effects
prevailing and recent weather conditions
climate changes
economic and demographic changes
changing technology
Modelling framework
Semi-parametric additive models with
correlated errors.
Each half-hour period modelled separately for
each season.
Variables selected to provide best
out-of-sample predictions using cross-validation
on each summer.
Forecasting electricity demand distributions The model 14
27. Predictors
calendar effects
prevailing and recent weather conditions
climate changes
economic and demographic changes
changing technology
Modelling framework
Semi-parametric additive models with
correlated errors.
Each half-hour period modelled separately for
each season.
Variables selected to provide best
out-of-sample predictions using cross-validation
on each summer.
Forecasting electricity demand distributions The model 14
28. Predictors
calendar effects
prevailing and recent weather conditions
climate changes
economic and demographic changes
changing technology
Modelling framework
Semi-parametric additive models with
correlated errors.
Each half-hour period modelled separately for
each season.
Variables selected to provide best
out-of-sample predictions using cross-validation
on each summer.
Forecasting electricity demand distributions The model 14
29. Predictors
calendar effects
prevailing and recent weather conditions
climate changes
economic and demographic changes
changing technology
Modelling framework
Semi-parametric additive models with
correlated errors.
Each half-hour period modelled separately for
each season.
Variables selected to provide best
out-of-sample predictions using cross-validation
on each summer.
Forecasting electricity demand distributions The model 14
30. Predictors
calendar effects
prevailing and recent weather conditions
climate changes
economic and demographic changes
changing technology
Modelling framework
Semi-parametric additive models with
correlated errors.
Each half-hour period modelled separately for
each season.
Variables selected to provide best
out-of-sample predictions using cross-validation
on each summer.
Forecasting electricity demand distributions The model 14
31. Predictors
calendar effects
prevailing and recent weather conditions
climate changes
economic and demographic changes
changing technology
Modelling framework
Semi-parametric additive models with
correlated errors.
Each half-hour period modelled separately for
each season.
Variables selected to provide best
out-of-sample predictions using cross-validation
on each summer.
Forecasting electricity demand distributions The model 14
32. Predictors
calendar effects
prevailing and recent weather conditions
climate changes
economic and demographic changes
changing technology
Modelling framework
Semi-parametric additive models with
correlated errors.
Each half-hour period modelled separately for
each season.
Variables selected to provide best
out-of-sample predictions using cross-validation
on each summer.
Forecasting electricity demand distributions The model 14
33. Predictors
calendar effects
prevailing and recent weather conditions
climate changes
economic and demographic changes
changing technology
Modelling framework
Semi-parametric additive models with
correlated errors.
Each half-hour period modelled separately for
each season.
Variables selected to provide best
out-of-sample predictions using cross-validation
on each summer.
Forecasting electricity demand distributions The model 14
34. Predictors
calendar effects
prevailing and recent weather conditions
climate changes
economic and demographic changes
changing technology
Modelling framework
Semi-parametric additive models with
correlated errors.
Each half-hour period modelled separately for
each season.
Variables selected to provide best
out-of-sample predictions using cross-validation
on each summer.
Forecasting electricity demand distributions The model 14
35. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
yt denotes per capita demand (minus offset) at time t
(measured in half-hourly intervals) and p denotes the
time of day p = 1, . . . , 48;
hp (t ) models all calendar effects;
fp (w1,t , w2,t ) models all temperature effects where w1,t is
a vector of recent temperatures at location 1 and w2,t is
a vector of recent temperatures at location 2;
zj,t is a demographic or economic variable at time t
nt denotes the model error at time t.
Forecasting electricity demand distributions The model 15
36. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
yt denotes per capita demand (minus offset) at time t
(measured in half-hourly intervals) and p denotes the
time of day p = 1, . . . , 48;
hp (t ) models all calendar effects;
fp (w1,t , w2,t ) models all temperature effects where w1,t is
a vector of recent temperatures at location 1 and w2,t is
a vector of recent temperatures at location 2;
zj,t is a demographic or economic variable at time t
nt denotes the model error at time t.
Forecasting electricity demand distributions The model 15
37. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
yt denotes per capita demand (minus offset) at time t
(measured in half-hourly intervals) and p denotes the
time of day p = 1, . . . , 48;
hp (t ) models all calendar effects;
fp (w1,t , w2,t ) models all temperature effects where w1,t is
a vector of recent temperatures at location 1 and w2,t is
a vector of recent temperatures at location 2;
zj,t is a demographic or economic variable at time t
nt denotes the model error at time t.
Forecasting electricity demand distributions The model 15
38. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
yt denotes per capita demand (minus offset) at time t
(measured in half-hourly intervals) and p denotes the
time of day p = 1, . . . , 48;
hp (t ) models all calendar effects;
fp (w1,t , w2,t ) models all temperature effects where w1,t is
a vector of recent temperatures at location 1 and w2,t is
a vector of recent temperatures at location 2;
zj,t is a demographic or economic variable at time t
nt denotes the model error at time t.
Forecasting electricity demand distributions The model 15
39. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
yt denotes per capita demand (minus offset) at time t
(measured in half-hourly intervals) and p denotes the
time of day p = 1, . . . , 48;
hp (t ) models all calendar effects;
fp (w1,t , w2,t ) models all temperature effects where w1,t is
a vector of recent temperatures at location 1 and w2,t is
a vector of recent temperatures at location 2;
zj,t is a demographic or economic variable at time t
nt denotes the model error at time t.
Forecasting electricity demand distributions The model 15
40. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
hp (t ) includes handle annual, weekly and daily seasonal
patterns as well as public holidays:
hp (t ) = p (t) + αt,p + βt,p + γt,p + δt,p
p (t) is “time of summer” effect (a regression spline);
αt,p is day of week effect;
βt,p is “holiday” effect;
γt,p New Year’s Eve effect;
δt,p is millennium effect;
Forecasting electricity demand distributions The model 16
41. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
hp (t ) includes handle annual, weekly and daily seasonal
patterns as well as public holidays:
hp (t ) = p (t) + αt,p + βt,p + γt,p + δt,p
p (t) is “time of summer” effect (a regression spline);
αt,p is day of week effect;
βt,p is “holiday” effect;
γt,p New Year’s Eve effect;
δt,p is millennium effect;
Forecasting electricity demand distributions The model 16
42. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
hp (t ) includes handle annual, weekly and daily seasonal
patterns as well as public holidays:
hp (t ) = p (t) + αt,p + βt,p + γt,p + δt,p
p (t) is “time of summer” effect (a regression spline);
αt,p is day of week effect;
βt,p is “holiday” effect;
γt,p New Year’s Eve effect;
δt,p is millennium effect;
Forecasting electricity demand distributions The model 16
43. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
hp (t ) includes handle annual, weekly and daily seasonal
patterns as well as public holidays:
hp (t ) = p (t) + αt,p + βt,p + γt,p + δt,p
p (t) is “time of summer” effect (a regression spline);
αt,p is day of week effect;
βt,p is “holiday” effect;
γt,p New Year’s Eve effect;
δt,p is millennium effect;
Forecasting electricity demand distributions The model 16
44. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
hp (t ) includes handle annual, weekly and daily seasonal
patterns as well as public holidays:
hp (t ) = p (t) + αt,p + βt,p + γt,p + δt,p
p (t) is “time of summer” effect (a regression spline);
αt,p is day of week effect;
βt,p is “holiday” effect;
γt,p New Year’s Eve effect;
δt,p is millennium effect;
Forecasting electricity demand distributions The model 16
45. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
hp (t ) includes handle annual, weekly and daily seasonal
patterns as well as public holidays:
hp (t ) = p (t) + αt,p + βt,p + γt,p + δt,p
p (t) is “time of summer” effect (a regression spline);
αt,p is day of week effect;
βt,p is “holiday” effect;
γt,p New Year’s Eve effect;
δt,p is millennium effect;
Forecasting electricity demand distributions The model 16
46. Fitted results (Summer 3pm)
Time: 3:00 pm
0.4
0.4
Effect on demand
Effect on demand
0.0
0.0
−0.4
−0.4
0 50 100 150 Mon Tue Wed Thu Fri Sat Sun
Day of summer Day of week
0.4
Effect on demand
0.0
−0.4
Normal Day before Holiday Day after
Holiday
Forecasting electricity demand distributions The model 17
47. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
6
+ −
fp (w1,t , w2,t ) = ¯
fk,p (xt−k ) + gk,p (dt−k ) + qp (xt ) + rp (xt ) + sp (xt )
k =0 6
+ Fj,p (xt−48j ) + Gj,p (dt−48j )
j=1
xt is ave temp across two sites (Kent Town and Adelaide
Airport) at time t;
dt is the temp difference between two sites at time t;
+
xt is max of xt values in past 24 hours;
−
xt is min of xt values in past 24 hours;
¯
xt is ave temp in past seven days.
Each function is smooth & estimated using regression splines.
Forecasting electricity demand distributions The model 18
48. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
6
+ −
fp (w1,t , w2,t ) = ¯
fk,p (xt−k ) + gk,p (dt−k ) + qp (xt ) + rp (xt ) + sp (xt )
k =0 6
+ Fj,p (xt−48j ) + Gj,p (dt−48j )
j=1
xt is ave temp across two sites (Kent Town and Adelaide
Airport) at time t;
dt is the temp difference between two sites at time t;
+
xt is max of xt values in past 24 hours;
−
xt is min of xt values in past 24 hours;
¯
xt is ave temp in past seven days.
Each function is smooth & estimated using regression splines.
Forecasting electricity demand distributions The model 18
49. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
6
+ −
fp (w1,t , w2,t ) = ¯
fk,p (xt−k ) + gk,p (dt−k ) + qp (xt ) + rp (xt ) + sp (xt )
k =0 6
+ Fj,p (xt−48j ) + Gj,p (dt−48j )
j=1
xt is ave temp across two sites (Kent Town and Adelaide
Airport) at time t;
dt is the temp difference between two sites at time t;
+
xt is max of xt values in past 24 hours;
−
xt is min of xt values in past 24 hours;
¯
xt is ave temp in past seven days.
Each function is smooth & estimated using regression splines.
Forecasting electricity demand distributions The model 18
50. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
6
+ −
fp (w1,t , w2,t ) = ¯
fk,p (xt−k ) + gk,p (dt−k ) + qp (xt ) + rp (xt ) + sp (xt )
k =0 6
+ Fj,p (xt−48j ) + Gj,p (dt−48j )
j=1
xt is ave temp across two sites (Kent Town and Adelaide
Airport) at time t;
dt is the temp difference between two sites at time t;
+
xt is max of xt values in past 24 hours;
−
xt is min of xt values in past 24 hours;
¯
xt is ave temp in past seven days.
Each function is smooth & estimated using regression splines.
Forecasting electricity demand distributions The model 18
51. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
6
+ −
fp (w1,t , w2,t ) = ¯
fk,p (xt−k ) + gk,p (dt−k ) + qp (xt ) + rp (xt ) + sp (xt )
k =0 6
+ Fj,p (xt−48j ) + Gj,p (dt−48j )
j=1
xt is ave temp across two sites (Kent Town and Adelaide
Airport) at time t;
dt is the temp difference between two sites at time t;
+
xt is max of xt values in past 24 hours;
−
xt is min of xt values in past 24 hours;
¯
xt is ave temp in past seven days.
Each function is smooth & estimated using regression splines.
Forecasting electricity demand distributions The model 18
52. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
6
+ −
fp (w1,t , w2,t ) = ¯
fk,p (xt−k ) + gk,p (dt−k ) + qp (xt ) + rp (xt ) + sp (xt )
k =0 6
+ Fj,p (xt−48j ) + Gj,p (dt−48j )
j=1
xt is ave temp across two sites (Kent Town and Adelaide
Airport) at time t;
dt is the temp difference between two sites at time t;
+
xt is max of xt values in past 24 hours;
−
xt is min of xt values in past 24 hours;
¯
xt is ave temp in past seven days.
Each function is smooth & estimated using regression splines.
Forecasting electricity demand distributions The model 18
53. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
6
+ −
fp (w1,t , w2,t ) = ¯
fk,p (xt−k ) + gk,p (dt−k ) + qp (xt ) + rp (xt ) + sp (xt )
k =0 6
+ Fj,p (xt−48j ) + Gj,p (dt−48j )
j=1
xt is ave temp across two sites (Kent Town and Adelaide
Airport) at time t;
dt is the temp difference between two sites at time t;
+
xt is max of xt values in past 24 hours;
−
xt is min of xt values in past 24 hours;
¯
xt is ave temp in past seven days.
Each function is smooth & estimated using regression splines.
Forecasting electricity demand distributions The model 18
54. Fitted results (Summer 3pm)
Time: 3:00 pm
0.4
0.4
0.4
0.4
0.2
0.2
0.2
0.2
Effect on demand
Effect on demand
Effect on demand
Effect on demand
0.0
0.0
0.0
0.0
−0.2
−0.2
−0.2
−0.2
−0.4
−0.4
−0.4
−0.4
10 20 30 40 10 20 30 40 10 20 30 40 10 20 30 40
Temperature Lag 1 temperature Lag 2 temperature Lag 3 temperature
0.4
0.4
0.4
0.4
0.2
0.2
0.2
0.2
Effect on demand
Effect on demand
Effect on demand
Effect on demand
0.0
0.0
0.0
0.0
−0.2
−0.2
−0.2
−0.2
−0.4
−0.4
−0.4
−0.4
10 20 30 40 10 15 20 25 30 15 25 35 10 15 20 25
Lag 1 day temperature Last week average temp Previous max temp Previous min temp
Forecasting electricity demand distributions The model 19
55. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
Other variables described by linear
relationships with coefficients c1 , . . . , cJ .
Estimation based on annual data.
Forecasting electricity demand distributions The model 20
56. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
Other variables described by linear
relationships with coefficients c1 , . . . , cJ .
Estimation based on annual data.
Forecasting electricity demand distributions The model 20
57. Monash Electricity Forecasting Model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
∗
¯
log(yt ) = log(yt ) + log(yi )
∗
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + et
J
¯
log(yi ) = cj zj,i + εi
j =1
¯
yi is the average demand for year i where t is in
year i.
∗
yt is the standardized demand for time t.
Forecasting electricity demand distributions The model 21
60. Annual model
¯
log(yi ) = cj zj,i + εi
j
¯ ¯
log(yi ) − log(yi−1 ) = cj (zj,i − zj,i−1 ) + ε∗
i
j
First differences modelled to avoid
non-stationary variables.
Predictors: Per-capita GSP, Price, Summer CDD,
Winter HDD.
Forecasting electricity demand distributions The model 23
61. Annual model
¯
log(yi ) = cj zj,i + εi
j
¯ ¯
log(yi ) − log(yi−1 ) = cj (zj,i − zj,i−1 ) + ε∗
i
j
First differences modelled to avoid
non-stationary variables.
Predictors: Per-capita GSP, Price, Summer CDD,
Winter HDD.
Forecasting electricity demand distributions The model 23
62. Annual model
¯
log(yi ) = cj zj,i + εi
j
¯ ¯
log(yi ) − log(yi−1 ) = cj (zj,i − zj,i−1 ) + ε∗
i
j
First differences modelled to avoid
non-stationary variables.
Predictors: Per-capita GSP, Price, Summer CDD,
Winter HDD.
zCDD = ¯
max(0, T − 18.5)
summer
¯
T = daily mean
Forecasting electricity demand distributions The model 23
63. Annual model
¯
log(yi ) = cj zj,i + εi
j
¯ ¯
log(yi ) − log(yi−1 ) = cj (zj,i − zj,i−1 ) + ε∗
i
j
First differences modelled to avoid
non-stationary variables.
Predictors: Per-capita GSP, Price, Summer CDD,
Winter HDD.
zHDD = ¯
max(0, 18.5 − T )
winter
¯
T = daily mean
Forecasting electricity demand distributions The model 23
64. Annual model and Heating degree days
Cooling
600 Cooling and Heating Degree Days
scdd
400
200
950 1050
whdd
850
1990 1995 2000 2005 2010
Forecasting electricity demand distributions The model 24
65. Annual model
Variable Coefficient Std. Error t value P value
∆gsp.pc 2.02×10−6 5.05×10−6 0.38 0.711
∆price −1.67×10−8 6.76×10−9
−2.46 0.026
∆scdd 1.11×10−10 2.48×10−11 4.49 0.000
∆whdd 2.07×10−11 3.28×10−11
0.63 0.537
GSP needed to stay in the model to allow
scenario forecasting.
All other variables led to improved AICC .
Forecasting electricity demand distributions The model 25
66. Annual model
Variable Coefficient Std. Error t value P value
∆gsp.pc 2.02×10−6 5.05×10−6 0.38 0.711
∆price −1.67×10−8 6.76×10−9
−2.46 0.026
∆scdd 1.11×10−10 2.48×10−11 4.49 0.000
∆whdd 2.07×10−11 3.28×10−11
0.63 0.537
GSP needed to stay in the model to allow
scenario forecasting.
All other variables led to improved AICC .
Forecasting electricity demand distributions The model 25
67. Annual model
Variable Coefficient Std. Error t value P value
∆gsp.pc 2.02×10−6 5.05×10−6 0.38 0.711
∆price −1.67×10−8 6.76×10−9
−2.46 0.026
∆scdd 1.11×10−10 2.48×10−11 4.49 0.000
∆whdd 2.07×10−11 3.28×10−11
0.63 0.537
GSP needed to stay in the model to allow
scenario forecasting.
All other variables led to improved AICC .
Forecasting electricity demand distributions The model 25
68. Annual model
1.7
Actual
Fitted
1.6
1.5
Annual demand
1.4
1.3
1.2
1.1
1.0
89/90 91/92 93/94 95/96 97/98 99/00 01/02 03/04 05/06 07/08 09/10
Year
Forecasting electricity demand distributions The model 26
69. Half-hourly models
∗
¯
log(yt ) = log(yt ) + log(yi )
∗
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + et
Separate model for each half-hour.
Same predictors used for all models.
Predictors chosen by cross-validation on
summer of 2007/2008 and 2009/2010.
Each model is fitted to the data twice, first
excluding the summer of 2009/2010 and then
excluding the summer of 2010/2011. The
average out-of-sample MSE is calculated from
the omitted data for the time periods
12noon–8.30pm.
Forecasting electricity demand distributions The model 27
70. Half-hourly models
∗
¯
log(yt ) = log(yt ) + log(yi )
∗
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + et
Separate model for each half-hour.
Same predictors used for all models.
Predictors chosen by cross-validation on
summer of 2007/2008 and 2009/2010.
Each model is fitted to the data twice, first
excluding the summer of 2009/2010 and then
excluding the summer of 2010/2011. The
average out-of-sample MSE is calculated from
the omitted data for the time periods
12noon–8.30pm.
Forecasting electricity demand distributions The model 27
71. Half-hourly models
∗
¯
log(yt ) = log(yt ) + log(yi )
∗
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + et
Separate model for each half-hour.
Same predictors used for all models.
Predictors chosen by cross-validation on
summer of 2007/2008 and 2009/2010.
Each model is fitted to the data twice, first
excluding the summer of 2009/2010 and then
excluding the summer of 2010/2011. The
average out-of-sample MSE is calculated from
the omitted data for the time periods
12noon–8.30pm.
Forecasting electricity demand distributions The model 27
72. Half-hourly models
∗
¯
log(yt ) = log(yt ) + log(yi )
∗
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + et
Separate model for each half-hour.
Same predictors used for all models.
Predictors chosen by cross-validation on
summer of 2007/2008 and 2009/2010.
Each model is fitted to the data twice, first
excluding the summer of 2009/2010 and then
excluding the summer of 2010/2011. The
average out-of-sample MSE is calculated from
the omitted data for the time periods
12noon–8.30pm.
Forecasting electricity demand distributions The model 27
73. Half-hourly models
∗
¯
log(yt ) = log(yt ) + log(yi )
∗
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + et
Separate model for each half-hour.
Same predictors used for all models.
Predictors chosen by cross-validation on
summer of 2007/2008 and 2009/2010.
Each model is fitted to the data twice, first
excluding the summer of 2009/2010 and then
excluding the summer of 2010/2011. The
average out-of-sample MSE is calculated from
the omitted data for the time periods
12noon–8.30pm.
Forecasting electricity demand distributions The model 27
75. Half-hourly models
R−squared
90
R−squared (%)
80
70
60
12 midnight 3:00 am 6:00 am 9:00 am 12 noon 3:00 pm 6:00 pm 9:00 pm 12 midnight
Time of day
Forecasting electricity demand distributions The model 29
76. Half-hourly models
South Australian demand (January 2011)
4.0
Actual
Fitted
3.5
South Australian demand (GW)
3.0
2.5
2.0
1.5
1.0
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
Forecasting electricity demand distributions Date in January The model 29
79. Adjusted model
Original model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
Model allowing saturated usage
J
qt = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j=1
qt if qt ≤ τ ;
log(yt ) =
τ + k(qt − τ ) if qt > τ .
Forecasting electricity demand distributions The model 30
80. Adjusted model
Original model
J
log(yt ) = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j =1
Model allowing saturated usage
J
qt = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j=1
qt if qt ≤ τ ;
log(yt ) =
τ + k(qt − τ ) if qt > τ .
Forecasting electricity demand distributions The model 30
81. Outline
1 The problem
2 The model
3 Long-term forecasts
4 Short term forecasts
5 Forecast density evaluation
6 Forecast quantile evaluation
7 References and R implementation
Forecasting electricity demand distributions Long-term forecasts 31
82. Peak demand forecasting
J
qt,p = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j=1
Multiple alternative futures created:
hp (t ) known;
simulate future temperatures using double
seasonal block bootstrap with variable blocks
(with adjustment for climate change);
use assumed values for GSP, population and
price;
resample residuals using double seasonal block
bootstrap with variable blocks.
Forecasting electricity demand distributions Long-term forecasts 32
83. Peak demand forecasting
J
qt,p = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j=1
Multiple alternative futures created:
hp (t ) known;
simulate future temperatures using double
seasonal block bootstrap with variable blocks
(with adjustment for climate change);
use assumed values for GSP, population and
price;
resample residuals using double seasonal block
bootstrap with variable blocks.
Forecasting electricity demand distributions Long-term forecasts 32
84. Peak demand forecasting
J
qt,p = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j=1
Multiple alternative futures created:
hp (t ) known;
simulate future temperatures using double
seasonal block bootstrap with variable blocks
(with adjustment for climate change);
use assumed values for GSP, population and
price;
resample residuals using double seasonal block
bootstrap with variable blocks.
Forecasting electricity demand distributions Long-term forecasts 32
85. Peak demand forecasting
J
qt,p = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j=1
Multiple alternative futures created:
hp (t ) known;
simulate future temperatures using double
seasonal block bootstrap with variable blocks
(with adjustment for climate change);
use assumed values for GSP, population and
price;
resample residuals using double seasonal block
bootstrap with variable blocks.
Forecasting electricity demand distributions Long-term forecasts 32
86. Seasonal block bootstrapping
Conventional seasonal block bootstrap
Same as block bootstrap but with whole years as the
blocks to preserve seasonality.
But we only have about 10–15 years of data, so there is a
limited number of possible bootstrap samples.
Double seasonal block bootstrap
Suitable when there are two seasonal periods (here we
have years of 151 days and days of 48 half-hours).
Divide each year into blocks of length 48m.
Block 1 consists of the first m days of the year, block 2
consists of the next m days, and so on.
Bootstrap sample consists of a sample of blocks where
each block may come from a different randomly selected
year but must be at the correct time of year.
Forecasting electricity demand distributions Long-term forecasts 33
87. Seasonal block bootstrapping
Conventional seasonal block bootstrap
Same as block bootstrap but with whole years as the
blocks to preserve seasonality.
But we only have about 10–15 years of data, so there is a
limited number of possible bootstrap samples.
Double seasonal block bootstrap
Suitable when there are two seasonal periods (here we
have years of 151 days and days of 48 half-hours).
Divide each year into blocks of length 48m.
Block 1 consists of the first m days of the year, block 2
consists of the next m days, and so on.
Bootstrap sample consists of a sample of blocks where
each block may come from a different randomly selected
year but must be at the correct time of year.
Forecasting electricity demand distributions Long-term forecasts 33
88. Seasonal block bootstrapping
Conventional seasonal block bootstrap
Same as block bootstrap but with whole years as the
blocks to preserve seasonality.
But we only have about 10–15 years of data, so there is a
limited number of possible bootstrap samples.
Double seasonal block bootstrap
Suitable when there are two seasonal periods (here we
have years of 151 days and days of 48 half-hours).
Divide each year into blocks of length 48m.
Block 1 consists of the first m days of the year, block 2
consists of the next m days, and so on.
Bootstrap sample consists of a sample of blocks where
each block may come from a different randomly selected
year but must be at the correct time of year.
Forecasting electricity demand distributions Long-term forecasts 33
89. Seasonal block bootstrapping
Conventional seasonal block bootstrap
Same as block bootstrap but with whole years as the
blocks to preserve seasonality.
But we only have about 10–15 years of data, so there is a
limited number of possible bootstrap samples.
Double seasonal block bootstrap
Suitable when there are two seasonal periods (here we
have years of 151 days and days of 48 half-hours).
Divide each year into blocks of length 48m.
Block 1 consists of the first m days of the year, block 2
consists of the next m days, and so on.
Bootstrap sample consists of a sample of blocks where
each block may come from a different randomly selected
year but must be at the correct time of year.
Forecasting electricity demand distributions Long-term forecasts 33
90. Seasonal block bootstrapping
Conventional seasonal block bootstrap
Same as block bootstrap but with whole years as the
blocks to preserve seasonality.
But we only have about 10–15 years of data, so there is a
limited number of possible bootstrap samples.
Double seasonal block bootstrap
Suitable when there are two seasonal periods (here we
have years of 151 days and days of 48 half-hours).
Divide each year into blocks of length 48m.
Block 1 consists of the first m days of the year, block 2
consists of the next m days, and so on.
Bootstrap sample consists of a sample of blocks where
each block may come from a different randomly selected
year but must be at the correct time of year.
Forecasting electricity demand distributions Long-term forecasts 33
91. Seasonal block bootstrapping
Conventional seasonal block bootstrap
Same as block bootstrap but with whole years as the
blocks to preserve seasonality.
But we only have about 10–15 years of data, so there is a
limited number of possible bootstrap samples.
Double seasonal block bootstrap
Suitable when there are two seasonal periods (here we
have years of 151 days and days of 48 half-hours).
Divide each year into blocks of length 48m.
Block 1 consists of the first m days of the year, block 2
consists of the next m days, and so on.
Bootstrap sample consists of a sample of blocks where
each block may come from a different randomly selected
year but must be at the correct time of year.
Forecasting electricity demand distributions Long-term forecasts 33
92. Seasonal block bootstrapping
Conventional seasonal block bootstrap
Same as block bootstrap but with whole years as the
blocks to preserve seasonality.
But we only have about 10–15 years of data, so there is a
limited number of possible bootstrap samples.
Double seasonal block bootstrap
Suitable when there are two seasonal periods (here we
have years of 151 days and days of 48 half-hours).
Divide each year into blocks of length 48m.
Block 1 consists of the first m days of the year, block 2
consists of the next m days, and so on.
Bootstrap sample consists of a sample of blocks where
each block may come from a different randomly selected
year but must be at the correct time of year.
Forecasting electricity demand distributions Long-term forecasts 33
94. Seasonal block bootstrapping
Problems with the double seasonal bootstrap
Boundaries between blocks can introduce large
jumps. However, only at midnight.
Number of values that any given time in year is
still limited to the number of years in the data
set.
Forecasting electricity demand distributions Long-term forecasts 35
95. Seasonal block bootstrapping
Problems with the double seasonal bootstrap
Boundaries between blocks can introduce large
jumps. However, only at midnight.
Number of values that any given time in year is
still limited to the number of years in the data
set.
Forecasting electricity demand distributions Long-term forecasts 35
96. Seasonal block bootstrapping
Variable length double seasonal block
bootstrap
Blocks allowed to vary in length between m − ∆
and m + ∆ days where 0 ≤ ∆ < m.
Blocks allowed to move up to ∆ days from their
original position.
Has little effect on the overall time series
patterns provided ∆ is relatively small.
Use uniform distribution on (m − ∆, m + ∆) to
select block length, and independent uniform
distribution on (−∆, ∆) to select variation on
starting position for each block.
Forecasting electricity demand distributions Long-term forecasts 36
97. Seasonal block bootstrapping
Variable length double seasonal block
bootstrap
Blocks allowed to vary in length between m − ∆
and m + ∆ days where 0 ≤ ∆ < m.
Blocks allowed to move up to ∆ days from their
original position.
Has little effect on the overall time series
patterns provided ∆ is relatively small.
Use uniform distribution on (m − ∆, m + ∆) to
select block length, and independent uniform
distribution on (−∆, ∆) to select variation on
starting position for each block.
Forecasting electricity demand distributions Long-term forecasts 36
98. Seasonal block bootstrapping
Variable length double seasonal block
bootstrap
Blocks allowed to vary in length between m − ∆
and m + ∆ days where 0 ≤ ∆ < m.
Blocks allowed to move up to ∆ days from their
original position.
Has little effect on the overall time series
patterns provided ∆ is relatively small.
Use uniform distribution on (m − ∆, m + ∆) to
select block length, and independent uniform
distribution on (−∆, ∆) to select variation on
starting position for each block.
Forecasting electricity demand distributions Long-term forecasts 36
99. Seasonal block bootstrapping
Variable length double seasonal block
bootstrap
Blocks allowed to vary in length between m − ∆
and m + ∆ days where 0 ≤ ∆ < m.
Blocks allowed to move up to ∆ days from their
original position.
Has little effect on the overall time series
patterns provided ∆ is relatively small.
Use uniform distribution on (m − ∆, m + ∆) to
select block length, and independent uniform
distribution on (−∆, ∆) to select variation on
starting position for each block.
Forecasting electricity demand distributions Long-term forecasts 36
102. Peak demand forecasting
Climate change adjustments
CSIRO estimates for 2030:
0.3◦ C for 10th percentile
0.9◦ C for 50th percentile
1.5◦ C for 90th percentile
We implement these shifts linearly from 2010.
No change in the variation in temperature.
Thousands of “futures” generated using a
seasonal bootstrap.
Forecasting electricity demand distributions Long-term forecasts 38
103. Peak demand forecasting
Climate change adjustments
CSIRO estimates for 2030:
0.3◦ C for 10th percentile
0.9◦ C for 50th percentile
1.5◦ C for 90th percentile
We implement these shifts linearly from 2010.
No change in the variation in temperature.
Thousands of “futures” generated using a
seasonal bootstrap.
Forecasting electricity demand distributions Long-term forecasts 38
104. Peak demand forecasting
Climate change adjustments
CSIRO estimates for 2030:
0.3◦ C for 10th percentile
0.9◦ C for 50th percentile
1.5◦ C for 90th percentile
We implement these shifts linearly from 2010.
No change in the variation in temperature.
Thousands of “futures” generated using a
seasonal bootstrap.
Forecasting electricity demand distributions Long-term forecasts 38
105. Peak demand forecasting
Climate change adjustments
CSIRO estimates for 2030:
0.3◦ C for 10th percentile
0.9◦ C for 50th percentile
1.5◦ C for 90th percentile
We implement these shifts linearly from 2010.
No change in the variation in temperature.
Thousands of “futures” generated using a
seasonal bootstrap.
Forecasting electricity demand distributions Long-term forecasts 38
106. Peak demand forecasting
Climate change adjustments
CSIRO estimates for 2030:
0.3◦ C for 10th percentile
0.9◦ C for 50th percentile
1.5◦ C for 90th percentile
We implement these shifts linearly from 2010.
No change in the variation in temperature.
Thousands of “futures” generated using a
seasonal bootstrap.
Forecasting electricity demand distributions Long-term forecasts 38
107. Peak demand forecasting
Climate change adjustments
CSIRO estimates for 2030:
0.3◦ C for 10th percentile
0.9◦ C for 50th percentile
1.5◦ C for 90th percentile
We implement these shifts linearly from 2010.
No change in the variation in temperature.
Thousands of “futures” generated using a
seasonal bootstrap.
Forecasting electricity demand distributions Long-term forecasts 38
108. Peak demand forecasting
Climate change adjustments
CSIRO estimates for 2030:
0.3◦ C for 10th percentile
0.9◦ C for 50th percentile
1.5◦ C for 90th percentile
We implement these shifts linearly from 2010.
No change in the variation in temperature.
Thousands of “futures” generated using a
seasonal bootstrap.
Forecasting electricity demand distributions Long-term forecasts 38
109. Peak demand forecasting
J
qt,p = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j=1
Multiple alternative futures created:
hp (t ) known;
simulate future temperatures using double
seasonal block bootstrap with variable
blocks (with adjustment for climate change);
use assumed values for GSP, population and
price;
resample residuals using double seasonal block
bootstrap with variable blocks.
Forecasting electricity demand distributions Long-term forecasts 39
110. Peak demand backcasting
J
qt,p = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j=1
Multiple alternative pasts created:
hp (t ) known;
simulate past temperatures using double
seasonal block bootstrap with variable
blocks;
use actual values for GSP, population and
price;
resample residuals using double seasonal block
bootstrap with variable blocks.
Forecasting electricity demand distributions Long-term forecasts 39
112. Peak demand forecasting
J
qt,p = hp (t ) + fp (w1,t , w2,t ) + cj zj,t + nt
j=1
Multiple alternative futures created:
hp (t ) known;
simulate future temperatures using double
seasonal block bootstrap with variable
blocks (with adjustment for climate change);
use assumed values for GSP, population and
price;
resample residuals using double seasonal block
bootstrap with variable blocks.
Forecasting electricity demand distributions Long-term forecasts 41
113. Peak demand forecasting
South Australia GSP
120
High
billion dollars (08/09 dollars)
Base
100
Low
80
60
40
1990 1995 2000 2005 2010 2015 2020
Year
South Australia population
2.0
High
Base
Low
1.8
million
1.6
1.4
1990 1995 2000 2005 2010 2015 2020
Year
Average electricity prices
High
22
Base
Low
20
c/kWh
18
16
14
12
1990 1995 2000 2005 2010 2015 2020
Year
Forecasting electricity demand distributions industrial offset demand Long-term forecasts
Major 42
0
114. Peak demand distribution
Forecast density of annual maximum demand: 2009/2010
2.0
1.5
Density
1.0
0.5
0.0
2.5 3.0 3.5 4.0 4.5 5.0
Demand (GW)
Forecasting electricity demand distributions Long-term forecasts 43
118. Outline
1 The problem
2 The model
3 Long-term forecasts
4 Short term forecasts
5 Forecast density evaluation
6 Forecast quantile evaluation
7 References and R implementation
Forecasting electricity demand distributions Short term forecasts 46