Changes in version 1.0.1:
- Use DBL_EPSILON instead of DOUBLE_EPS to allow STRICT_R_HEADERS. Thanks
to Dirk Eddelbuettel for bringing this up.
- Fixed a typo.
Changes in version 1.0.0:
- Luis Gruber is now formally a contributor to stochvol. Welcome Luis!
- Avoid calling GIGrvg in some boundary cases where the GIG is essentially
(inverse) gamma.
- Updated package information to cater for JSS publication.
Changes in version 0.10.3:
- Bugfix in interweaving. Thanks to Luis Gruber for finding and patching.
- New argument facloadtol to fsvsample. Allows to specify a (small) number
as a lower bound to elements of the factor loadings matrix. This increases
numerical stability in case of heavy shrinkage. Thanks to Luis Gruber for
patching.
Changes in version 0.10.2:
- Bugfix about exporting 'logret'
- Updated vignette
- Prevent a compile warning
Changes in version 0.10.1:
- New function 'evdiag'. Plots posterior draws and posterior means of the
eigenvalues of crossprod(facload) and can be used as a rough guide for
finding the appropriate number of factors (experimental).
- 'designmatrix' is now renamed and simplified to 'zeromean'.
- 'complot' now reports communalities in percentages.
- Fixed bug in predloglik when each != 1.
Changes in version 0.10.0:
- New argument 'designmatrix'. Can be used to model a constant mean for
every univariate series within the Gibbs sampler.
- updated predcond, predloglik, and predloglikWB to reflect the new
'designmatrix' specification from above.
- Updated to work with stochvol 3.0.0.
Changes in version 0.9.3
- Unit tests added
- New argument startfacloadvar. Can be used to pass the starting values for
the factor loadings variances (called tau_{ij}^2 in Kastner, 2019, JoE).
May come in handy when fsvsample with the normal gamma prior is used as a
subroutine within other samplers. Thanks to Maximilian Boeck and Gregor Zens
for pointing this out. The latest draws of these values are now returned
by fsvsample() in the new list element 'latestauxiliary'.
- Small bug fixes (mainly for rarely used features)
Changes in version 0.9.2
- Check out the brand new vignette!
- Slight change in the "front-end" function fsvsample: the argument
"priorfacload" must now be positive, its meaning depends on the value of
the argument "priorfacloadtype" (new argument). The argument "columnwise"
has been removed. Sorry for any inconvenience this change may cause.
- The structure of the argument "startfacload" to fsvsample has changed to
match the output structure of fsvsample. Thanks to Gregor Zens for pointing
this out. Moreover, "startlatent" and "startlatent0" were renamed to
"startlogvar" and "startlogvar0", respectively. Sorry for any inconvenience
this change may cause.
- The result values of fsvsample were slightly renamed and reordered:
f -> fac; h -> logvar; h0 -> logvar0
- It's now possible to turn factor sampling off. This might be useful if one
wants to include observed factors (instead of latent ones).
- The function predloglik now takes an optional logical vector indicating
for which component series the predictive log likelihood should be computed.
Thanks to Stefan Voigt for pointing this out.
- Fixed a few more typos in the documentation.
- The function corimageplot now has a new argument: these4order.
- Some default settings have changed:
* priorfacloadtype = "rowwiseng" (was: "normal")
* priorfacload = 0.1 (was 1)
* runningstore = 6 (was: 1)
- Arguments to fsvsample were reordered.
- Previous default plotting function plot.fsvsdraws has been renamed to
plotalot. New default plotting function now shows a correlation matrix.
- New generic extractor: cormat (cormat.fsvdraws and cormat.fsvsim)
- Fixed namespace clashes between stochvol and factorstochvol (concerned
logret and paratraceplot); factorstochvol now DEPENDS on stochvol.
- Some plotting function now respect the session-wide palette.
Changes in version 0.9.1
- Default for argument "restrict" in fsvsample is now "none". This
alleviates the problem of (potentially) introducing arbitrary zeros which
are not in line with the data.
- Fixed glitches in the documentation. Thanks to Gregor Zens for pointing
these out.
Changes in version 0.9
- Required changes to be compatible with stochvol 2.0.0. Concerns low-level
functionality only.
- References updated.
Changes in version 0.8.3
- Default for argument "restrict" in fsvsample is now "auto". This does not
require the end-user to pre-sort the data but instead imposes zeros
in the factor loadings matrix according to a preliminary static
factor analysis.
- New function findrestrict.
- New function orderident.
- Changed default burn-in in fsvsample to 1000 (from 100).
- Changed default value of runningstorethin in fsvsample to 10 (from 1).
- The function logret can now standardize so that each series has (empirical)
variance equal to 1.
- Requires stochvol version >= 1.3.2.
- New function expweightcov.
- Changed default values for priorh0fac and priorphifac in fsvsample.
- h0 is now stored and returned by default by fsvsample.
- Added new argument "startlatent0" for passing starting values for h0
in fsvsample.
- Changed some default starting values to (somewhat) resemble those often
encountered in real data applications. This could decrease burn-in time.
Changes in version 0.8.2
- The function predprecision is now called predprecWB.
- The first two arguments of predloglik and predloglikWB were interchanced.
- Fixed ambiguity of type casting for log10() in sampler.cpp (needed to
compile on Solaris).
- Turned on progress indicator also for Windows (need %% instead of \045 or
\% to escape a percent symbol in Rprintf).
- Fixed signident to work also for 1 single MCMC draw.
- Minor fixes in CITATION.
Changes in version 0.8.1
- First CRAN release version.
- It is now possible to have arbitrary loadings restrictions. Thanks to
Florian Huber for bringing this up.
- interweaving == 4 means: deep with largest element (instead of diagonal).
This is also the new default.
Changes in Version 0.8.0
- Switched rows/colums for data input.
- interweaving == 3 means: shallow with largest element (instead of diagonal).
- Introduced (more) print and plot methods.
- Wrapper functions polished.
- Some error checks added.
- Fixed problem with offsetting constant (now used only in no-factor model).
- Documentation via roxygen2.
Changes in Version 0.7.14
- Fast evaluation of multivariate normal w/ low-rank covariance matrix using
Woodbury identity. Implemented in predcovinvdet.fsvdraws and
predloglik.fsvdraws.
Changes in Version 0.7.13
- Interweaving not only with diagonal element but with largest element.
- Changed default prior hyperparameters and starting values for phis.
- Added manual GetRNGstate() and PutRNGstate() clauses; using "RNGScope scope"
caused segfaults in rare (very) cases.
Changes in Version 0.7.12
- Prior for h0 can now be chosen to not depend to phi. Requires now stochvol
version 1.3.0 or higher.
Changes in Version 0.7.11
- Fixed the corresponding (nasty) bug in deep interweaving of factor loadings.
Changes in Version 0.7.10
- Fixed a bug in shallow interweaving of factor loadings. Many thanks to
Sylvia Frühwirth-Schnatter for pointing this out.
Changes in Version 0.7.9
- Setting runningstore >= 4 now also stores individual volatilities.
- Setting runningstore >= 6 now also stores communalities.
- Introduced comtimeplot for plotting communalities.
Changes in Version 0.7.8
- stochvol part can now be disabled to allow for homoskedastic factors
as well as time-invariant idiosyncratic variances.
- Fixed minor glitches for no-factor model.
- Number of factors in function preorder can now be specified.
- New plotting functions corlineplot and covlineplot.
- New plotting function corpointplot.
- New functions extractcor and extractcov for extracting the implied
correlation/covariance matrix from runningstore at a certain point in time.
Changes in Version 0.7.7
- Added covmat.fsvdraws and covmat.fsvsim for extracting implied
covariance matrices (computationally inefficient, for testing
purposes mainly).
- Added extra functionality to runningstore (store first four moments
of implied covariance and correlation matrix draws).
Changes in Version 0.7.6
- Added a "vectorized" version of dmvnorm.
- Bug causing Rcpp::index_out_of_bounds fixed (appeared when fitting a
0-factor model with NG-prior).
- fsvsim can now produce facloads that are "sparse".
Changes in Version 0.7.5
- Now able to simulate, estimate, and plot a "0-factor" model (i.e.
independent SV only).
- Minor internal changes concerning draws stored during sampling.
Changes in Version 0.7.4
- Severe speed-ups in predict.fsvdraws (now handled via RcppArmadillo).
- fsvsim is (a bit) more flexible.
- signident can now handle "maximin" type of identification.
- facloadpointplot now marks leading and sign-identifying series.
- predict.fsvdraws can handle selective storage.
- facloaddensplot can now handle non-restricted draws properly.
- facloaddensplot now indicates identifiers.
- added a "preorder" function (uses factanal).
Changes in Version 0.7.3
- predict.fsvdraws can now predict multiple draws per posterior draw.
Changes in Version 0.7.2
- Changes some default values in fsvsample.
- Modified some plotting functions.
- Implemented paratraceplot plotting function.
Changes in Version 0.7.1
- "runningstore" is now more flexible (store only certain variables).
- Implemented facloadpointplot plotting function.
Changes in Version 0.7.0
- Substantially re-written sampling of factors and loadings because
of (very) rare numerical problems with chol() when drawing the
factors.
- Added some defaults for fsvsim.
- Implemented voltimeplot, facloadtraceplot, and facloaddensplot
plotting functions.
- Implemented signident function (forces diagonal loadings to be pos.).
Changes in Version 0.6.2
- Re-written sampling scheme so that column-wise shrinkage is possible.
- Introduced a prediction method.
Changes in Version 0.6.1
- Included a "runningstore" feature that incorporates tracking of
min, max, and first four moment draws of f and h through time even
if thintime != 1.
Changes in Version 0.6.0
- Now using do_rgig() instead of rgig() to avoid excessive calls of
GetRNGstate() and PutRNGstate(), cf. NEWS and /inst/doc/README of
GIGrvg.
- Now depends on stochvol (>= 0.9) for increased stability.
- Moved down "RNGScope scope;" to avoid (very) rare segfaults, cf.
https://www.mail-archive.com/rcpp-devel@lists.r-forge.r-project.org/msg07519.html
Changes in Version 0.5
- Normal-Gamma prior for factor loadings introduced.
- Now links to GIGrvg for efficiently drawing Generalized Inverse
Gaussian RVs (needed for the Normal-Gamma prior specification).
Changes in Version 0.4
- First full C/C++ implementation, realized through the use of Rcpp
and RcppArmadillo.
- Added two interweaving strategies ("shallow" and "deep" interweaving)
to improve sampling, cf. paper for details. This finally ensures
convergences for certain data sets. Results without interweaving
do not seem to be (automatically) trustworthy.
Changes in Version 0.3
- Now links to stochvol for efficient sampling of univariate SV
models.
Changes in Version 0.2
- Bugfixes, code optimization.
Changes in Version 0.1
- Project initiated.
- Fully R-based "proof of concept".
TODO:
- Allow also for ones in the loadings matrix a priori (not only zeros)
- Preparation works for including the leverage effect that became
available in stochvol 2.0.