Version 5.0.19 [2020-08-27]
- Fix
residuals.hybridModel()
and added tests.
- Linting of package with the “lintr” package
Makefile
targets for building and package development.
Version 5.0.18 [2020-04-01]
- Add the
rolling
argument to hybridModel()
that can be used when weights = "cv.errors"
to control the rolling
argument in cvts()
.
- Add
comb
as an argument to thiefModel()
.
- Update
accuracy()
formals to support changes in the “forecast” package version 8.12.
- Disable longer-running tests on CRAN.
- Faster examples and vignette
Version 4.2.17 [2019-02-11]
- Experimental ensembles with the
thief()
function can now be created with the new thiefModel()
function. The API is similar to that of hybridModel()
.
- Import “thief” package.
Version 4.1.16 [2018-12-19]
- Use forking instead of a socket cluster for parallel execution on UNIX-like systems for
cvts()
. This results in significantly faster execution and less memory usage, particularly when the FUN
and FCFUN
functions are very quick (e.g. snaive()
, rwf()
, stlm()
), the time series is short, few cores are used, or few CV folds run.
- Faster
cvts()
examples.
- More tests for
cvts()
.
- Fix spelling errors.
Version 4.0.15 [2018-12-17]
- The
xreg
argument passed in should now be a matrix instead of a dataframe for consistency with “forecast” v8.5.
- Fix messy function call in #27. This results in
hybridModel
objects that use far less memory and that print more cleanly to the console. For example, previously hm <- hybridModel(wineind); format(object.size(hm), units = "auto")
produced a 5.8 Mb object but now it is only 314.8 Kb.
- Adds “purrr” to imports.
Version 3.0.14 [2018-07-22]
- Parallel support added to
hybridModel()
. This can be controlled by setting parallel = TRUE
and setting num.cores
. By default this is not enabled since the performance improvement typically only occurs when fitting auto.arima
and tbats
models on long series with large frequency (e.g. taylor
).
- Added
z.args
for the snaive()
model.
- The
tbats()
and snaive()
models now respect and use lambda
when passed in t.args
and z.args
.
- Refactored code to remove code duplication and cleaned up the hybridModel file by moving code into helper and generic files.
- Weights and cross validation for the
snaive
model are now handled correctly.
- Project is now hosted on GitLab as well as GitHub. Pull requests can be submitted to either platform, and branches should sync to Gitlab automatically every hour.
- Commits and tags are now signed with RSA key 09183768E3BC25497F9060C701B81BAF17A89621. The public key is located in the package archive root directory in
inst/davidshaub@gmx.com.key
and hosted on both GitHub and GitLab in pkg/inst/davidshaub@gmx.com.key
.
Version 2.2.12 [2018-05-04]
- Added
PI.combination
argument to forecast.hybridModel()
. The default behavior is to follow the existing methodology of using the most extreme prediction intervals from the component models. When "mean"
is passed instead, a simple (unweighted) average of the component prediction intervals is used instead.
- The theta model included in an ensemble can now handle seasonality with frequency >= 24.
- The ets model can now be included for hourly data.
- The “reshape2” package is no longer imported.
Version 2.1.11 [2018-03-27]
- Added
snaive()
model to the ensemble. It is disabled by default, but can be added with “z”.
Version 2.0.10 [2018-01-03]
- API change in
cvts()
for the FCFUN
argument: custom forecasting functions should now return a S3 “forecast” object with the point forecast in $mean
, and the ts
properties should be properly set.
cvts()
now defaults to 2 cores
- Moved usage examples for
cvts()
to the vignette.
- Add “GMDH” to suggested packages.
- Fixed a bug in
cvts()
introduced in version 1.0.8 when a custom FUN
or FCFUN
is used that requires packages other than “forecast” or “forecastHybrid”.
- The
thetam()
function now checks for an input time series with less length than the seasonality. Similarly, hybridModel()
detects this behavior. Thanks to Nicholas Fong for the bugfix.
- Updated
cvts()
usage example in documentation for “GMDH”.
- Refactored many unit tests and the vignette for quicker examples.
Version 1.1.9 [2017-08-23]
- Fixed a bug in
forecast.hybridModel()
when for models where xreg
was not supplied to all of arima/nnetar models.
- Fixes in unit tests and better documentation of unit tests.
ts
objects created with the “timekt” package can now be used in hybridModel()
.
- The
doParallel
and forecast
packages are now imported instead of loading their entire namespaces.
Version 1.0.8 [2017-07-10]
cvts()
now supports parallel fitting through the num.cores
argument. Note that if the model that you are fitting also utilizes parallelization, the number of cores used by each model multiplied by num.cores
passed to cvts()
should not exceed the number of cores on your machine.
- The package versioning now follows semantic versioning more closely; however, the convention used will be
MAJOR.MINOR.RELEASE_NUM
.
- Instead of loading the entire
ggplot2
namespace, only specific functions are now imported.
Version 0.4.1 [2017-06-18]
- The “forecast” package v8.1 now declares the S3 method
accuracy()
, so this is imported and no longer declared in “forecastHybrid”.
Version 0.4.0 [2017-03-31]
- Import the “zoo” package
- Fixed a bug in
cvts()
when using rolling = TRUE
whereby the incorrect number of periods were calulated. Thanks to Ganesh Krishnan for the bugfix.
- The
cvts()
function now allows additional arguments to be passed with ...
. Thanks to Ganesh Krishnan.
- Additional
...
arguments can be passed to the individual component models in forecast.hybridModel()
.
- Documentation fixes and improvements, particularly for the
cvts()
function.
- Unit tests were optimized for speed, and the package tests in half the previous time.
- The behavior of the
forecast()
function from the “forecast” package when multiple or single prediction intervals are passed has changed. The prediction inervals are now consistently returned as matrices. This change fixes a bug in forecast.hybridModel()
when multiple prediction intervals are used.
- Fixed a bug with
forecast.hybridModel()
for ets
, nnetar
, and stlm
component models when the level
argument was set to a single value instead of a vector of values.
- Fixed warning message for superfluous lists passed to base models in
hybridModel()
Version 0.3.0 [2016-12-18]
- Prediction intervals are now created for
nnetar
objects in the ensemble. This should address one aspect of incorrect prediction intervals (e.g. issue #37).
- theta models can be added (by including “
f
” in the models =
argument for hybridModel()
) and are indeed part of the default - so by default, hybridModel() will now fit six models
accuracy.cvts()
is now exported
plot.hybridModel()
now supports ggplot2
graphics when the argument ggplot = TRUE
is passed.
- Time series must be at least four observations long
- Fixed an error where e.args was passed to tbats instead of t.args
Version 0.2.0 [2016-09-23]
- Add time series cross validation with
cvts()
- Add support for
weights = "cv.errors"
in hybridModel()
- Fix model weights when
weights = "insample.errors"
and one or more component models perfectly fit the time series
- Fixed erroneous warning message when
xreg
is included in n.args
but a nnetar
model is not included in the model list
- Clean up titles in
plot.hybridModel()
- Enable passing
...
arguments to plot()
from plot.hybridModel()
- Round weights in
print.hybridModel()
to three digits for cleaner display
- Add
verbose
argument and enable by default in hybridModel()
to display fitting/cross validation progress
Version 0.1.7 [2016-06-04]
- Build vignette with
knitr rmarkdown
engine
- Build vignette with travis
Version 0.1.6 [2016-05-31]
- Fix broken S3 generic
accuracy()
and hybridModel.accuracy()
- Add vignette
- Add NEWS
- Remove “fpp” from dependencies
- Fix warning for unimplemented parameter
weights = "cv.errors"
- Fix error with
nnetar
and stlm
models when 2 * frequency(y) >= length(y)
- Documentation improvements MORE TODO
- Migrate unit tests away from deprecated
not()
function from “testthat” package
- Add additional unit tests for bugfixes (accuracy fix, nnetar/stlm
2 * frequency(y) >= length(y)
, weights = "cv.errors"
)
Version 0.1.5 [2016-04-16]