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.