mcmcplots package from
Suggests (it has been archived from CRAN). MCMC diagnostic
plots in examples and the vignette now use the coda package
instead.dspline() pooling is specified through a single vector
(betas) argument rather than individual
beta.1, beta.2, etc.dspline() spline types have been consolidated to the
implemented set: "bs" (B-splines) and "ns"
(natural cubic splines). The defunct "rcs" and
"is" options, and the redundant "ls" option
(piecewise linear splines, equivalent to "bs" with
degree=1), have been removed from the documentation and
argument checks.knots argument in dspline() can now be
specified either as a single integer (indicating the number of
equally-spaced internal knots) or as a vector of quantile locations
(proportions of the dose range).dmulti() whereby each constituent
dose-response function’s parameters were not renamed to globally unique
names. This caused the functions to share (and overwrite) each other’s
parameters in the JAGS model and in predict(), giving
incorrect results, and could cause a JAGS
"Invalid parent values" error for functions involving
division (e.g. demax()).dmulti()
models whereby the reference-arm dose-response was subtracted without
parentheses, so only the first term of multi-term functions
(e.g. dpoly(degree=2)) was negated.dmulti() whereby the df
(spline degrees of freedom) of constituent functions became misaligned
when any function was specified via knots (rather than
df), causing a subscript-out-of-bounds error in
predict() for models combining spline functions.get.relative() for models with multiple
(agent-specific) dose-response functions, where parameters were mapped
to the wrong dose-response function when constructing relative
effects.plot() for predictions
(plot.mbnma.predict()) with
overlay.split=TRUE, which errored because the
overlay.split argument masked the internal function of the
same name. Additional arguments passed via ... are now
correctly routed to either R2jags::jags() (for the split
NMA) or ggplot2, rather than jags-specific
arguments (e.g. jags.seed) being incorrectly passed to
ggplot2.ggplot2 warning in devplot()
caused by passing the group aesthetic outside of
aes().dspline() whereby specifying multiple
knots as a vector silently retained only the first knot, generating a
spline basis with fewer parameters than intended (and a mismatch with
the monitored dose-response parameters).nma.run() that referenced an
undefined class.effect object when named (multi-element)
priors were supplied.dspline(type="rcs") previously errored despite being
documented, and dspline(type="is") was accepted but crashed
during model setup. Spline types are now consistent across the package
(see above).plot() for node-split objects
(plot.nodesplit()) that referenced an undefined object when
rescaling density panels with large differences in scale.duser() now returns a correctly named
bname element, consistent with the other dose-response
functions.dfpoly()
so that validation errors for the second power refer to
power.2 rather than beta.4.ditp(p.expon=TRUE),
which incorrectly referred to ed50 instead of
rate.predict() now returns an informative error message
(instead of an empty stop()) when too few values are
available to generate predictions.summary() output for
mbnma.network objects.cumrank() now normalised to
be between 0 and 1.pd is now specified as pD and should be
logical as either TRUE (estimates the effective number of
parameters via the Kullback-Leibler divergence) or FALSE
(using the pV approximation)R2jags that was
ignoring the warmup stage and effectively saving all the simulations
performed for Monte-Carlo estimation.netmeta added to list of suggested packagesregress.vars argument in mbnma.run().
Various sharing assumptions for effects can be specified in
regress.effect.dfpoly() can only take
numeric values from set defined in Jansen 2015.calc.edx() to allow easy estimation of different
ED values (e.g. ED90 = the dose at which 90% of the maximum response
(Emax) is reached)get.relative() now allows simultaneous comparison of
two models in a single league table - can be used to compare MBNMA
models with different dose-response functions, or MBNMA and NMA models,
or NMA models that assume consistency versus those that use Unrelated
Mean Effects.ed50, hill,
onset) are now on the natural scale and are assigned
truncated normal default priorsgetjagsdata()fitplot() and
devplot()get.relative() to allow estimation of relative
effects between any doses of different agents."relative.array" objects generated
by get.relative().n rather than N so that datasets can be
consistent with those used in MBNMAtimepredict.mbnma() and
get.relative()devdev() for comparing deviance contributions
between modelsmbnma.run() are now
given as class("dosefun") and dose-response parameters are
specified within these functions. NOTE: Previous syntax of specifying a
function name as a character (e.g. fun="linear") along with
beta parameters (e.g. mbnma.run(beta.1="rel")) will be
removed in subsequent versions, along with wrapper functions.dloglin())dspline()) (piecewise linear
splines, B-splines, restricted cubic splines, natural splines)dfpoly())link="smd" to allow for analysis using
Standardised Mean Differencescalcom() to guess outcome measure scale for more
careful specification of default priors for SD"mbnma.network" objectmbnma.nodesplit() fixedparams in
plot.mbnma.rank() is not a subset of xoverlay.split() uses full distribution of
E0 rather than summary statisticsmbnma.predict object now contains values
assigned/estimated for E0 to be used in
overlay.split()plot.nodesplit(), plot.type="forest"
plots a single forest plot with results for each node-split comparison,
rather than presenting results in panels.summary.mbnma.network() returns valid minimum
doses per agentparallel=TRUE and
added a warning when pd is set to "pd.kl" or
"popt" for these models.summary() for multiple dose-response function modelsfun="rcs") in mbnma.run()mbnma.run() to allow relaxing of the consistency
assumption. This can be used to test its validity.cumrank() added for cumulative ranking plots. Also
calculates SUCRA values for each agent and dose-response parameterautojags options added for mbnma.run() to
allow users to run models until they converge (convergence defined by
Rhat)rank.mbnma() also calculates cumulative ranking
probabilities and stores them in cum.matrixgetjagsdata() contains studyID
and has been added to mbnma objectsdevplot() and
fitplot()plot.nodesplit() scales y-axis if density is >50
times larger in panel with highest density than in panel with lowest
density. This improves legibility of the graph.class("nodesplit")mbnma.nodesplit() includes potential splits via
dose-response curve and direct and indirect evidence contributions are
calculated simultaneously in the same model.mbnma.nodesplit() and nma.nodesplit()plot.mbnma.network()psoriasis and ssri datasets to
packagecrayon package to neaten printed console
outputsfun in
mbnma.run()) so that multiple functions can be modelled
simultaneously. Some downstream package functions still may not yet work
with these models though.mbnma.network objects returned from
plot.mbnma.network now have specific igraph attributes
assigned to them, which can be easily changed by the user.user.fun now takes a formula as an argument (for
example ~ (beta.1 * dose) + (beta.2 * dose^2)) rather than
a string.plot.mbnma.network() now uses a layout
argument that takes an igraph layout function instead of
layout_in_circle (which was a logical argument). This
allows any igraph layout to be plotted rather than just a circle
(e.g. igraph::as_star())if {class(x)=="matrix"} statements to
if {is.matrix(x)} to address R development changespd="plugin"), or Kullback-Leibler divergence
(pd="pd.kl")parallel=TRUE in
mbnma.run() (or wrapper functions) now properly runs JAGS
in parallel on multiple cores.mbnma.network in their output rather than just treatment
and agent names.nma.nodesplit() that prevented the
model running if disconnected treatments were included in the analysis
(drop.discon=FALSE)Welcome to MBNMAdose. Ready for release into the world. I hope it can be of service to you! For time-course MBNMA, also check out the sister package, MBNMAtime.