Changelog
Source:NEWS.md
mixvlmc 0.2.1
CRAN release: 2023-10-31
This release has no visible changes and fixes internal issues:
- missing package in Suggests
- double definition of a C++ internal function
mixvlmc 0.2.0
CRAN release: 2023-10-28
Breaking changes
- the
mode
parameter ofcutoff.vlmc()
has been renamed toscale
- the
type
parameter has been removed fromcontexts()
variants and the default result format has been modified significantly - the
counts
parameter fromcontexts.vlmc()
andcontexts.covlmc()
has been replaced by a logical parameter namedlocal
-
contexts()
sequences are now reported by default in temporal order
New features
C++ backend
The main major new feature of this version is the inclusion of a C++ implementation of context tree and VLMC construction. A new option mixvlmc.backend
can be used to switch globally from the original "R"
implementation to the new "C++"
back end. A new backend
parameter has been added to ctx_tree()
, vlmc()
and tune_vlmc()
to enable local back end selection.
The C++ implementation is significantly faster than the R implementation, at least by a factor 10. While it has been thoroughly tested, it is still considered experimental notably because it does not apply to COVLMC (setting the global option to "C++"
has not effect on COVLMC model construction). For context trees and VLMC, results should not depend on the back end, at least within numerical precision. The only notable difference is the ordering of the contexts which differs between back ends: in a call to contexts()
, the first context for the R back end will generally not be the first context for the C++ back end.
Other new features
-
contexts()
can now report the positions of each context in the original time series - nodes of context trees can be extracted individually as
ctx_node
objects using thefind_sequence()
function. A collection of new functions can be used to manipulate the nodes and gain fine grain information on the corresponding sequences (issue #50). - by default,
contexts()
reports now contexts as a list ofctx_node
objects - new functions
predict.vlmc()
andpredict.covlmc()
can be used to make one step ahead predictions of a time series based on a (CO)VLMC model (issue #46). Those function are documented in a new vignette (vignette("prediction")
) - the log likelihood calculations performed by
logLik.vlmc()
,logLik.covlmc()
loglikelihood()
andloglikelihood.covlmc()
have been revised, expanded to include three possible definitions of the likelihood function, and documented in a new vignette (vignette("likelihood")
) -
tune_vlmc()
andtune_covlmc()
can be used with the different likelihood function definitions - results of
tune_vlmc()
andtune_covlmc()
can be plotted using base R graphics or ggplot2 (issue #36) -
tune_covlmc()
can trim the best model (and the initial one) if asked to -
trim.covlmc()
implements simple trimming for VGAM based objects (issue #48) -
cutoff()
uses a newtolerance
parameter to avoid reporting cut off values that are almost identical due to numerical imprecision -
simulate.vlmc()
implements a user specified burn in period (issue #40) -
simulate.vlmc()
andsimulate.covlmc()
now handle the random generator state as doesstats::simulate()
(issue #56)
Minor improvements and bug fixes
- Improved the test coverage (issue #54)
- Fixed several bugs in internal sampling methods that made
simulate.covlmc()
unreliable for state spaces with three or more states - Fixed a bug in
simulate.covlmc()
that occurred in contexts with a longer self memory compared to their covariate memory - Fixed several bugs in
metrics.vlmc()
and align the results with the ones obtained by using direct calculation on the results ofpredict.vlmc()
- Fixed several bugs related to degenerate VLMC (issue #55)
- Fixed a bug in the likelihood calculation for internal context nodes
- Improved type consistency by reporting counts as integers in
contexts()
results - Fixed documentation: all models can be adjusted on time series of logical values
- Synchronized
ctx_tree()
documentation and its default value - Synchronized
contexts()
documentation and its default value - Added more trimming for COVLMC models in
trim.covlmc()
mixvlmc 0.1.1
CRAN release: 2023-07-10
- Added missing documentation about the return values of
simulate.vlmc()
andsimulate.covlmc()