nplcm_fit_Reg_Nest: Fit nested partially-latent class model with regression...

View source: R/nplcm.R

nplcm_fit_Reg_NestR Documentation

Fit nested partially-latent class model with regression (low-level)


Called by nplcm() upon being assigned to this nested regression by assign_model()


nplcm_fit_Reg_Nest(data_nplcm, model_options, mcmc_options)



Cases are on top of controls in the rows of diagnostic test results and the covariate matrix. This is assumed by baker to automatically write model files (.bug).

  • Mobs A list of measurements of distinct qualities (Bronze-, Silver, and Gold-Standard: MBS,MSS,MGS). The elements of the list should include MBS, MSS, and MGS. If any of the component is not available, please specify it as, e.g., MGS=NULL (effectively deleting MGS from Mobs).

    • MBS a list of data frame of bronze-standard (BrS) measurements. Rows are subjects, columns are causative agents (e.g., pathogen species). We use list here to accommodate the possibility of multiple sets of BrS data. They have imperfect sensitivity/specificity (e.g. nasopharyngeal polymerase chain reaction - NPPCR).

    • MSS a list of data frame of silver-standard (SS) measurements. Rows are subjects, columns are causative agents measured in specimen (e.g. blood culture). These measurements have perfect specificity but imperfect sensitivity.

    • MGS a list of data frame of gold-standard (GS) measurements. Rows are subject, columns are measured causative agents These measurements have perfect sensitivity and specificity.

  • Y Vector of disease status: 1 for case, 0 for control.

  • X Covariate matrix. A subset of columns are primary covariates in cause-specific- case-fraction (CSCF) functions and hence must be available for cases, and another subset are covariates that are available in the cases and the controls. The two sets of covariates may be identical, overlapping or completely different. In general, this is not the design matrix for regression models, because for enrollment date in a study which may have non-linear effect, basis expansion is often needed for approximation.


A list of model options: likelihood and prior.


A vector of characters strings; can be one or more from "BrS", "SS", "GS".

  • cause_list The vector of causes (NB: specify);

  • k_subclass The number of nested subclasses in each disease class (one of case classes or the control class; the same k_subclass is assumed for each class) and each slice of BrS measurements. 1 for conditional independence; larger than 1 for conditional dependence. It is only available for BrS measurements. It is a vector of length equal to the number of slices of BrS measurements;

  • Eti_formula Formula for etiology regressions. You can use s_date_Eti() to specify the design matrix for R format enrollment date; it will produce natural cubic spline basis. Specify ~ 1 if no regression is intended.

  • FPR_formulaformula for false positive rates (FPR) regressions; see formula(). You can use s_date_FPR() to specify part of the design matrix for R format enrollment date; it will produce penalized-spline basis (based on B-splines). Specify ~ 1 if no regression is intended. (NB: If effect="fixed", dm_Rdate_FPR() will just specify a design matrix with appropriately standardized dates.)

  • Eti_priorDescription of etiology prior (e.g., overall_uniform - all hyperparameters are 1; or 0_1 - all hyperparameters are 0.1);

  • TPR_priorDescription of priors for the measurements (e.g., informative vs non-informative). Its length should be the same with M_use. (NB: not sure what M use is...)


A list of Markov chain Monte Carlo (MCMC) options.

  • debugstatus Logical - whether to pause WinBUGS after it finishes model fitting; (NB: is this obsolete? Test.)

  • n.chains Number of MCMC chains;

  • n.burnin Number of burn-in iterations;

  • n.thin To keep every other n.thin samples after burn-in period;

  • individual.pred TRUE to perform individual prediction (Icat variables in the .bug file); FALSE otherwise;

  • ppd TRUE to simulate new data ( variables in the .bug file) from the posterior predictive distribution (ppd); FALSE otherwise;

  • get.pEti TRUE for getting posterior samples of individual etiologic fractions; FALSE otherwise. For non-regression, or regression models with all discrete predictors, by default this is TRUE, so no need to specify this entry. It is only relevant for regression models with non-discrete covariates. Because individuals have distinct CSCFs at their specific covariate values, it's easier to just store the posterior samples of the regression coefficients and reconstruct the pies afterwards, rather than storing them through JAGS.

  • result.folder Path to folder storing the results;

  • bugsmodel.dir Path to .bug model files;

  • jags.dir Path to where JAGS is installed; if NULL, this will be set to jags.dir="".


This function prepares data, specifies hyperparameters in priors (true positive rates and etiology fractions), initializes the posterior sampling chain, writes the model file (for JAGS), and fits the model. Features:

  • regression (not all discrete covariates);

  • nested subclasses, i.e. conditional dependence of multivariate measurements given disease class and covariates;

  • multiple BrS + multiple SS.


BUGS fit results.

See Also

write_model_Reg_Nest for constructing .bug model file; This function then put it in the folder mcmc_options$bugsmodel.dir.

Other model fitting functions: nplcm_fit_NoReg(), nplcm_fit_Reg_NoNest(), nplcm_fit_Reg_discrete_predictor_NoNest()

zhenkewu/baker documentation built on March 17, 2022, 9:54 p.m.