## ----setup, include = FALSE---------------------------------------------------
library(MBNMAdose)
library(rmarkdown)
library(knitr)
library(dplyr)
library(ggplot2)
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.width = 7,
fig.height = 5,
include=TRUE,
tidy.opts=list(width.cutoff=80),
tidy=TRUE
)
## ----results="hide", warning=FALSE--------------------------------------------
# Prepare data using the triptans dataset
tripnet <- mbnma.network(triptans)
# Run an Emax dose-response MBNMA
mbnma <- mbnma.run(tripnet, fun=demax(emax="rel", ed50="rel"),
method="random")
## ----message=FALSE, warning=FALSE---------------------------------------------
# Print neat summary of output
summary(mbnma)
## ----results="hide"-----------------------------------------------------------
# Emax model with single parameter estimated for Emax
emax <- mbnma.run(tripnet, fun=demax(emax="rel", ed50="common"),
method="random")
## -----------------------------------------------------------------------------
summary(emax)
## ----results="hide", message=FALSE, warning=FALSE-----------------------------
# Using the osteoarthritis dataset
pain.df <- osteopain
# Set class equal to agent for all agents
pain.df$class <- pain.df$class
# Set a shared class (NSAID) only for Naproxcinod and Naproxen
pain.df$class[pain.df$agent %in% c("Naproxcinod", "Naproxen")] <-
"NSAID"
# Run a restricted cubic spline MBNMA with a random class effect on beta.1
painnet <- mbnma.network(pain.df)
splines <- mbnma.run(painnet, fun=dspline(type="bs", knots=2), class.effect = list(beta.1="random"))
## ----eval=FALSE---------------------------------------------------------------
# # Using the depression SSRI dataset
# depnet <- mbnma.network(ssri)
#
# # An example specifying a quadratic dose-response function
# quadfun <- ~ (beta.1 * dose) + (beta.2 * (dose^2))
#
# quad <- mbnma.run(depnet, fun=duser(fun=quadfun, beta.1 = "rel", beta.2 = "rel"))
## ----eval=FALSE---------------------------------------------------------------
# # Using the depression SSRI dataset
# depnet <- mbnma.network(ssri)
#
# dr.funs <- dmulti(list(
# "Placebo"=dfpoly(degree=2),
# "citalopram"=dfpoly(degree=2),
# "escitalopram"=dfpoly(degree=2),
# "fluoxetine"=dspline(type="ns",knots=2),
# "paroxetine"=dfpoly(degree=2),
# "sertraline"=dspline(type="ns",knots=2)
# ))
#
# multifun <- mbnma.run(depnet, fun=dr.funs, method="common", n.iter=50000)
# summary(multifun)
## ----eval=FALSE---------------------------------------------------------------
# dspline(type="bs", knots=3)
# # ...is equivalent to
# dspline(type="bs", knots=c(0.25,0.5,0.75))
#
# # Using a natural cubic spline on the SSRI dataset
# depnet <- mbnma.network(ssri)
# ns <- mbnma.run(depnet, fun=dspline(type="ns", knots=c(0.25,0.5,0.75)))
## -----------------------------------------------------------------------------
print(mbnma$model.arg$priors)
## ----eval=FALSE---------------------------------------------------------------
# # Define replacement prior
# new.priors <- list(
# sd = "dnorm(0, 1) T(0,)"
# )
#
# # Run an MBNMA model with new priors
# emax <- mbnma.run(alognet, fun=demax(), method="random",
# priors=new.priors)
## ----eval=FALSE---------------------------------------------------------------
# ed50.priors <- list(ed50 = c(
# Celebrex="dnorm(100, 0.0025) T(0,)",
# Etoricoxib="dnorm(20, 0.01) T(0,)",
# Lumiracoxib="dnorm(50, 0.0025) T(0,)",
# Naproxcinod="dnorm(500, 0.0004) T(0,)",
# Naproxen="dnorm(500, 0.0004) T(0,)",
# Rofecoxib="dnorm(35, 0.04) T(0,)",
# Tramadol="dnorm(200, 0.0004) T(0,)",
# Valdecoxib="dnorm(4, 0.04) T(0,)"
# ))
#
# # Using the osteoarthritis dataset
# mbnma <- mbnma.run(painnet, fun=demax(emax="rel", ed50="rel"),
# priors=ed50.priors)
## ----message=FALSE, warning=FALSE---------------------------------------------
# Generate dataset without placebo
noplac.gout <-
gout[!gout$studyID %in% c(2001, 3102),] # Drop two-arm placebo studies
noplac.gout <-
noplac.gout[noplac.gout$agent!="Plac",] # Drop placebo arm from multi-arm studies
# Create mbnma.network object
noplac.net <- mbnma.network(noplac.gout)
## -----------------------------------------------------------------------------
# Plot network
plot(noplac.net, label.distance=5)
## -----------------------------------------------------------------------------
# Network plot at the agent level illustrates how doses can connect using MBNMA
plot(noplac.net, level="agent", remove.loops = TRUE, label.distance = 4)
## -----------------------------------------------------------------------------
# Network plot assuming connectivity via two doses
# Allows estimation of a single-parameter dose-response function
plot(noplac.net, level="agent", remove.loops = TRUE, label.distance = 4,
doselink=2)
# Network plot assuming connectivity via three doses
# Allows estimation of a two-parameter dose-response function
plot(noplac.net, level="agent", remove.loops = TRUE, label.distance = 4,
doselink=3)
## ----nonparam, results="hide"-------------------------------------------------
nonparam <- mbnma.run(tripnet, fun=dnonparam(direction="increasing"), method="random")
## -----------------------------------------------------------------------------
print(nonparam)
## ----results="hide"-----------------------------------------------------------
tripnet <- mbnma.network(triptans)
trip.emax <- mbnma.run(tripnet, fun=demax(emax="rel", ed50="rel"))
## ----results="hide"-----------------------------------------------------------
# Plot boxplots of residual deviance contributions (scatterplot is the default)
devplot(trip.emax, plot.type = "box")
## ----results="hide", warning=FALSE--------------------------------------------
# Plot fitted and observed values with treatment labels
fitplot(trip.emax)