PoolRegBayes | R Documentation |
It can be useful to do mixed effects logistic regression on the presence/absence results from pooled samples, however one must adjust for the size of each pool to correctly identify trends and associations.
PoolRegBayes( formula, data, poolSize, link = "logit", prior = NULL, cores = NULL, ... )
formula |
A |
data |
A |
poolSize |
The name of the column with number of specimens / isolates / insects in each pool. |
link |
Link function. There are three options 'logit' (i.e logistic regression, the default), 'cloglog' (complementary log-log), and 'loglogit'. The final option blends a log link function and the logit function so that parameters are (log) prevalence/rate ratios as long as predicted prevalence is <0.8 (for details see Clark and Barr, Stat Methods Med Res (2018) <DOI:10.1177/0962280217698174>) |
prior |
The priors to be used for the regression parameters. Defaults to
a non-informative (normal(0,100)) prior on linear coefficients and a
zero-truncated student-t prior on the group effect standard deviations.
Custom priors must be |
cores |
The number of CPU cores to be used. By default one core is used |
... |
Additional arguments to be passed to |
An object of class brms
with the regression outputs.
Clark RG, Barr M: A blended link approach to relative risk regression. Statistical Methods in Medical Research 2018, 27(11):3325-3339. <DOI:10.1177/0962280217698174>
Angus McLure, Ben O'Neill, Helen Mayfield, Colleen Lau, Brady McPherson (2021). PoolTestR: An R package for estimating prevalence and regression modelling for molecular xenomonitoring and other applications with pooled samples. Environmental Modelling & Software, 145:105158. <DOI:10.1016/j.envsoft.2021.105158>
PoolReg
,
getPrevalence
# Perform logistic-type regression modelling for a synthetic dataset consisting # of pools (sizes 1, 5, or 10) taken from 4 different regions and 3 different # years. Within each region specimens are collected at 4 different villages, # and within each village specimens are collected at 8 different sites. ### Models in a frequentist framework #ignoring hierarchical sampling frame within each region Mod <- PoolReg(Result ~ Region + Year, data = SimpleExampleData, poolSize = NumInPool) summary(Mod) #accounting hierarchical sampling frame within each region HierMod <- PoolReg(Result ~ Region + Year + (1|Village/Site), data = SimpleExampleData, poolSize = NumInPool) summary(HierMod) #Extract fitted prevalence for each combination of region and year and then at #each level of the hierarchical sampling frame (i.e. for each village in each #region and each site in each village) getPrevalence(HierMod) ### Models in a Bayesian framework with default (non-informative) priors #ignoring hierarchical sampling frame within each region BayesMod <- PoolRegBayes(Result ~ Region + Year, data = SimpleExampleData, poolSize = NumInPool) summary(BayesMod) getPrevalence(BayesMod) #Extract fitted prevalence for each combination of region and year #accounting hierarchical sampling frame within each region BayesHierMod <- PoolRegBayes(Result ~ Region + Year + (1|Village/Site), data = SimpleExampleData, poolSize = NumInPool) summary(BayesHierMod) getPrevalence(BayesHierMod) ### Calculate adjusted estimates of prevalence # We use the same function for all four models, but the outputs are slightly different # Extract fitted prevalence for each combination of region and year getPrevalence(Mod) getPrevalence(BayesMod) #Extract fitted prevalence for each combination of region and year and then at #each level of the hierarchical sampling frame (i.e. for each village in each #region and each site in each village) getPrevalence(HierMod) getPrevalence(BayesHierMod) # You can also use getPrevalence to predict at prevalence for other values of # the covariates (e.g. predict prevalence in year 4) #Making a data frame containing data make predict on DataFuture <- unique(data.frame(Region = SimpleExampleData$Region, Village = SimpleExampleData$Village, Site = SimpleExampleData$Site, Year = 4)) getPrevalence(Mod, newdata = DataFuture) getPrevalence(HierMod, newdata = DataFuture) getPrevalence(BayesMod, newdata = DataFuture) getPrevalence(BayesHierMod, newdata = DataFuture)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.