Nothing
## ---- include = FALSE---------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----setup--------------------------------------------------------------------
library(dpasurv)
library(ggplot2)
## ---- out.width = "630px", include=TRUE, fig.align="center", echo=FALSE, fig.cap="Figure 1. (a) A dynamic path diagram with treatment $Z$, a single mediator $M(t)$, and baseline confounders $X$; (b) Corresponding dynamic path diagram without the mediator process."----
knitr::include_graphics("../man/figures/tutorial_fig.png")
## -----------------------------------------------------------------------------
simdata
## ---- eval=FALSE--------------------------------------------------------------
# # Perform dynamic path analysis
# s <- dpa(Surv(start, stop, event) ~ M + x, list(M ~ x), id = "subject", data = simdata, boot.n = 500)
#
# # Extract cumulative direct and indirect effects with 95% pointwise bootstrap confidence bands:
# direct <- effect(x ~ outcome, s, alpha=0.05)
# indirect <- effect(x ~ M ~ outcome, s, alpha=0.05)
#
# # Use sum() method to obtain total effect
# total <- sum(direct, indirect)
#
# # Plot the results
# layout1x3 <- par(mfrow=c(1,3))
# plot(direct); abline(h=0, lty=2, col=2)
# plot(indirect); abline(h=0, lty=2, col=2)
# plot(total); abline(h=0, lty=2, col=2)
#
# # restore user's graphical parameters:
# par(layout1x3)
#
# # Plot the results with ggplot2 graphics:
# ggplot.effect(list(direct, indirect, total))
## ---- message=FALSE, warning=FALSE, fig.width=5-------------------------------
ggplot(mapping=aes(x = start, y = M, group=dose), data=simdata) + geom_smooth(aes(colour=dose))
## ---- fig.width=5-------------------------------------------------------------
fit <- survival::survfit(Surv(start, stop, event) ~ dose, data=simdata)
plot(fit, col=2:4, xlab="Time", ylab="Survival", main="KM-curves by dose level")
legend(150, 1, c("control", "low dose", "high dose"), col=2:4, lwd=2, bty='n')
## -----------------------------------------------------------------------------
summary(survival::coxph(Surv(start, stop, event) ~ dose + M, data=simdata))
## -----------------------------------------------------------------------------
set.seed(1)
s <- dpa(Surv(start, stop, event) ~ M + dose, list(M ~ dose), id = "subject", data = simdata, boot.n = 500)
## -----------------------------------------------------------------------------
# The dose effect on mediator response:
dose.on.mediator <- effect(dose ~ M, s)
ggplot.effect(dose.on.mediator)
## -----------------------------------------------------------------------------
# direct effect of dose on outcome
direct <- effect(dose ~ outcome, s)
ggplot.effect(direct)
## -----------------------------------------------------------------------------
# effect of mediator on outcome
mediator.on.outcome <- effect(M ~ outcome, s)
ggplot.effect(mediator.on.outcome)
## -----------------------------------------------------------------------------
# Output from Aalen's additive model from the timereg::aalen() implementation:
summary(s$aalen)
## -----------------------------------------------------------------------------
# indirect effect of dose on outcome, mediated through M
indirect <- effect(dose ~ M ~ outcome, s)
# total effect
total <- sum(direct, indirect)
## ---- fig.width=7-------------------------------------------------------------
ggplot.effect(list(direct, indirect, total))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.