Forecasting

For an introduction to forecasting, please read my free online textbook:

For other books, see my recommended “Forecasting and time series books”.

Serious forecasters should join the International Institute of Forecasters and attend the annual International Symposium on Forecasting.

For academic research in forecasting, please check out the International Journal of Forecasting (disclaimer: I’m editor-in-chief).

ijf

For forecasting practitioners, try Foresight: the International Journal of Applied Forecasting.

Blog posts on forecasting

11 January 2017: 
IJF Tao Hong Award for the best paper in energy forecasting 2013-2014
5 December 2016: 
Cross-validation for time series
28 November 2016: 
Invited sessions at the International Symposium on Forecasting
24 October 2016: 
Q&A: predictive analytics
23 October 2016: 
Q&A time
22 October 2016: 
Tourism forecasting competition data as an R package
15 October 2016: 
GEFCom2017: Hierarchical Probabilistic Load Forecasting
29 September 2016: 
Call for forecasting workshops in Cairns, Australia
15 September 2016: 
Forecast intervals for aggregates
9 September 2016: 
R package forecast v7.2 now on CRAN
1 September 2016: 
R packages for forecast combinations
31 August 2016: 
Sponsorship for the Cairns forecasting conference
22 August 2016: 
The thief package for R: Temporal HIErarchical Forecasting
18 August 2016: 
“Forecasting with R” short course in Eindhoven
10 August 2016: 
Tourism time series repository
10 June 2016: 
The latest IJF issue with GEFCom2014 results
3 June 2016: 
2017 International Symposium on Energy Analytics
1 June 2016: 
Forecast v7 (part 2)
9 May 2016: 
forecast v7 and ggplot2 graphics
13 April 2016: 
Melbourne Data Science Initiative 2016
23 March 2016: 
Plotting overlapping prediction intervals
4 March 2016: 
Model variance for ARIMA models
17 February 2016: 
Electricity price forecasting competition
10 December 2015: 
Who’s downloading the forecast package?
30 November 2015: 
The hidden benefits of open-source software
12 November 2015: 
Big Data for Official Statistics Competition
28 October 2015: 
Piecewise linear trends
20 October 2015: 
forecast package v6.2
7 October 2015: 
Stanford seminar
24 September 2015: 
Chinese R conference
22 September 2015: 
Upcoming talks in California
21 September 2015: 
International Symposium on Forecasting: Spain 2016
15 September 2015: 
IJF vol 31(4): Forecasting in telecommunications and ICT
16 July 2015: 
Murphy diagrams in R
30 June 2015: 
My Yahoo talk is now online
24 June 2015: 
IJF best paper awards
16 June 2015: 
North American seminars: June 2015
3 June 2015: 
R vs Autobox vs ForecastPro vs …
15 May 2015: 
New in forecast 6.0
14 May 2015: 
More changes to the IJF editorial board
7 May 2015: 
Nominations for IJF Best Paper 2012-2013
23 April 2015: 
Thinking big at Yahoo
10 April 2015: 
Feeling the FPP love
20 March 2015: 
Two new interviews
12 March 2015: 
Common reasons for rejection
4 March 2015: 
Nominations for best International Journal of Forecasting paper, 2012-2013
23 February 2015: 
Statistical modelling and analysis of big data
10 February 2015: 
Thanks Paul and welcome Dilek
24 January 2015: 
RSS feeds for statistics and related journals
5 January 2015: 
Seminars in Taiwan
17 December 2014: 
New R package for electricity forecasting
15 December 2014: 
A time series classification contest
8 December 2014: 
Honoring Herman Stekler
5 December 2014: 
Prediction competitions
21 November 2014: 
Visualization of probabilistic forecasts
12 November 2014: 
IJF review papers
7 November 2014: 
Seasonal periods
31 October 2014: 
Jobs at Amazon
22 October 2014: 
Prediction intervals too narrow
20 October 2014: 
hts with regressors
15 October 2014: 
Congratulations to Dr Souhaib Ben Taieb
7 October 2014: 
IIF Sponsored Workshops
6 October 2014: 
TBATS with regressors
21 September 2014: 
FPP now available as a downloadable e-book
8 September 2014: 
Tim Harford on forecasting
8 September 2014: 
Generating quantile forecasts in R
3 September 2014: 
Resources for the FPP book
25 August 2014: 
Forecasting with R in WA
18 August 2014: 
GEFCom 2014 energy forecasting competition is underway
26 July 2014: 
Student forecasting awards from the IIF
24 July 2014: 
Coherent population forecasting using R
23 July 2014: 
Plotting the characteristic roots for ARIMA models
16 July 2014: 
Variations on rolling forecasts
15 July 2014: 
SAS/IIF grants
16 June 2014: 
Varian on big data
15 June 2014: 
Specifying complicated groups of time series in hts
14 June 2014: 
European talks. June-July 2014
26 May 2014: 
Data science market places
23 May 2014: 
Structural breaks
19 May 2014: 
To explain or predict?
8 May 2014: 
ARIMA models with long lags
4 May 2014: 
New jobs in business analytics at Monash
2 May 2014: 
Great papers to read
22 April 2014: 
Seven forecasting blogs
16 April 2014: 
Errors on percentage errors
9 April 2014: 
My forecasting book now on Amazon
18 March 2014: 
Cover of my forecasting textbook
17 March 2014: 
Fast computation of cross-validation in linear models
14 March 2014: 
Probabilistic forecasting by Gneiting and Katzfuss (2014)
13 March 2014: 
Testing for trend in ARIMA models
12 March 2014: 
Unit root tests and ARIMA models
10 March 2014: 
Using old versions of R packages
7 March 2014: 
IJF news
5 March 2014: 
Forecasting weekly data
4 March 2014: 
Fitting models to short time series
1 March 2014: 
Fitting models to long time series
27 February 2014: 
More time series data online
25 February 2014: 
The forecast mean after back-transformation
21 February 2014: 
Forecasting within limits
20 February 2014: 
Backcasting in R
19 February 2014: 
Global energy forecasting competitions
12 February 2014: 
Hierarchical forecasting with hts v4.0
8 February 2014: 
Detecting seasonality
5 February 2014: 
Feedback on OTexts covers please
5 February 2014: 
Interview for the Capital of Statistics
4 February 2014: 
Top papers in the International Journal of Forecasting
3 February 2014: 
Computational Actuarial Science with R
2 February 2014: 
Monash Econometrics in the top 10
31 January 2014: 
Automatic time series forecasting in Granada
27 January 2014: 
New in forecast 5.0
24 January 2014: 
Thoughts on the Ljung-Box test
23 January 2014: 
Slides from my online forecasting course
22 January 2014: 
Looking for a new post-doc
21 January 2014: 
Estimating a nonlinear time series model in R
22 December 2013: 
Judgmental forecasting experiment
25 November 2013: 
How to get your paper rejected quickly
14 October 2013: 
Probabilistic Energy Forecasting
9 October 2013: 
Robert G Brown (1923-2013)
4 October 2013: 
Questions on my online forecasting course
26 September 2013: 
Forecasting with R
17 September 2013: 
Forecasting with daily data
11 September 2013: 
Online course on forecasting using R
13 July 2013: 
Reflections on UseR! 2013
4 July 2013: 
Facts and fallacies of the AIC
26 June 2013: 
Future ISFs
17 May 2013: 
IJF quality indicators
15 May 2013: 
Forecasting annual totals from monthly data
21 April 2013: 
My new forecasting book is finally finished
31 March 2013: 
George E P Box (1919-2013)
13 March 2013: 
The difference between prediction intervals and confidence intervals
1 March 2013: 
ETS models now in EViews 8
14 February 2013: 
Out-of-sample one-step forecasts
11 February 2013: 
Statistical consulting in Australia
7 January 2013: 
Batch forecasting in R
3 December 2012: 
New in forecast 4.0
3 October 2012: 
Forecasting research grants
18 September 2012: 
Why are some things easier to forecast than others?
20 August 2012: 
Flat forecasts
9 August 2012: 
Interviews
31 July 2012: 
Forecasting the Olympics
20 June 2012: 
Time Series Data Library now on DataMarket
6 June 2012: 
Constants and ARIMA models in R
23 May 2012: 
My new forecasting textbook
14 May 2012: 
Global Energy Forecasting Competition
2 May 2012: 
Measuring time series characteristics
23 March 2012: 
Forecasts and ggplot
28 February 2012: 
Exponential smoothing and regressors
23 December 2011: 
Are we getting better at forecasting?
16 December 2011: 
Forecasting time series using R
14 December 2011: 
Cyclic and seasonal time series
29 November 2011: 
Kaggle on TV
25 September 2011: 
Help for forecasting practitioners
26 August 2011: 
Time series cross-validation: an R example
26 August 2011: 
Major changes to the forecast package
24 August 2011: 
Crowd sourcing forecasts
15 March 2011: 
Statistical tests for variable selection
11 January 2011: 
Six places left for the forecasting workshop
6 December 2010: 
Forecasting workshop: Switzerland, June 2011
30 November 2010: 
Initializing the Holt-Winters method
24 November 2010: 
Tourism forecasting competition ends
10 November 2010: 
Forecast estimation, evaluation and transformation
26 October 2010: 
Different results from different software
4 October 2010: 
The ARIMAX model muddle
4 October 2010: 
Why every statistician should know about cross-validation
29 September 2010: 
Forecasting with long seasonal periods
20 September 2010: 
Tourism forecasting competition results: part one
25 August 2010: 
Benchmarks for forecasting
9 August 2010: 
The tourism forecasting competition
12 July 2010: 
Academic citations in the popular press
11 June 2010: 
Use fake data and real data
27 August 2009: 
How good are economic forecasts?
24 August 2009: 
Why I don't like statistical tests
18 August 2009: 
Forecasting the recession
1 June 2009: 
Clive Granger (1934-2009)
18 May 2009: 
Prediction markets
13 March 2008: 
Dodgy forecasting
6 September 2007: 
Forecasting in the news

  • Kris Ewican

    Hi Rob,

    I’m working on hourly forecasting project, based on your experience, what would be the best time horizon for hourly data?

  • Stavroula Poulopoulou

    Hi Rob,
    I was using auto.arima to fit a regression model with arima errors by using as xreg a train dataset and forecast to predict a new time series data by using for xregnew a test dataset. Here is the code I am using:
    trainARIMA <- auto.arima(trainData[,y], d=0, D=0, max.p=5, max.q=5, max.P=2, max.Q=2, max.order=5, max.d=2, max.D=1, start.p=2, start.q=2, start.P=1, start.Q=1,stationary=FALSE, seasonal=FALSE, ic=c("aic"), stepwise=TRUE, trace=FALSE, xreg= trainData[,xVars], approximation=F, test=c("kpss"), seasonal.test=c("ocsb"), allowdrift=TRUE, allowmean=TRUE, lambda=NULL, parallel=FALSE)

    forecast.Arima( trainARIMA,xreg= train_data [,xVars])

    And I am getting this warning message:
    Warning message:
    In cbind(intercept = rep(1, n), xreg) :
    number of rows of result is not a multiple of vector length (arg 1)

    The two data (trainData and testData) have the same number of columns. The fitted model contains an intercept term, when I run the same model without intercept I don’t have this warning. The same problem occurs when I use arima instead of auto.arima function:

    trainARIMA<-arima(x trainData[,y],xreg= testData[,xVars],order =c(2,0,0), include.mean = TRUE)

    Error in predict.Arima(trainARIMA, newxreg = testData[,xVars]) :
    'xreg' and 'newxreg' have different numbers of columns: 1 != 0

    ps: if I use predict instead of forecast I have the error:

    Do you have any idea how I can solve this problem??

    Thank you very much in advance,
    Stavroula

  • Mandy Oud

    Hi Rob, i’m very impressed by your work. At the moment I;m doing a forecast with auto.arima and xreg. Although 3 of my predictors are not significant (and 1 is significant), I still get a better model (according to AIC) then when I use only the predictor that is significant. Also the model without significant xreg predictors is better than adding 1 significant predctor. Is it better to choose the significant predictor over a low AIC, and is it allowed to add another non significant predictor to obtain a lower AIC of the model and do you get a better model?

  • Signext Chan

    Hi Rob,

    I’m studying on Box-Jenkins methodology, find out that invertible test was not included based on some of the research articles. But in ARMA model the invertible test was used. Is invertible test only apply in ARMA model or both ARMA and ARIMA?

  • Chintan Shah

    HI Prof Hyndman,

    I have a quick question about hourly sampled data. I came across this link http://robjhyndman.com/hyndsight/seasonal-periods/ but the concept is still not clear. I am trying to create a `ts` object for hourly data. I have asked the question here but have not received meaningful answer.

    The link to detailed question is http://stackoverflow.com/questions/41187759/r-time-series-analysis-on-sensor-data?noredirect=1#comment69576342_41187759

    You are very busy but please help me out here.

    Thank you!

    Chintan