Nothing
## ----echo=FALSE-------------------------------------------
options(width=60)
options(prompt="R> ")
library(knitr)
opts_chunk$set(fig.path="flexsurv-")
render_sweave()
## ---------------------------------------------------------
library(flexsurv)
bosms3[18:22, ]
## ---------------------------------------------------------
crexp <- flexsurvreg(Surv(years, status) ~ trans, data = bosms3,
dist = "exp")
crwei <- flexsurvreg(Surv(years, status) ~ trans + shape(trans),
data = bosms3, dist = "weibull")
cfwei <- flexsurvreg(Surv(Tstart, Tstop, status) ~ trans + shape(trans),
data = bosms3, dist = "weibull")
## ---------------------------------------------------------
crcox <- coxph(Surv(years, status) ~ strata(trans), data = bosms3)
cfcox <- coxph(Surv(Tstart, Tstop, status) ~ strata(trans), data = bosms3)
## ---------------------------------------------------------
mod_nobos_bos <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==1),
data = bosms3, dist = "weibull")
mod_nobos_death <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==2),
data = bosms3, dist = "weibull")
mod_bos_death <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==3),
data = bosms3, dist = "weibull")
## ---------------------------------------------------------
tmat <- rbind(c(NA, 1, 2), c(NA, NA, 3), c(NA, NA, NA))
crfs <- fmsm(mod_nobos_bos, mod_nobos_death, mod_bos_death, trans = tmat)
## ---------------------------------------------------------
require("mstate")
mrcox <- msfit(crcox, trans = tmat)
mfcox <- msfit(cfcox, trans = tmat)
## ---------------------------------------------------------
tgrid <- seq(0, 14, by = 0.1)
mrwei <- msfit.flexsurvreg(crwei, t = tgrid, trans = tmat)
mrexp <- msfit.flexsurvreg(crexp, t = tgrid, trans = tmat)
mfwei <- msfit.flexsurvreg(cfwei, t = tgrid, trans = tmat)
## ----cumhaz,include=FALSE---------------------------------
cols <- c("black", "#E495A5", "#86B875", "#7DB0DD") # colorspace::rainbow_hcl(3)
plot(mrcox, xlab = "Years after baseline", lwd = 3, xlim = c(0, 14), cols = cols[1:3])
for (i in 1:3){
lines(tgrid, mrexp$Haz$Haz[mrexp$Haz$trans == i], col = cols[i], lty = 2, lwd = 2)
lines(tgrid, mrwei$Haz$Haz[mrwei$Haz$trans == i], col = cols[i], lty = 3, lwd = 2)
}
lines(mfcox$Haz$time[mfcox$Haz$trans == 3], mfcox$Haz$Haz[mfcox$Haz$trans == 3],
type = "s", col = cols[4], lty = 1, lwd = 2)
lines(tgrid, mfwei$Haz$Haz[mfwei$Haz$trans == 3], col = cols[4], lty = 3, lwd = 2)
legend("topleft", inset = c(0, 0.2), lwd = 2, col = cols[4],
c("2 -> 3 (clock-forward)"), bty = "n")
legend("topleft", inset = c(0, 0.3), c("Non-parametric", "Exponential", "Weibull"),
lty = c(1, 2, 3), lwd = c(3, 2, 2), bty = "n")
## ---------------------------------------------------------
pmatrix.fs(cfwei, t = c(5, 10), trans = tmat)
## ----eval=FALSE-------------------------------------------
# pmatrix.simfs(crwei, trans = tmat, t = 5)
# pmatrix.simfs(crwei, trans = tmat, t = 10)
## ---------------------------------------------------------
ptc <- probtrans(mfcox, predt = 0, direction = "forward")[[1]]
round(ptc[c(165, 193),], 3)
## ---------------------------------------------------------
ptw <- probtrans(mfwei, predt = 0, direction = "forward")[[1]]
round(ptw[ptw$time %in% c(5, 10),], 3)
## ----eval=FALSE-------------------------------------------
# mssample(mrcox$Haz, trans = tmat, clock = "reset", M = 1000,
# tvec = c(5, 10))
# mssample(mrwei$Haz, trans = tmat, clock = "reset", M = 1000,
# tvec = c(5, 10))
## ---------------------------------------------------------
tmat_nobos <- rbind("No BOS"=c(NA,1,2),
"BOS"=c(NA,NA,NA),"Death"=c(NA,NA,NA))
crfs_nobos <- fmsm(mod_nobos_bos, mod_nobos_death, trans = tmat_nobos)
pmatrix.fs(crfs_nobos, from=1, t=100000)["No BOS",c("BOS","Death")]
## ---------------------------------------------------------
modexp_nobos_bos <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==1),
data = bosms3, dist = "exponential")
modexp_nobos_death <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==2),
data = bosms3, dist = "exponential")
crfs_nobos <- fmsm(modexp_nobos_bos, modexp_nobos_death, trans=tmat_nobos)
pmatrix.fs(crfs_nobos, from=1, t=100000)["No BOS",c("BOS","Death")]
rate12 <- modexp_nobos_bos$res["rate","est"]
rate13 <- modexp_nobos_death$res["rate","est"]
rate12 / (rate12 + rate13)
## ---------------------------------------------------------
crfs_nobos <- fmsm(mod_nobos_bos, mod_nobos_death, trans = tmat_nobos)
simfinal_fmsm(crfs_nobos, probs = c(0.25, 0.5, 0.75), M=10000)
## ---------------------------------------------------------
simfinal_fmsm(crfs, probs = c(0.25, 0.5, 0.75), M=10000)
## ---------------------------------------------------------
bosms3[bosms3$id %in% c(4,5),]
bosmx3 <- bosms3
bosmx3$Tstart <- bosmx3$Tstop <- bosmx3$trans <- NULL
bosmx3 <- bosmx3[!(bosmx3$status==0 & duplicated(paste(bosmx3$id, bosmx3$from))),]
bosmx3$event <- ifelse(bosmx3$status==0, NA, bosmx3$to)
bosmx3$event <- factor(bosmx3$event, labels=c("BOS","Death"))
bosmx3$to <- NULL
bosmx3[bosmx3$id %in% c(4,5),]
## ---------------------------------------------------------
bosfs <- flexsurvmix(Surv(years, status) ~ 1, event=event,
data=bosmx3[bosmx3$from==1,],
dists = c(BOS="weibull", Death="exponential"))
bosfs
## ---------------------------------------------------------
set.seed(1)
bosmx3$x <- rnorm(nrow(bosmx3),0,1)
bosfsp <- flexsurvmix(Surv(years, status) ~ 1, event=event,
data=bosmx3[bosmx3$from==1,],
dists = c(BOS="weibull", Death="exponential"),
pformula = ~ x)
bosfsp
## ---------------------------------------------------------
bosfst <- flexsurvmix(Surv(years, status) ~ x, event=event,
data=bosmx3[bosmx3$from==1,],
dists = c(BOS="weibull", Death="exponential"))
## ---------------------------------------------------------
flexsurvmix(list(Surv(years, status) ~ x,
Surv(years, status) ~ 1),
event=event, data=bosmx3[bosmx3$from==1,],
dists = c(BOS="weibull", Death="exponential"))
## ---------------------------------------------------------
flexsurvmix(Surv(years, status) ~ 1,
event=event, data=bosmx3[bosmx3$from==1,],
dists = c(BOS="weibull", Death="exponential"),
anc = list(BOS=list(shape=~x),
Death=list(rate=~1)))
## ---------------------------------------------------------
nd <- data.frame(x=c(0,1))
probs_flexsurvmix(bosfsp, newdata=nd, B=50)
## ---------------------------------------------------------
mean_flexsurvmix(bosfst, newdata=nd)
quantile_flexsurvmix(bosfst, B=50, newdata=nd, probs=c(0.25, 0.5, 0.75))
## ---------------------------------------------------------
p_flexsurvmix(bosfst, t=c(5, 10), B=10, startname="No BOS")
## ---------------------------------------------------------
bdat <- bosmx3[bosmx3$from==2,]
bdat$event <- factor(bdat$event)
bosfst_bos <- flexsurvmix(Surv(years, status) ~ x, event=event, data=bdat,
dists = c(Death="exponential"))
bosfmix <- fmixmsm("No BOS"=bosfst, "BOS"=bosfst_bos)
## ---------------------------------------------------------
ppath_fmixmsm(bosfmix, B=20)
ppath_fmixmsm(bosfmix, B=20, final=TRUE)
## ---------------------------------------------------------
meanfinal_fmixmsm(bosfmix, B=10)
qfinal_fmixmsm(bosfmix, B=10)
meanfinal_fmixmsm(bosfmix, B=10, final=TRUE)
## ----fig.height=3-----------------------------------------
aj <- ajfit_flexsurvmix(bosfs, start="No BOS")
bosfs_bos <- flexsurvmix(Surv(years, status) ~ 1, event=event, data=bdat,
dists = c(Death="exponential"))
aj2 <- ajfit_flexsurvmix(bosfs_bos, start="BOS")
library(ggplot2)
ggplot(aj, aes(x=time, y=val, lty=model, col=state)) +
geom_line() +
xlab("Years after transplant") + ylab("Probability of having moved to state")
ggplot(aj2, aes(x=time, y=val, lty=model, col=state)) +
xlab("Years after transplant") + ylab("Probability of having moved to state") +
geom_line()
## ----message=FALSE----------------------------------------
library(dplyr)
aj3 <- ajfit_fmsm(crfs_nobos) %>%
filter(model=="Parametric") %>%
mutate(model = "Cause specific hazards") %>%
mutate(state = factor(state, labels=c("No BOS","BOS","Death"))) %>%
full_join(aj)
ggplot(aj3, aes(x=time, y=val, lty=model, col=state)) +
xlab("Years after transplant") + ylab("Probability of having moved to state") +
geom_line()
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.