Learn R Programming

CopulaREMADA (version 1.2)

VineCopulaREMADA: Maximum likelhood estimation for (truncated) vine copula mixed models for diagnostic test accurracy studies accounting for disease prevalence and non-evaluable outcomes

Description

The estimated parameters can be obtained by using a quasi-Newton method applied to the logarithm of the joint likelihood. This numerical method requires only the objective function, i.e., the logarithm of the joint likelihood, while the gradients are computed numerically and the Hessian matrix of the second order derivatives is updated in each iteration. The standard errors (SE) of the ML estimates can be also obtained via the gradients and the Hessian computed numerically during the maximization process.

Usage

VineCopulaREMADA.norm(TP,FN,FP,TN,perm,gl,mgrid,
                               qcondcop12,qcondcop13,qcondcop23,
                               tau2par12,tau2par13,tau2par23,
                               NEP,NEN)
VineCopulaREMADA.beta(TP,FN,FP,TN,perm,gl,mgrid,
                               qcondcop12,qcondcop13,qcondcop23,
                               tau2par12,tau2par13,tau2par23,
                               NEP,NEN)
tVineCopulaREMADA.norm(TP,FN,FP,TN,perm,gl,mgrid,
                               qcondcop12,qcondcop13,
                               tau2par12,tau2par13,
                               NEP,NEN)
tVineCopulaREMADA.beta(TP,FN,FP,TN,perm,gl,mgrid,
                               qcondcop12,qcondcop13,
                               tau2par12,tau2par13,
                               NEP,NEN)

Arguments

TP

the number of true positives

FN

the number of false negatives

FP

the number of false positives

TN

the number of true negatives

perm

a scalar indicating the selected permutation of indices:

1: Pilot variable is the number of TP. The bivariate margins are 12, 13, 23|1;

2: Pilot variable is the number of TN. The bivariate margins are 23, 12, 13|2;

3: Pilot variable is the TP+FN. The bivariate margins are 13, 23, 12|3;

1:TP, 2:TN, 3:TP+FN

gl

a list containing the components of Gauss-Legendre nodes gl$nodes and weights gl$weights

mgrid

a list containing three-dimensional arrays. For more details see meshgrid

qcondcop12

function for the inverse of conditional copula cdf at the (1,2) bivariate margin

qcondcop13

function for the inverse of conditional copula cdf at the (1,3) bivariate margin

qcondcop23

function for the inverse of conditional copula cdf at the (2,3|1) bivariate margin

tau2par12

function for maping Kendall's tau at the (1,2) bivariate margin to copula parameter

tau2par13

function for maping Kendall's tau at the (1,3) bivariate margin to copula parameter

tau2par23

function for maping Kendall's tau at the (2,3|1) bivariate margin to the conditional copula parameter

NEP

the number of non-evaluable positives in the presence of non-evaluable subjects

NEN

the number of non-evaluable negatives in the presence of non-evaluable subjects

Value

A list containing the following components:

minimum

the value of the estimated minimum of the negative log-likelihood

estimate

the MLE

gradient

the gradient at the estimated minimum of of the negative log-likelihood

hessian

the hessian at the estimated minimum of the negative log-likelihood

code

an integer indicating why the optimization process terminated

iterations

the number of iterations performed

For more details see nlm

References

Nikoloulopoulos, A.K. (2017) A vine copula mixed effect model for trivariate meta-analysis of diagnostic test accuracy studies accounting for disease prevalence. Statistical Methods in Medical Research, 26, 2270--2286. 10.1177/0962280215596769.

Nikoloulopoulos, A.K. (2018) A vine copula mixed model for trivariate meta-analysis of diagnostic studies accounting for disease prevalence and non-evaluable subjects. ArXiv e-prints, arXiv:1812.03685. https://arxiv.org/abs/1812.03685.

See Also

rVineCopulaREMADA

Examples

Run this code
# NOT RUN {
nq=15
gl=gauss.quad.prob(nq,"uniform")
mgrid=meshgrid(gl$n,gl$n,gl$n,nargout=3)

data(OGT)
attach(OGT)
# out=tVineCopulaREMADA.norm(TP,FN,FP,TN,1,gl,mgrid,
# qcondbvn,qcondbvn,tau2par.bvn,tau2par.bvn)
detach(OGT)
############################################
# In the precence of non-evaluable results #
data(coronary)
attach(coronary)
# out=tVineCopulaREMADA.norm(TP,FN,FP,TN,2,gl,mgrid,
# qcondbvn,qcondbvn,tau2par.bvn,tau2par.bvn,NEP,NEN)
detach(coronary)
# }

Run the code above in your browser using DataLab