| get_set_param | R Documentation |
Algorithm specific parameters for functionalities in the nvmix
package, notably for fitnvmix(), dnvmix(),
pnvmix(), qnvmix(), pgammamix(),
dgammamix() and ES_nvmix() as well as the
corresponding functions for grouped mixtures.
get_set_param(control = list())
control |
|
For most functions in the nvmix package, internally, an
iterative randomized Quasi-Monte Carlo (RQMC) approach is used to
estimate probabilities, weights and (log-)densities. There are various
parameters of underlying methods than can be changed.
Algorithm specific parameters can be passed as a list via
control. It can contain any of the following:
methodcharacter string indicating the
method to be used to compute the integral. Available are:
"sobol":Sobol' sequence (default),
"ghalton":generalized Halton sequence,
"PRNG":plain Monte Carlo based on a pseudo-random number generator.
incrementcharacter string indicating how
the sample size should be increased in each iteration. Available are:
"doubling":next iteration has as many sample points as all the previous iterations combined,
"num.init":all iterations use an additional
fun.eval[1]-many points (default for most functions).
CI.factormultiplier of the Monte Carlo confidence interval
bounds. The algorithm runs until CI.factor times the estimated
standard error is less than abstol or reltol (whichever
is provided). If CI.factor = 3.5 (the default), one can expect
the actual absolute error to be less than abstol in
99.9% of the cases.
fun.evalnumeric(2) providing the size of
the first point set to be used to estimate integrals
(typically a power of 2) and the maximal number of function
evaluations. fun.eval defaults to c(2^7, 1e12).
max.iter.rqmcnumeric, providing the maximum
number of iterations allowed in the RQMC approach; the default is 15
if increment = "doubling" and 1250 otherwise.
Bnumber of randomizations for obtaining an error estimate
in the RQMC approach; the default is 15.
pnvmix() and pgnvmix():pnvmix.abstol, pnvmix.reltolnon-negative numeric
providing the relative/absolute precision required for the distribution
function. Relative precision via pnvmix.reltol is only used
when pnvmix.abstol = NA; in all other cases, absolute precision
will be used. pnvmix.abstol defaults to 1e-3.
If pnvmix.abstol = 0 and pnvmix.reltol = 0, the algorithm
will typically run until the total number of function evaluations
exceeds fun.eval[2] or until the total number of iterations exeeds
max.iter.rqmc, whichever happens first.
If n > 1 (so upper has more than
one row), the algorithm runs until the precision requirement is reached
for all n probability estimates.
mean.sqrt.mixexpectation of the square root \sqrt(W)
of the mixing variable W. If NULL, it will be estimated via
QMC; this is only needed for determining the reordering of the
integration bounds, so a rather crude approximation is fine.
precondlogical indicating whether
preconditioning is applied, that is, reordering of the integration
variables. If TRUE, integration limits lower, upper
as well as scale
are internally re-ordered in a way such that the overall variance of the
integrand is usually smaller than with the original ordering; this
usually leads smaller run-times.
cholesky.tolnon-negative numeric providing lower threshold
for non-zero elements in the computation of the cholesky factor: If
calculated C(i,i)^2 < | cholesky.tol * Scale(i,i)|, the diagonal
element (and all other elements in column i) of the cholesky factor
C are set to zero, yielding a singular matrix. cholesky.tol
defaults to 1e-9.
dnvmix() and dgnvmix():dnvmix.reltol, dnvmix.abstolnon-negative
numeric providing the relative/absolute precision for the *log-*
density required. Absolute precision via dnvmix.abstol
is only used when dnvmix.reltol = NA; in all other
cases, relative precision will be used. dnvmix.reltol
defaults to 1e-2.
If dnvmix.reltol=0 and dnvmix.abstol=0, the algorithm
will typically run until the total number of function evaluations exceeds
fun.eval[2] or until the total number of iterations exeeds
max.iter.rqmc, whichever happens first.
If n > 1 (so x has more than one row), the algorithm runs until
the precision requirement is reached for all n log-density estimates.
dnvmix.doAdaptlogical indicating if an adaptive
integration procedure shall be used that only samples in relevant subdomains
of the mixing variable; defaults to TRUE.
dnvmix.max.iter.rqmc.pilotnumeric, providing
the maximum number of unstratified, non-adaptive pilot runs the internal
integration procedure performs. Defaults to 6.
dnvmix.tol.int.lower, dnvmix.order.lowerboth numeric and nonnegative. RQMC integration
is only performed where the integrand is > than the maximum of
dnvmix.tol.int.lower and 10^{-c} g_{max}, where
g_{max} is the theoretical maximum of the integrand and c
is the specified dnvmix.order.lower. Default to 1e-100
and 5, respectively.
dnvmix.tol.bisecnumeric vector of
length 3 specifying bisection tolerances in the adaptive RQMC algorithm.
First/second/third element specify the tolerance on u, W and
the log-integrand and default to 1e-6, 1e-1 and
1e-1, respectively.
dnvmix.max.iter.bisecnumeric, maximum number
of iterations in the internal bisection procedure to find good cutting
points allowed, defaults to 15.
dnvmix.tol.stratlengthnumeric, nonnegative.
If the stratum found by the adaptive integration method has length >
dnvmix.tol.stratlength RQMC integration is used there; otherwise
a crude approximation. Defaults to 1e-50.
fitnvmix():ECMEsteplogical, if TRUE (default),
ECME iteration is performed;
if FALSE, no ECME step is performed so that fitnvmix()
performs between zero and two optimizations over nu, depending
on laststep.do.nu and whether nu.init was provided.
ECMEstep.do.nulogical, if TRUE
(default), the likelihood is maximized over nu in each ECME
iteration; if FALSE, this step is omitted.
laststep.do.nulogical, if TRUE
another last maximization of the likelihood over nu is
performed using all observations after the ECME iterations.
Only makes sense if either ECMEstep.do.nu=FALSE or
if size.subsample is smaller than the number of observations.
Defaults to FALSE.
resamplelogical, if TRUE, a different
subsample of x is taken in each optimization over nu in
the ECME iterations. Only relevant when size.subsample is
smaller than the number of observations. Defaults to FALSE.
ECME.miniter, ECME.maxiternumeric
positive, minimum and maximum number
of ECME iterations. Default to 5 and 200, respectively.
max.iter.locscaleupdatenumeric positive.
Maximum number of location-scale updates (while helding nu fixed)
in each individual ECME iteration; defaults to 50.
weights.reltolnumeric non-negative. Relative
tolerance to estimate internal weights used to update
loc and scale estimates in the ECME iterations. Defaults to
1e-2.
weights.interpol.reltolnumeric
non-negative. Some weights can be obtained by interpolating
previously calculated weights; if the maximal relative
interpolation error is smaller than
weights.interpol.reltol, this is done. Defaults to 1e-2.
ECME.rel.conv.tolnumeric(3) vector
specifying relative convergence tolerances for loc, scale
and nu (in this order). Defaults to c(1e-2, 1e-2, 1e-3).
control.optimlist of control parameters
passed to the underlying optim in the initial step as well as
in the ECME iterations. See optim() for details; defaults to
list(maxit=75).
control.optim.laststeplike control.optim;
this list of control arguments is passed to optim in the last-step.
Only relevant when laststep.do.nu = TRUE and defaults to
list() (so no defaults of optim() changed).
qnvmix():max.iter.newtonnumeric, maximum number
of Newton iterations allowed to approximate the quantile; defaults
to 45.
newton.conv.abstolnumeric, convergence
tolerance for the Newton proceudre; convergence is detected once
the difference of estimated quantiles in two successive iterations
is smaller than newton.conv.abstol; defaults to 5e-4.
newton.df.reltolnumeric, relative error
tolerance for estimating the univariate distribution function;
defaults to 2.5e-4.
newton.logdens.abstolnumeric, absolute error
tolerance for the internal estimation of the log-density needed for the
update; defaults to 1e-2.
newton.df.max.iter.rqmcnumeric, maximum
number of iterations to estimate the univariate distribution function
required in the Newton update; defaults to 350. Note that
internally used is increment = "doubling", no matter what.
qqplot_maha():qqplot.df.reltolnumeric, with the same
meaning as newton.df.reltol for the function qnvmix().
Defaults to 5e-3.
ES_nvmix():riskmeasures.abstol, riskmeasures.reltolnumeric, absolute or relative error tolerance for
estimating riskmeasures, notably for ES_nvmix(). By default,
riskmeasures.reltol=5e-2 and riskmeasures.abstol=NA,
so that a relative tolerance is used.
Care should be taken when changing algorithm specific parameters, notably tolerances, as the accuracy of the result is heavily influenced by those.
get_set_param() returns a list with more
than 30 elements specifying algorithm specific parameters for the
functions fitnvmix(), dnvmix(),
pnvmix(), qnvmix(), pgammamix(),
dgammamix() and ES_nvmix(), as well as the
corresponding functions for grouped mixtures such as pgnvmix()
and dgnvmix().
Parameter values passed to get_set_param() via the
control argument overwrite the defaults; for parameters not
specified in the control argument, the default values are being
returned.
Erik Hintz, Marius Hofert and Christiane Lemieux
Hintz, E., Hofert, M. and Lemieux, C. (2020), Grouped Normal Variance Mixtures. Risks 8(4), 103.
Hintz, E., Hofert, M. and Lemieux, C. (2021), Normal variance mixtures: Distribution, density and parameter estimation. Computational Statistics and Data Analysis 157C, 107175.
Hintz, E., Hofert, M. and Lemieux, C. (2022), Multivariate Normal Variance Mixtures in R: The R Package nvmix. Journal of Statistical Software, \Sexpr[results=rd]{tools:::Rd_expr_doi("10.18637/jss.v102.i02")}.
fitnvmix(), dnvmix(),
pnvmix(), qnvmix(), pgammamix(),
dgammamix(), ES_nvmix()
get_set_param() # obtain defaults
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.