# Long-Term Energy Price Modelling: Log Returns, Distributions, Time-Weighting

I wish to forecast energy prices in the long-term (ca. 20 years) for energy-efficiency investments. While I understand that the energy carriers are particularly sensitive to external (geo-political) forces, I wish to either be able to say something meaningful about the future of these prices, or at least know under which conditions I should keep my mouth shut.

Assume now that the consumer has energy bills stretching back a few years; one data point for each year. I can therefore generate a time series that looks like Following the lead of other authors in the literature, I attempt to model this price by a geometric Brownian motion. The most basic estimation of the trend $$\mu$$ and volatility $$\sigma$$ is then to simply take $$\mu$$ to be the average of the difference of the log returns $$\mu = \mathrm{mean} [u_t] := \mathrm{mean} \left[ {\log{\frac{p_t}{p_{t-1}}}} \right]$$ and $$\sigma$$ would then be the standard deviation from $$\mu$$.

If I use the first half of the above time series to model, and the second to validate, I end up with a plot that looks like this: where the line labelled "mu" models future prices according to the expected value formula $$p_t = p_0 e^{\mu t}$$, and the line labelled "nu" uses the same formula but with the logarithmic trend $$\nu := \mu - \sigma^2/2$$ instead. The "nu" line in fact does an excellent job estimating the sums from 2005 - 2019, meaning that a consumer who based an energy-efficiency decision on this model would have done just fine.

The fly in the ointment is that the diff logs $$u_t$$ don't actually follow a normal distribution, which is a requirement for geometric Brownian motion: It seems to me that for the general problem of long-term price modelling, two facts are important: (i) recent trends are more relevant than older trends, and (ii) it will be the exception, rather than the rule, that the diff logs follow a normal distribution. Indeed, the same procedure applied to electricity prices fails woefully because the log diffs of this time series follow a bi-modal distribution: Hence my proposal, which is also my question. Would it be correct to simply transform the distribution of the log diffs by first using some kind of moving average to address point (i) above, and then simply take $$\mu$$ and $$\sigma$$ to be the mean and variance of the resulting distribution? This would imply that my price would follow a pseudo geometric Brownian motion $$dp_t / p_t = \mu t + \sigma Q_t\ ,$$ where $$Q_t$$ is some pseudo Wiener process that increments according to the determined distribution just described, and not the normal distribution.

Is such a procedure sensible? Has it already been used in the literature? I am new to this field, and would appreciate any feedback and references to the literature.

• Not sure if you should conclude that recent data is more important, it could just be that mean is difficult to estimate in short samples. It seems that your price changes are autocorrelated though, you could capture this using some ARIMA or OU-type model, though more frequent data might be useful here. Distribution of price changes is less important if you are just interested in the expected value. Nov 17 '20 at 19:51
• @fesman what exactly do you mean by your last sentence? Nov 20 '20 at 8:35
• I understood you are looking for a model to predict the mean not the whole distribution. In discrete time your model is $log(\frac{p_t}{p_{t-1}})=\mu + \epsilon_t$. The distribution of $\epsilon$ is not that important for your purposes. Nov 20 '20 at 9:29
• @fesman right, but this seems to be a good model only if my distribution is "well-behaved". For instance, in the plot of the failed forecast above, the diff logs fall into a bi-modal distribution, the mean of which produces a poor forecast. Hence my question about transforming the distribution. Nov 20 '20 at 9:33
• I would not conclude that from your figure. Also note that your sample is much smaller than what people usually use so the empirical distribution is noisy. Nov 20 '20 at 10:17