mdgc_log_ml  R Documentation 
Approximates the log marginal likelihood and the derivatives using randomized quasiMonte Carlo. The method uses a generalization of the Fortran code by Genz and Bretz (2002).
Mean terms for observed continuous variables are always assumed to be zero.
The returned log marginal likelihood is not a proper log marginal likelihood
if the ptr
object is constructed from a mdgc object from
get_mdgc
as it does not include the log of the determinants of
the Jacobians for the transformation of the continuous variables.
mdgc_log_ml(
ptr,
vcov,
mea,
rel_eps = 0.01,
n_threads = 1L,
comp_derivs = FALSE,
indices = NULL,
do_reorder = TRUE,
maxpts = 100000L,
abs_eps = 1,
minvls = 100L,
use_aprx = FALSE
)
ptr 
object returned by 
vcov 
covariance matrix. 
mea 
vector with nonzero mean entries. 
rel_eps 
relative error for each marginal likelihood factor. 
n_threads 
number of threads to use. 
comp_derivs 
logical for whether to approximate the gradient. 
indices 
integer vector with which terms (observations) to include.
Must be zerobased. 
do_reorder 
logical for whether to use a heuristic variable
reordering. 
maxpts 
maximum number of samples to draw for each marginal likelihood term. 
abs_eps 
absolute convergence threshold for each marginal likelihood factor. 
minvls 
minimum number of samples. 
use_aprx 
logical for whether to use an approximation of

A numeric vector with a single element with the log marginal likelihood
approximation. Two attributes are added if comp_derivs
is
TRUE
: "grad_vcov"
for the derivative approximation with
respect to vcov
and "grad_mea"
for the derivative
approximation with respect to mea
.
Genz, A., & Bretz, F. (2002). Comparison of Methods for the Computation of Multivariate t Probabilities. Journal of Computational and Graphical Statistics.
Genz, A., & Bretz, F. (2008). Computation of Multivariate Normal and t Probabilities. SpringerVerlag, Heidelberg.
mdgc_fit
# there is a bug on CRAN's check on Solaris which I have failed to reproduce.
# See https://github.com/rhub/solarischeck/issues/8#issuecomment796735501.
# Thus, this example is not run on Solaris
is_solaris < tolower(Sys.info()[["sysname"]]) == "sunos"
if(!is_solaris){
# randomly mask data
set.seed(11)
masked_data < iris
masked_data[matrix(runif(prod(dim(iris))) < .10, NROW(iris))] < NA
# use the functions in the package
library(mdgc)
obj < get_mdgc(masked_data)
ptr < get_mdgc_log_ml(obj)
start_vals < mdgc_start_value(obj)
print(mdgc_log_ml(ptr, start_vals, obj$means))
print(mdgc_log_ml(ptr, start_vals, obj$means, use_aprx = TRUE))
print(mdgc_log_ml(ptr, start_vals, obj$means, use_aprx = TRUE,
comp_derivs = TRUE))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.