# forecast 8.23.0
  * Prevented RNG state changing when the package is attached (#954, #955).
  * head.ts and tail.ts only defined for R < 4.5.0 due to new base R functions.

# forecast 8.22.0
  * hfitted now much faster for ARIMA models (danigiro, #949)
  * hfitted now much faster for ETS models, and produces fitted values from 
    initial states (#950)

# forecast 8.21.1
  * nnetar now allows p or P to be 0
  * Bug fixes and improved docs

# forecast 8.21
  * Fixed df calculation for Ljung-Box tests in checkresiduals
  * Fixed some broken tests

# forecast 8.20
  * Improvements to unit tests, and migrate to testthat 3e
  * Prevent failure in C23 mode

# forecast 8.19
  * Bug fixes

# forecast 8.18
  * Updated RW forecasts to use an unbiased estimate of sigma2
  * Bug fixes

# forecast 8.17.0
  * Updated dm.test() to add alternative variance estimators. (#898)
  * Added `simulate.tbats()` for simulating from TBATS models.
  * Added dependency on generics for accuracy() and forecast() (#902)
  * Bux fixes

# forecast 8.16
  * Fixed `tslm()` incorrectly applying Box-Cox transformations when an `mts`
is provided to the `data` argument (#886).
  * Set D=0 when auto.arima applied to series with 2m observations or fewer.
  * Improved performance of parallel search of ARIMA models (jonlachmann, #891).
  * Fixed scoping of functions used in `ggAcf()` (#896).
  * Fixed checks on xreg in `simulate.Arima()` (#818)
  * Improved docs and bug fixes.

# forecast 8.15
  * Changed `summary()` methods to defer console output until `print()`
  * Changed default `s.window` values for `mstl()`, `stlf()` and `stlm()`. The new defaults are based on extensive empirical testing.

# forecast 8.14
  * Changed default `BoxCox(lambda = "auto")` lower bound to -0.9.
  * Use better variance estimates for `ets()` bias adjustments.
  * Improved robustness of `autoplot.seas()` for non-seasonal decomposition.
  * Fixed scoping of parameters in `auto.arima(parallel = TRUE)` (#874).
  * Fixed handling of `xreg` in `tsCV()`.

# forecast 8.13
  * Fixed forecasts from Arima with drift with initial NAs.
  * Fixed season colours in `gglagplot()` to match y-axis (original data).
  * Fixed facet order for classical decomposition `autoplot()`
  * Fixed `summary()` erroring for `tslm()` models containing NA values.

# forecast 8.12
  * Fixed bias adjusted forecast mean for ARIMA forecasts.
  * Improved naming of `accuracy()` generic formals.
  * Fix seasonal periods for `taylor` dataset.

# forecast 8.11
  * The axis for `gglagplot()` have been reversed for consistency with `stats::lag.plot()`.

# forecast 8.10
  * Updates to remove new CRAN errors
  * Bug fixes

# forecast 8.9
  * Updates for CRAN policies on Suggests packages
  * Bug fixes

# forecast 8.8
  * Updates for compatibility with fable
  * Bug fixes

# forecast 8.7
  * Documentation improvements
  * Bug fixes

# forecast 8.6
  * Reduced conflicts with tidy forecasting packages
  * Forecast autoplots now use same colour shading as autolayer() and geom_forecast
  * Documentation improvements
  * Bug fixes

# forecast 8.5
  * Updated tsCV() to handle exogenous regressors
  * Reimplemented lagwalk methods (naive, snaive, rwf) for speed improvements
  * Added support for passing arguments to auto.arima() unit root tests
  * Improved auto.arima() stepwise search algorithm
  * Documentation improvements
  * Bug fixes

# forecast 8.4
  * Added modelAR(), generalising nnetar() to support user-defined functions
  * Added na.action argument to ets
  * Documentation improvements
  * Bug fixes

# forecast 8.3
  * Added mstl() to handle multiple seasonal decomposition
  * stlf(), stlm(), tsoutliers() and tsclean() all now use mstl().
  * Updated tsCV() to handle multiple horizons
  * Switched unit root tests in ndiffs() to use urca package
  * Added ocsb.test
  * Changed method for choosing D in auto.arima() to a measure of seasonal strength.
  * Added baggedModel() function to generalize baggedETS
  * Added bootstrapped PI to more functions
  * Allowed lambda='auto' for all functions with lambda argument.
  * Updated author list to include all major contributors
  * Documentation improvements
  * Bug fixes

# forecast 8.2
  * Added pkgdown site
  * Added rolling window option to tsCV
  * Improved robustness to short time series and missing values
  * Bug fixes

# forecast 8.1
  * Added as.character.ets, as.character.bats, as.character.tbats
  * Made gghistogram() and checkresiduals() robust to missing values
  * All documentation now generated using roxygen
  * Improved documentation for many functions
  * Added autoplot.msts() and autolayer.msts
  * Added as.character methods for many models to generate model names
  * Added as.ts.forecast
  * autoplot method for bats/tbats models
  * Better ARIMA trace output
  * Made accuracy an S3 method
  * Bug fixes

# forecast 8.0
  * Added tips to start up message
  * Added pipe operator
  * Added tsCV() and CVar() functions
  * Added baggedETS
  * Added head.ts() and tail.ts(), so head and tail now work properly on ts objects.
  * Added gghistogram() and checkresiduals
  * Added ggseasonplot with polar coordinates
  * Modified defaults for gglagplot
  * Added autolayer.ts
  * Added type argument to residuals() for different types of residuals
  * Added support for seas objects from the seasonal package
  * Component extraction for seasonal decomposition methods
  * Range bars for decomposition autoplots
  * Added autoplot.StructTS
  * Added vignette based on 2008 JSS article by Hyndman and Khandakar
  * Improved ggplot functions
  * mforecast objects re-structured
  * Added as.data.frame.mforecast
  * autoplot functions now exported
  * Refit support for arfima() and stlm
  * Better bias adjustment support after Box-Cox transformation
  * print.ARIMA has better labelling of constants
  * Bug fixes
  * Removed fortify method for forecast objects

# forecast 7.3
  * Added prediction intervals and simulation for nnetar().
  * Documentation improvement
  * Bug fixes

# forecast 7.2
  * Faceting for autoplot.mts
  * Box-Cox support for ses, holt, hw
  * ets() now works for tiny time series
  * Added h-step fitted values in fitted() function.
  * seasonal adjustment added to thetaf
  * y now the standard first argument in all modelling functions
  * Added truncate argument to auto.arima
  * seasadj() now an S3 method
  * series with frequency < 1 and non-integer seasonality now handled better
  * ggplot2 theme support
  * Added gglagplot, gglagchull
  * Arima() and auto.arima() now allow any argument to be passed to stats::arima().
  * Bug fixes and speed improvements

# forecast 7.1
  * Fixed bug in auto.arima where the Box-Cox transformation was sometimes applied twice
  * Improved axes for ggseasonalplot
  * Improved tslm() to avoid some problems finding data
  * nnetar() updated to allow subsets
  * Modified initial values for ets
  * Improved unit tests to avoid deprecated functions and to avoid data from fpp
  * Removed fpp from Suggests list

# forecast 7.0
  * Added ggplot2 graphics
  * Bias adjustment option added for all functions that allow Box-Cox transformations
  * Added Ccf function, and rewrote Acf to handle multivariate series.
  * tslm() completely rewritten to be more robust and to handle fourier terms more easily
  * Support for multivariate linear models added
  * subset.ts() more robust, and captures some errors.
  * Added xreg argument to nnetar
  * Improved labels in seasonplot
  * More unit tests added
  * Documentation improvements
  * Bug fixes

# forecast 6.2
  * Many unit tests added using testthat.
  * Fixed bug in ets when very short seasonal series were passed in a data frame.
  * Fixed bug in nnetar where the initial predictor vector was reversed.
  * Corrected model name returned in nnetar().
  * Fixed bug in accuracy() when non-integer seasonality used.
  * Made auto.arima() robust to non-integer seasonality.
  * Fixed bug in auto.arima where allowmean was ignored when stepwise=FALSE.
  * Improved robustness of forecast.ets() for explosive models with multiplicative trends.
  * Exogenous variables now passed to VAR forecasts
  * Increased maximum nmse in ets() to 30.
  * Made tsoutliers() more robust to weak seasonality
  * Changed tsoutliers() to use supsmu on non-seasonal and seasonally adjusted data.
  * Fixed bug in tbats() when seasonal period 1 is a small multiple of seasonal period 2.
  * Other bug fixes

# forecast 6.1
  * Made auto.arima more robust

# forecast 6.0
  * Modified dm.test to give error when variance is zero
  * Corrected help file for splinef().
  * Fixed typo in accuracy help file regarding RMSE
  * Fixed bug in accuracy() which occurred with Arima and ets objects.
  * Fixed arima.errors() to handle Box-Cox transformed models.
  * Modified auto.arima() to be stricter on near-unit-roots.
  * Added allowmean argument in auto.arima().
  * Improved handling of constant series in Arima() and forecast.Arima().
  * Added plot.Arima() and plot.ar() functions.
  * Added as.character.Arima
  * Captured problem in bats/tbats where data are constant.
  * Modified TBATS and BATS estimation to avoid occasional instabilities.
  * Fixed bug in forecasts from bats which labelled them as TBATS.
  * Added allow.multiplicative.trend argument to ets().
  * Set allow.multiplictive.trend=FALSE in stlf(), stlm() and forecast.ts().
  * Simplified arguments in stlf().
  * Added taperedacf and taperedpacf functions
  * Added functions for bootstrapping time series

# forecast 5.9
  * Improved documentation of accuracy() function.
  * Fixed occasional bug in accuracy() when test set is a single observation.
  * Improved Acf() to give better handling of horizontal axis for seasonal data or when ... is passed.
  * Removed print.Arima and predict.Arima and added print.ARIMA
  * method argument now passed when re-fitting an ARIMA model.
  * Fixed error when CH test applied to short series

# forecast 5.8
  * Fixed bug in versions of R before 3.10 when using fourier and fourierf.
  * Made BoxCox.lambda() robust to missing values.

# forecast 5.7
  * Fixed bug in tbats/bats where optional arguments were not being passed to auto.arima().
  * Revised fourier() and fourierf() to avoid large orders, and to avoid zero columns.
  * Improved accuracy of fourier() and fourierf(), while simplifying the code.
  * Removed duplicate columns returned by fourier/fourierf with multiple seasonal periods.
  * Corrected some bugs in simulate.Arima for models involving xreg.
  * Centred simulations from simulate.Arima for non-stationary models by conditioning on first observation.
  * Added findfrequency() function.
  * Fixed error in computed residuals from forecast.stl().
  * Improved handling of very short series in auto.arima().
  * Fixed error in forecasting with additive damped models. Damping previously applied only from second forecast horizon.
  * Fixed misuse of abs() in two places in C code.
  * Added na.action argument to Acf() and fixed na.action argument in tsdisplay().

# forecast 5.6
  * Improved tbats and bats by ensuring ARMA coefficients are not close to the
    boundary of invertibility and stationarity.
  * Improved nsdiffs() handling of degenerate series (e.g., all zeros).
  * Improved forecast.ar() when function buried within other functions.
  * Improved handling of degenerate ARIMA models when xreg used.
  * More robust ets() initialization.
  * Fixed problem in na.interp() with seasonal data having frequency <= 5.
  * Removed undocumented option to use Rmalschains for optimization of ets().

# forecast 5.5
  * Improved documentation for croston
  * Added stlm() and forecast.stlm() functions, and added forecastfunction argument as a way of
    specifying a forecast method in stlf() and forecast.stl().
  * Improved forecast.ar() so that it is more likely to work if ar() and forecast.ar() are
    embedded within other functions.
  * Improved handling of ARIMA models with seasonality greater than 48
  * Improved handling of some degenerate regression models in nsdiffs
  * Changed AIC for poor models from 1e20 to Inf.
	* Update fourier() and fourierf() to work with msts object.
	* Added a new argument find.frequency to forecast.ts().
	* Added new arguments d and D to accuracy() for MASE.
  * Corrected bugs in accuracy().
  * Better handling of regression models with perfect fit in auto.arima().
  * Fixed bug in tbats.components() when there are no seasonal components.

# forecast 5.4
  * Fixed bug in forecast.tbats() and forecast.bats() when ts.frequency does not match seasonal.periods.
  * Fixed bug in getResponse.lm() when there's a logged dependent variable.
  * Modified ets() to avoid problems when data contains large numbers.
  * Modified ets() to produce forecasts when the data are constant.
  * Improved arima.errors() to find xreg more often, and to return an error if it can't be found.

# forecast 5.3
  * Unit tests added
  * Fixed bug in zzhw() which reversed the sign of the residuals.
  * Updated help file for CV() to specify it is only leave-one-out.
  * Fixed guer.cv() to allow non-integer periods without warning.
  * Added use.initial.values argument in ets().
  * Added arimaorder() function.
  * Modified warnings suppression by using suppressWarnings() throughout.

# forecast 5.2
  * Changed default number of cores to 2 for all functions that use parallel processing.
  * Removed remaining call to bats() from examples that are run.

# forecast 5.1
  * Fixed bug in tsoutliers() and tsclean() with very short seasonal series.
  * Fixed bug in Arima() when seasonal order is specified numerically instead of via a list.
  * Removed dimension attribution from output of arima.errors
  * Improved handling of "test" in accuracy
  * Changed parallel processing to parLapply for auto.arima
  * Added timeDate dependency to avoid errors in easter() and link to Rcpp >= 0.11.0.

# forecast 5.0
  * Added argument model to dshw().
  * Added bizdays() and easter() for calendar variables.
  * Added arguments max.D and max.d to auto.arima(), ndiffs() and nsdiffs().
  * Made several functions more robust to zoo objects.
  * Corrected an error in the calculation of AICc when using CV().
  * Made minimum default p in nnetar equal to 1.
  * Added tsoutliers() and tsclean() for identifying and replacing outliers
  * Improved na.interp() to handle seasonality and added argument lambda to na.interp
  * Added robust option to forecast.ts() to allow outliers and missing values
  * Improved output from snaive() and naive() to better reflect user expectations
  * Allowed Acf() to handle missing values by using na.contiguous
  * Changed default information criterion in ets() to AICc.
  * Removed drift term in Arima() when d+D>1.
  * Added bootstrap option to forecast.Arima

# forecast 4.8
  * Fixed bug in rwf() that was introduced in v4.7

# forecast 4.7
  * Added forecast.forecast() to simply return the object that is passed.
  * Removed leading zero in package number. i.e., 4.7 instead of 4.07.
  * better handling of nearly constant time series, and nearly linear time series
  * improved handling of missing values in rwf
  * corrected fitted values and residuals in meanf() for time series data
  * bats() and tbats() now handle missing values in the same way as ets(). i.e., using longest contiguous portion.
  * better handling of very short time series
  * initial states for ets() modified for very short time series (less than 3 years).
  * nsdiffs with CH test now handles degenerate cases without returning an error.
  * nnetar now handles missing values
  * Fixed bug in forecast.varest() so residuals and fitted values computed correctly.
  * Added accuracy() calculation for VAR models
  * Fixed a bug in simulate.fracdiff() when future=TRUE. Sometimes the future argument was being ignored.

# forecast 4.06
  * accuracy() was returning a mape and mpe 100 times too large for in-sample errors.

# forecast 4.05
  * Fixed bug in hw() so it works when initial="simple"
  * Allowed bats() and tbats() to take non-positive values.
  * ets() now calls optim direct via c code making ets() run much faster.
  * Added Rmalschains as a possible optimizer in ets(). Not documented.
  * Modified forecast.lm so it is more likely that the original data are stored in the returned object.
  * Corrected bug in forecast.Arima that occurred when a Box-Cox transformation was used with bootstrap=TRUE.
  * accuracy() updated so that it gives more information, and returns a matrix of both test and training measures.
  * Corrected training error measures for splinef() forecasts.

# forecast 4.04
  * Added ylim argument to Acf
  * Avoided clash with the signal package when using auto.arima().
  * Fixed problem in plot.forecast() when all historical data are NA or when there is no available historical data.
  * forecast.Arima() is now a little more robust if a zoo object is passed instead of a ts object.
  * CV() now handles missing values in the residuals.
  * Fixed bug in holt() and hw() so that the printed model no longer contains missing values.

# forecast 4.03
  * forecast.lm now guesses the variable name if there is only one predictor variable.
  * Removed error trap in forecast.lm when no xreg variables passed as it was catching legitimate calls.

# forecast 4.02
  * Fixed error in the prediction intervals returned by forecast.ets() when simulation was used and a Box-Cox transformation was specified.
  * Fixed bug in accuracy() when a numerical f vector was passed.
  * Fixed man file for Diebold-Mariano test.
  * Corrected references in nsdiffs() help page.
  * Added warning to nsdiffs when series too short for seasonal differencing.
  * Fixed problem in getResponse.Arima when Arima object created by stats::arima() from within a function.
  * Added tbats.components() and extended seasadj() to allow tbats objects.
  * Added undocumented functions for forecasting, printing and plotting output from vars::VAR.

# forecast 4.01
  * Error now trapped when newxreg variables not passed to forecast.lm
  * Corrected help file for dshw() to remove references to prediction intervals.
  * Improved help file for dm.test() to give more information about the alternative hypotheses.
  * Improved dm.test() performance for small samples by using a t-distribution instead of normal.
  * Modified bats() and tbats() examples to follow CRAN policies on parallel processing.
  * Moved some packages from Depends to Imports.
  * Added getResponse() function to return the historical time series from various time series model objects.
  * Modified accuracy() to use getResponse().
  * Allowed user-generated innovations in simulate.ets(), simulate.Arima(), etc.
  * Allowed xreg argument in forecast.stl() and stlf() when ARIMA model used.
  * Removed reliance on caret, and associated fitted and residuals functions.

# forecast 4.00
  * More robust handling of degenerate ARIMA models.
  * New defaults for shaded colors used for prediction intervals in plots.
  * auto.arima() now remembers the name of the series when a Box-Cox transformation is used.
  * New function nnetar() for automatic neural network forecasting of time series.
  * arfima() now tries harder to ensure the ARMA part is stationary.
  * ts control added for forecast of linear models in forecast.lm().
  * Fixed bug in bats() which caused an error when use.box.cox=FALSE and use.trend=FALSE.
  * Added residuals and fitted methods for train and avNNet objects from caret package.
  * accuracy() can now figure out overlapping times for x and f.
  * rwf() now handles missing values.
  * Revised ses(), holt() and hw() so that they can optionally use traditional initialization.

# forecast 3.25
  * Fixed bug in simulate.Arima.
  * Improved handling of short seasonal time series in auto.arima().
  * Added seasonal argument to auto.arima().
  * Fixed bug in splinef() and added gcv method for estimating smoothing parameter.

# forecast 3.24 (23 July 2012
  * Fixed bug in auto.arima() introduced in v3.23 which meant a ARIMA(0,0,0) model was
    returned about half the time.

# forecast 3.23
  * Fixed bug in arfima() which meant the drange argument was being ignored.
  * Extended auto.arima() so it returns something sensible when the data are constant.

# forecast 3.22
  * Increased maximum forecast horizon for ets models from 2000 to unlimited.
  * Corrected bug in Arima(). Previously include.constant=FALSE was ignored.
  * Some corrections to bats and tbats.
  * Modified parallel implementation in auto.arima for Windows.

# forecast 3.21
  * Fixed bug in auto.arima() when lambda is non-zero and stepwise is FALSE.
  * Fixed bug in auto.arima() in selecting d when D>0.
  * Fixed bug in ets() when seasonal period is less than 1.
  * Turned off warnings in auto.arima() and ets() when seasonal period is less than 1.
  * Added plotting methods for bats and tbats objects.
  * Changed default forecast horizons for bats and tbats objects.
  * Modified bats and tbats so they now use seasonal.periods when ts and msts objects are being modelled.

# forecast 3.20
  * Fixed bugs in forecast.lm().
  * Improved handling of newdata in forecast.lm() to provide more meaningful error messages.
  * Fixed bug in dm.test() that occurred when errors were very small.

# forecast 3.19
  * Improved plotting of forecast objects from lm models
  * Added MASE for lm forecasts using insample mean forecasts for scaling.
  * Modified definition of MASE for seasonal time series to use seasonal naive insample scaling.
  * Modified meanf() to allow it to be used with cross-sectional data.
  * Updated accuracy() to allow it to be used with cross-sectional data, lm forecasts and lm objects.

# forecast 3.18
  * Added method for plotting non-time-series forecasts to plot.forecast().
  * Removed partial arg matching.
  * Cleaned up some code, removing commented out sections, etc.
  * Added robust option to stlf().
  * Added naive and rwdrift options to stlf() and forecast.stl().
  * Improved handling of msts objects in BoxCox.lambda
  * Fixed some minor bugs in tbats() and bats
  * Improved speed of bats() and tbats().

# forecast 3.17
  * Improved forecast.lm() so it is more likely to find the original data from an lm object.
  * Parallel processing now available in auto.arima() when stepwise=FALSE
  * Default model selection in auto.arima() changed to AICc rather than AIC. This may affect model selection for very short time series.
  * max orders in auto.arima() now restricted to be less than 1/3 of length of data.

# forecast 3.16
  * Corrected problem with AIC computation in bats and tbats
  * Fixed handling of non-seasonal data in bats
  * Changed dependency to >= R 2.14.0 in order to ensure parallel package available.

# forecast 3.15
  * New functions tbats() and forecast.tbats() for multiple seasonal time series modelling.
  * bats() and tbats() use parallel processing when possible.
  * Minor improvements to bats() and forecast.bats().
  * decompose() removed as the function in the stats package has now been fixed.

# forecast 3.14
  * Improved documentation for forecast.ts
  * Corrected bug in dshw() when applied to a non-ts object.
  * Added error message when dshw() applied to data containing zeros or negative values
  * Added checks when dshw() applied to time series with non-nested periods.
  * Added msts object class for multiple seasonal time series
  * Made taylor data set an msts object.
  * Added bats() function for multiple seasonal time series modelling
  * Added forecast.bats() function for forecasting BATS models
  * Byte compiling turned on
  * Depending on Rcpp and RcppArmadillo to speed some code up.

# forecast 3.13
  * Bug fix for forecast.StructTS() due to changes in the StructTS object. The default h was being set to 0.
    Thanks to Tarmo Leinonen for reporting this problem.
  * Bug fix for forecast.stl() where h longer than one seasonal period sometimes returned missing forecasts.
    Thanks to Kevin Burton for reporting this problem.
  * forecast.stl() no longer allows a seasonal ETS model to be specified. Thanks to Stefano Birmani for the suggestion.

# forecast 3.12
  * Added option to control ets model in stlf() and forecast.stl(). Thanks to Stefano Birmani for the suggestion.
  * Reordered arguments for forecast.lm() and stlf() to be consistent with other forecast functions.
  * Modified tslm() so that it is more likely to find the relevant data when it is not passed as an argument.
  * Fixed bug in forecast.ets which returned all zero forecasts for some models when seasonal period > 24.

# forecast 3.11
  * Fixed bug in dshw() when smallest period is odd

# forecast 3.10
  * Added lambda argument to naive() and snaive().
  * Fixed bug in ets() with high frequency data.
  * Fixed bug in rwf() where incorrect fitted values and residuals were sometimes returned.
  * Modified number of lags displayed by default in tsdisplay().

# forecast 3.09
  * Fixed bug causing occasional problems in simulate.Arima() when MA order greater than 2 and future=TRUE.

# forecast 3.08
  * Bug fix in forecast.stl() which occurred when forecast horizon is less than seasonal period.
  * Added lambda argument to forecast.stl().

# forecast 3.07
  * Bug fix in ets() concerning non-seasonal models and high-frequency data. It sometimes returned all forecasts equal to zero.

# forecast 3.06
  * Switched to useDynLib in preparation for Rv2.14.0.

# forecast 3.05
  * Fixed bug in ets() which prevent non-seasonal models being fitted to high frequency data.

# forecast 3.04
  * Fixed bug when drift and xreg used together in auto.arima() or Arima().

# forecast 3.03
  * Bug fix in dshw() which was using slightly incorrect seasonal estimates for the forecasts
  * Bug fix in forecast.StructTS due to change in structure of StructTS object.
  * Better error capture in tslm when seasonal dummies are specified for non-seasonal data.
  * Re-formatted some help files to prevent viewing problems with the pdf manual.

# forecast 3.02
  * Bug fixes

# forecast 3.00
  * Added Box-Cox parameter as argument to Arima(), ets(), arfima(), stlf(), rwf(), meanf(), splinef
  * Added Box-Cox parameter as argument to forecast.Arima(), forecast.ets(), forecast.fracdiff(), forecast.ar(), forecast.StructTS, forecast.HoltWinters().
  * Removed lambda argument from plot.forecast() and accuracy().
  * Added BoxCox.lambda() function to allow automatic choice for Box-Cox parameter using Guerrero's method or the profile log likelihood method.
  * Modified BoxCox and InvBoxCox to return missing values when lambda < 0 and data < 0.
  * Add nsdiffs() function for selecting the number of seasonal differences.
  * Modified selection of seasonal differencing in auto.arima().
  * Better error message if seasonal factor used in tslm() with non-seasonal data.
  * Added PI argument to forecast.ets() to allow only point forecasts to be computed.
  * Added include.constant argument to Arima().
  * Added subset.ts() function.
  * Upgraded seasonplot() function to allow colors and to fix some bugs.
  * Fixed fitted values returned by forecast.HoltWinters
  * Modified simulate.Arima() because of undocumented changes in filter() function in stats package.
  * Changed residuals returned by splinef() to be ordinary residuals. The standardized residuals are now returned as standardizedresiduals.
  * Added dshw() function for double-seasonal Holt-Winters method based on Taylor (2003).
  * Fixed further bugs in the decompose() function that caused the results to be incorrect with odd frequencies.

# forecast 2.19
  * Added xreg information to the object returned by auto.arima().
  * Added Acf(), Pacf(), ma() and CV() functions.
  * Fixed bugs in re-fitting ARIMA models to new data.

# forecast 2.18 (2011-05-19)
  * Fixed bug in seasonplot() where year labels were sometimes incorrect.

# forecast 2.17
  * Modified simulate.Arima() to handle seasonal ARIMA models.
  * Modified ets() to handle missing values. The largest continuous section of data is now modelled.
  * Improved plot.forecast() to handle missing values at the end of the observed series.
  * Added replacement decompose() to avoid truncation of seasonal term and seasonally adjusted series.
  * Fixed bug in seasadj() to handle multiplicative decomposition, and to avoid missing values at ends.

# forecast 2.16
  * Changed the way missing values are handled in tslm

# forecast 2.15
  * Added fourier(), fourierf(), tslm
  * Improved forecast.lm() to allow trend and seasonal terms.

# forecast 2.14
  * Added forecast.lm
  * Modified accuracy() and print.forecast() to allow non time series forecasts.
  * Fixed visibility of stlf().

# forecast 2.13
  * Fixed bug in accuracy() when only 1 forecast is specified.
  * Added forecast.stl() and stlf() functions
  * Modified forecast.ts() to use stlf() if frequency > 12.
  * Made BoxCox() and InvBoxCox() robust to negative values
  * Fixed bug in simulate.Arima() when future=TRUE. There was a bias in the sample paths.

# forecast 2.12
  * Added naive() and snaive() functions.
  * Improved handling of seasonal data with frequency < 1.
  * Added lambda argument to accuracy().

# forecast 2.11
  * If MLE in arfima() fails (usually because the series is non-stationary), the LS estimate is now returned.

# forecast 2.10
  * Fixed bug in arfima() where the MA parameters were of the wrong sign if estim="mle" chosen.
  * arfima() now allowed to have a sequence of missing values at the start of the series and end of the series

# forecast 2.09
  * Fixed bug in forecast.fracdiff() which caused an error when h=1.
  * Added shadebars to plot.forecast().
  * Fixed bug in plot.forecast() to allow plotting when h=1.

# forecast 2.08
  * Added pp test option for auto.arima() and ndiffs().
  * Fixed bug in simulate.ets() which was causing problems when forecasting from some ETS models including ETS(M,M,N).

# forecast 2.07
  * Fixed bug in simulate.Arima(). Previous sample paths when d=2 and future=TRUE were incorrect.
  * Changed way color is implemented in plot.forecast() to avoid colour changes when the graphics window is refreshed.

# forecast 2.06
  * Added MLE option for arfima().
  * Added simulate.Arima(), simulate.ar() and simulate.fracdiff

# forecast 2.05
  * Added arfima() and a forecast method to handle ARFIMA models from arfima() and fracdiff().
  * Added residuals and fitted methods for fracdiff objects.

# forecast 2.04
  * Fixed bug in auto.arima() that occurred rarely.

# forecast 2.03
  * Added an option to auto.arima() to allow drift terms to be excluded from the models considered.

# forecast 2.02
  * Fixed bug in auto.arima() that occurred when there was an xreg but no drift, approximation=TRUE and stepwise=FALSE.

# forecast 2.01
  * Fixed bug in time index of croston() output.
  * Added further explanation about models to croston() help file.

# forecast 2.00
  * Package removed from forecasting bundle

# forecast 1.26 (29 August 2009)
  * Added as.data.frame.forecast(). This allows write.table() to work for forecast objects.

# forecast 1.25 (22 July 2009)
  * Added argument to auto.arima() and ndiffs() to allow the ADF test to be used instead of the KPSS test in selecting the number of differences.
  * Added argument to plot.forecast() to allow different colors and line types when plotting prediction intervals.
  * Modified forecast.ts() to give sensible results with a time series containing fewer than four observations.

# forecast 1.24 (9 April 2009)
  * Fixed bug in dm.test() to avoid errors when there are missing values in the residuals.
  * More informative error messages when auto.arima() fails to find a suitable model.

# forecast 1.23 (22 February 2009)
  * Fixed bugs that meant xreg terms in auto.arima() sometimes caused errors when stepwise=FALSE.

# forecast 1.22 (30 January 2009)
  * Fixed bug that meant regressor variables could not be used with seasonal time series in auto.arima().

# forecast 1.21 (16 December 2008)
  * Fixed bugs introduced in v1.20.

# forecast 1.20 (14 December 2008)
  * Updated auto.arima() to allow regression variables.
  * Fixed a bug in print.Arima() which caused problems when the data were inside a data.frame.
  * In forecast.Arima(), argument h is now set to the length of the xreg argument if it is not null.

# forecast 1.19 (7 November 2008)
  * Updated Arima() to allow regression variables when refitting an existing model to new data.

# forecast 1.18 (6 November 2008)
  * Bug fix in ets(): models with frequency less than 1 would cause R to hang.
  * Bug fix in ets(): models with frequency greater than 12 would not fit due to parameters being out of range.
  * Default lower and upper bounds on parameters ,  and  in ets() changed to 0.0001 and 0.9999 (instead of 0.01 and 0.99).

# forecast 1.17 (10 October 2008)
  * Calculation of BIC did not account for reduction in length of series due to differencing. Now fixed in auto.arima() and in print.Arima().
  * tsdiag() now works with ets objects.

# forecast 1.16 (29 September 2008)
  * Another bug fix in auto.arima(). Occasionally the root checking would cause an error. The condition is now trapped.

# forecast 1.15 (16 September 2008)
  * Bug fix in auto.arima(). The series wasn't always being stored as part of the return object when stepwise=FALSE.

# forecast 1.14 (1 August 2008)
  * The time series stored in M3 in the Mcomp package did not contain all the components listed in the help file. This problem has now been fixed.

# forecast 1.13 (16 June 2008)
  * Bug in plot.ets() fixed so that plots of non-seasonal models for seasonal data now work.
  * Warning added to ets() if the time series contains very large numbers (which can cause numerical problems). Anything up to 1,000,000 should be ok, but any larger and it is best to scale the series first.
  * Fixed problem in forecast.HoltWinters() where the lower and upper limits were interchanged.

# forecast 1.12 (22 April 2008)
  * Objects are now coerced to class ts in ets(). This allows it to work with zoo objects.
  * A new function dm.test() has been added. This implements the Diebold-Mariano test for predictive accuracy.
  * Yet more bug-fixes for auto.arima().

# forecast 1.11 (8 February 2008)
  * Modifications to auto.arima() in the case where ML estimation does not work for the chosen model. Previously this would return no model. Now it returns the model estimated using CSS.
  * AIC values reported in auto.arima() when trace=TRUE and approximation=TRUE are now comparable to the final AIC values.
  * Addition of the expsmooth package.

# forecast 1.10 (21 January 2008)
  * Fixed bug in seasadj() so it allows multiple seasonality
  * Fixed another bug in print.Arima()
  * Bug fixes in auto.arima(). It was sometimes returning a non-optimal model, and occasionally no model at all. Also, additional stationarity and invertibility testing is now done.

# forecast 1.09 (11 December 2007)
  * A new argument 'restrict' has been added to ets() with default TRUE. If set to FALSE, then the unstable ETS models are also allowed.
  * A bug in the print.Arima() function was fixed.

# forecast 1.08 (21 November 2007)
  * AICc and BIC corrected. Previously I had not taken account of the sigma^2 parameter when computing the number of parameters.
  * arima() function changed to Arima() to avoid the clash with the arima() function in the stats package.
  * auto.arima now uses an approximation to the likelihood when selecting a model if the series is more than 100 observations or the seasonal period is greater than 12. This behaviour can be over-ridden via the approximation argument.
  * A new function plot.ets() provides a decomposition plot of an ETS model.
  * predict() is now an alias for forecast() wherever there is not an existing predict() method.
  * The argument conf has been changed to level in all forecasting methods to be consistent with other R functions.
  * The functions gof() and forecasterrors() have been replaced by accuracy() which handles in-sample and out-of-sample forecast accuracy.
  * The initialization method used for a non-seasonal ETS model applied to seasonal data was changed slightly.
  * The following methods for ets objects were added: summary, coef and logLik.
  * The following methods for Arima objects were added: summary.

# forecast 1.07 (25 July 2007)
  * Bug fix in summary of in-sample errors. For ets models with multiplicative errors, the reported in-sample values of MSE, MAPE, MASE, etc., in summary() and gof() were incorrect.
  * ARIMA models with frequency greater than 49 now allowed. But there is no unit-root testing if the frequency is 50 or more, so be careful!
  * Improvements in documentation.

# forecast 1.06 (15 June 2007)
  * Bug fix in auto.arima(). It would not always respect the stated values of max.p, max.q, max.P and max.Q.
  * The tseries package is now installed automatically along with the forecasting bundle, whereas previously it was only suggested.

# forecast 1.05 (28 May 2007)
  * Introduced auto.arima() to provide a stepwise approach to ARIMA modelling. This is much faster than the old best.arima().
  * The old grid-search method used by best.arima() is still available by using stepwise=FALSE when calling auto.arima().
  * Automated choice of seasonal differences introduced in auto.arima().
  * Some small changes to the starting values of ets() models.
  * Fixed a bug in applying ets() to new data using a previously fitted model.

# forecast 1.04 (30 January 2007)
  * Added include.drift to arima()
  * Fixed bug in seasonal forecasting with ets()

# forecast 1.03 (20 October 2006)
  * Fixed some DOS line feed problems that were bothering unix users.

# forecast 1.02 (12 October 2006)
  * Added AICc option to ets() and best.arima().
  * Corrected bug in calculation of fitted values in ets models with multiplicative errors.

# forecast 1.01 (25 September 2006)
  * Modified ndiffs() so that the maximum number of differences allowed is 2.

# forecast 1.0 (31 August 2006)
  * Added MASE to gof().
  * croston() now returns fitted values and residuals.
  * arima() no longer allows linear trend + ARMA errors by default. Also, drift in non-stationary models can be turned off.
  * This version is the first to be uploaded to CRAN.

# forecast 0.99992 (8 August 2006)
  * Corrections to help files. No changes to functionality.

# forecast 0.99991 (2 August 2006)
  * More bug fixes. ets now converges to a good model more often.

# forecast 0.9999 (1 August 2006)
  * Mostly bug fixes.
  * A few data sets have been moved from fma to forecast as they are not used in my book.
  * ets is now considerably slower but gives better results. Full optimization is now the only option (which is what slows it down). I had too many problems with poor models when partial optimization was used. I'll work on speeding it up sometime, but this is not a high priority. It is fast enough for most use. If you really need to forecast 1000 series, run it overnight.
  * In ets, I've experimented with new starting conditions for optimization and it seems to be fairly robust now.
  * Multiplicative error models can no longer be applied to series containing zeros or negative values. However, the forecasts from these models are not constrained to be positive.

# forecast 0.999 (27 July 2006)
  * The package has been turned into three packages forming a bundle. The functions and a few datasets are still in the forecast package. The data from Makridakis, Wheelwright and Hyndman (1998) is now in the fma package. The M-competition data is now in the Mcomp package. Both fma and Mcomp automatically load forecast.
  * This is the first version available on all operating systems (not just Windows).
  * pegels has been replaced by ets. ets only fits the model; it doesn't produce forecasts. To get forecasts, apply the forecast function to the ets object.
  * ets has been completely rewritten which makes it slower, but much easier to maintain. Different boundary conditions are used and a different optimizer is used, so don't expect the results to be identical to what was done by the old pegels function. To get something like the results from the old pegels function, use forecast(ets()).
  * simulate.ets() added to simulate from an ets model.
  * Changed name of cars to auto to avoid clash with the cars data in the datasets package.
  * arima2 functionality is now handled by arima() and pegels2 functionality is now handled by ets.
  * best.arima now allows the option of BIC to be used for model selection.
  * Croston's method added in function croston().
  * ts.display renamed as tsdisplay
  * mean.f changed to meanf, theta.f changed to thetaf, rw.f changed to rwf, seasonaldummy.f to seasonaldummyf, sindex.f to sindexf, and spline.f to splinef. These changes are to avoid potential problems if anyone introduces an 'f' class.

# forecast 0.994 (4 October 2004)
  * Fixed bug in arima which caused predict() to sometimes fail when there was no xreg term.
  * More bug fixes in handling regression terms in arima models.
  * New print.Arima function for more informative output.

# forecast 0.993 (20 July 2004)
  * Added forecast function for structural time series models obtained using StructTS().
  * Changed default parameter space for pegels() to force admissibility.
  * Added option to pegels() to allow restriction to models with finite forecast variance. This restriction is imposed by default.
  * Fixed bug in arima.errors(). Changes made to arima() meant arima.errors() was often returning an error message.
  * Added a namespace to the package making fewer functions visible to the user.

# forecast 0.99 (21 May 2004)
  * Added automatic selection of order of differencing for best.arima.
  * Added possibility of linear trend in arima models.
  * In pegels(), option added to allow parameters of an exponential smoothing model to be in the 'admissible' (or invertible) region rather than within the usual (0,1) region.
  * Fixed some bugs in pegels.
  * Included all M1 and M3 data and some functions to subset and plot them.
  * Note: This package will only work in R1.9 or later.

# forecast 0.98 (23 August 2003)
  * Added facilities in pegels.
      o It is now possible to specify particular values of the smoothing parameters rather than always use the optimized values. If none are specified, the optimal values are still estimated as before.
      o It is also possible to specify upper and lower bounds for each parameter separately.
  * New function: theta.f. This implements the Theta method which did very well in the M3 competition.
  * A few minor problems with pegels fixed and a bug in forecast.plot that meant it didn't work when the series contained missing values.

# forecast 0.972 (11 July 2003)
  * Small bug fix: pegels did not return correct model when model was partially specified.

# forecast 0.971 (10 July 2003)
  * Minor fixes to make sure the package will work with R v1.6.x. No changes to functionality.

# forecast 0.97 (9 July 2003)
  * Fully automatic forecasting based on the state space approach to exponential smoothing has now been added. For technical details, see Hyndman, Koehler, Snyder and Grose (2002).
  * Local linear forecasting using cubic smoothing splines added. For technical details, see Hyndman, King, Pitrun and Billah (2002).

# forecast 0.96 (15 May 2003)
  * Many functions rewritten to make use of methods and classes. Consequently several functions have had their names changed and many arguments have been altered. Please see the help files for details.
  * Added functions forecast.Arima and forecat.ar
  * Added functions gof and seasadj
  * Fixed bug in plot.forecast. The starting date for the plot was sometimes incorrect.
  * Added residuals components to rw.f and mean.f.
  * Made several changes to ensure compatibility with Rv1.7.0.
  * Removed a work-around to fix a bug in monthplot command present in R v<=1.6.2.
  * Fixed the motel data set (columns were swapped)
