View source: R/run.functions.R
pDcalc | R Documentation |
Uses results from MBNMA JAGS models to calculate pD via the plugin method \insertCitespiegelhalter2002MBNMAdose. Can only be used for models with known standard errors or covariance matrices. Currently only functions with univariate likelihoods. Function is identical in MBNMAdose and MBNMAtime packages.
pDcalc(
obs1,
obs2,
fups = NULL,
narm,
NS,
theta.result,
resdev.result,
likelihood = "normal",
type = "time"
)
obs1 |
A matrix (study x arm) or array (study x arm x time point) containing
observed data for |
obs2 |
A matrix (study x arm) or array (study x arm x time point) containing
observed data for |
fups |
A numeric vector of length equal to the number of studies,
containing the number of follow-up mean responses reported in each study. Required for
time-course MBNMA models (if |
narm |
A numeric vector of length equal to the number of studies, containing the number of arms in each study. |
NS |
A single number equal to the number of studies in the dataset. |
theta.result |
A matrix (study x arm) or array (study x arm x time point) containing the posterior mean predicted means/probabilities/rate in each arm of each study. This will be estimated by the JAGS model. |
resdev.result |
A matrix (study x arm) or array (study x arm x time point) containing the posterior mean residual deviance contributions in each arm of each study. This will be estimated by the JAGS model. |
likelihood |
A character object of any of the following likelihoods:
|
type |
The type of MBNMA model fitted. Can be either |
Method for calculating pD via the plugin method proposed by
Spiegelhalter \insertCitespiegelhalter2002MBNMAdose. Standard errors / covariance matrices must be assumed
to be known. To obtain values for theta.result
and resdev.result
these
parameters must be monitored when running the MBNMA model (using parameters.to.save
).
For non-linear time-course MBNMA models residual deviance contributions may be skewed, which can lead to non-sensical results when calculating pD via the plugin method. Alternative approaches are to use pV as an approximation or pD calculated by Kullback-Leibler divergence \insertCiteplummer2008MBNMAdose.
A single numeric value for pD calculated via the plugin method.
# Using the triptans data
network <- mbnma.network(triptans)
# Fit a dose-response MBNMA, monitoring "psi" and "resdev"
result <- mbnma.run(network, fun=dloglin(), method="random",
parameters.to.save=c("psi", "resdev"))
#### Calculate pD for binomial data ####
# Prepare data for pD calculation
r <- result$model$data()$r
n <- result$model$data()$n
narm <- result$model$data()$narm
NS <- result$model$data()$NS
psi <- result$BUGSoutput$median$psi
resdevs <- result$BUGSoutput$median$resdev
# Calculate pD via plugin method
pD <- pDcalc(obs1=r, obs2=n, narm=narm, NS=NS,
theta.result=psi, resdev.result=resdevs,
likelihood="binomial", type="dose")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.