Nothing
## ---- include = FALSE---------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----warning = F, error = T, message = F--------------------------------------
# Development version
#require(devtools)
#devtools::install_github("JulieKFurberg/recurrentpseudo", force = TRUE)
require(recurrentpseudo)
## -----------------------------------------------------------------------------
# Main functions
#?pseudo.onedim
#?pseudo.twodim
#?pseudo.threedim
#?pseudo.geefit
## ----cache = F----------------------------------------------------------------
# Example: Bladder cancer data from survival package
require(survival)
# Make a three level status variable
bladder1$status3 <- ifelse(bladder1$status %in% c(2, 3), 2, bladder1$status)
# Add one extra day for the two patients with start=stop=0
# subset(bladder1, stop <= start)
bladder1[bladder1$id == 1, "stop"] <- 1
bladder1[bladder1$id == 49, "stop"] <- 1
# Restrict the data to placebo and thiotepa
bladdersub <- subset(bladder1, treatment %in% c("placebo", "thiotepa"))
# Make treatment variable two-level factor
bladdersub$Z <- as.factor(ifelse(bladdersub$treatment == "placebo", 0, 1))
levels(bladdersub$Z) <- c("placebo", "thiotepa")
head(bladdersub)
## ----cache = F----------------------------------------------------------------
# Pseudo observations at t = 30
pseudo_bladder_1d <- pseudo.onedim(tstart = bladdersub$start,
tstop = bladdersub$stop,
status = bladdersub$status3,
id = bladdersub$id,
covar_names = "Z",
tk = c(30),
data = bladdersub)
head(pseudo_bladder_1d$outdata)
# GEE fit
fit_bladder_1d <- pseudo.geefit(pseudodata = pseudo_bladder_1d,
covar_names = c("Z"))
fit_bladder_1d
# Treatment differences
xi_diff_1d <- as.matrix(c(fit_bladder_1d$xi[2]), ncol = 1)
mslabels <- c("treat, mu")
rownames(xi_diff_1d) <- mslabels
colnames(xi_diff_1d) <- ""
xi_diff_1d
# Variance matrix for differences
sigma_diff_1d <- matrix(c(fit_bladder_1d$sigma[2,2]),
ncol = 1, nrow = 1,
byrow = T)
rownames(sigma_diff_1d) <- colnames(sigma_diff_1d) <- mslabels
sigma_diff_1d
## ----cache = F----------------------------------------------------------------
# Pseudo observations at t = 30
pseudo_bladder_2d <- pseudo.twodim(tstart = bladdersub$start,
tstop = bladdersub$stop,
status = bladdersub$status3,
id = bladdersub$id,
covar_names = "Z",
tk = c(30),
data = bladdersub)
head(pseudo_bladder_2d$outdata)
# GEE fit
fit_bladder_2d <- pseudo.geefit(pseudodata = pseudo_bladder_2d,
covar_names = c("Z"))
fit_bladder_2d
# Treatment differences
xi_diff_2d <- as.matrix(c(fit_bladder_2d$xi[2],
fit_bladder_2d$xi[4]), ncol = 1)
mslabels <- c("treat, mu", "treat, surv")
rownames(xi_diff_2d) <- mslabels
colnames(xi_diff_2d) <- ""
xi_diff_2d
# Variance matrix for differences
sigma_diff_2d <- matrix(c(fit_bladder_2d$sigma[2,2],
fit_bladder_2d$sigma[2,4],
fit_bladder_2d$sigma[2,4],
fit_bladder_2d$sigma[4,4]),
ncol = 2, nrow = 2,
byrow = T)
rownames(sigma_diff_2d) <- colnames(sigma_diff_2d) <- mslabels
sigma_diff_2d
## ----eval = T-----------------------------------------------------------------
# Add deathtype variable to bladder data
# Deathtype = 1 (bladder disease death), deathtype = 2 (other death reason)
bladdersub$deathtype <- with(bladdersub, ifelse(status == 2, 1, ifelse(status == 3, 2, 0)))
table(bladdersub$deathtype, bladdersub$status)
# Pseudo-observations
pseudo_bladder_3d <- pseudo.threedim(tstart = bladdersub$start,
tstop = bladdersub$stop,
status = bladdersub$status3,
id = bladdersub$id,
deathtype = bladdersub$deathtype,
covar_names = "Z",
tk = c(30),
data = bladdersub)
head(pseudo_bladder_3d$outdata_long)
# GEE fit
fit_bladder_3d <- pseudo.geefit(pseudodata = pseudo_bladder_3d,
covar_names = c("Z"))
fit_bladder_3d
# Treatment differences
xi_diff_3d <- as.matrix(c(fit_bladder_3d$xi[2],
fit_bladder_3d$xi[4],
fit_bladder_3d$xi[6]), ncol = 1)
mslabels <- c("treat, mu", "treat, cif1", "treat, cif2")
rownames(xi_diff_3d) <- mslabels
colnames(xi_diff_3d) <- ""
xi_diff_3d
# Variance matrix for differences
sigma_diff_3d <- matrix(c(fit_bladder_3d$sigma[2,2],
fit_bladder_3d$sigma[2,4],
fit_bladder_3d$sigma[2,6],
fit_bladder_3d$sigma[2,4],
fit_bladder_3d$sigma[4,4],
fit_bladder_3d$sigma[4,6],
fit_bladder_3d$sigma[2,6],
fit_bladder_3d$sigma[4,6],
fit_bladder_3d$sigma[6,6]
),
ncol = 3, nrow = 3,
byrow = T)
rownames(sigma_diff_3d) <- colnames(sigma_diff_3d) <- mslabels
sigma_diff_3d
## ----eval = T-----------------------------------------------------------------
# Compare - should match for mu elements
xi_diff_1d
xi_diff_2d
xi_diff_3d
sigma_diff_1d
sigma_diff_2d
sigma_diff_3d
## ----eval = T-----------------------------------------------------------------
require(dplyr)
## One-dim
# A binary variable, Z1_
# A continuous variable, Z2_
# A categorical variable, Z3_
set.seed(0308)
bladdersub <- as.data.frame(
bladdersub %>% group_by(id) %>%
mutate(Z1_ = Z,
Z2_ = rnorm(1, mean = 3, sd = 1),
Z3_ = sample(x = c("A", "B", "C"),
size = 1, replace = TRUE,
prob = c(1/4, 1/2, 1/4))
))
# head(bladdersub, 20)
# Make pseudo obs at more timepoints (more data)
# Pseudo observations at t = 20, 30, 40
pseudo_bladder_1d_3t <- pseudo.onedim(tstart = bladdersub$start,
tstop = bladdersub$stop,
status = bladdersub$status3,
id = bladdersub$id,
covar_names = c("Z1_", "Z2_", "Z3_"),
tk = c(20, 30, 40),
data = bladdersub)
fit1 <- pseudo.geefit(pseudodata = pseudo_bladder_1d_3t,
covar_names = c("Z1_", "Z2_", "Z3_"))
fit1$xi
fit1$sigma
fit1$xi[4]
## ----eval = T-----------------------------------------------------------------
## Two-dim
# Pseudo observations at t = 20, 30, 40
pseudo_bladder_2d_3t <- pseudo.twodim(tstart = bladdersub$start,
tstop = bladdersub$stop,
status = bladdersub$status3,
id = bladdersub$id,
covar_names = c("Z1_", "Z2_", "Z3_"),
tk = c(20, 30, 40),
data = bladdersub)
fit2 <- pseudo.geefit(pseudodata = pseudo_bladder_2d_3t,
covar_names = c("Z1_", "Z2_", "Z3_"))
# fit2$xi
# fit2$sigma
## Three-dim
pseudo_bladder_3d_3t <- pseudo.threedim(tstart = bladdersub$start,
tstop = bladdersub$stop,
status = bladdersub$status3,
id = bladdersub$id,
covar_names = c("Z1_", "Z2_", "Z3_"),
deathtype = bladdersub$deathtype,
tk = c(20, 30, 40),
data = bladdersub)
fit3 <- pseudo.geefit(pseudodata = pseudo_bladder_3d_3t,
covar_names = c("Z1_", "Z2_", "Z3_"))
# fit3$xi
# fit3$sigma
## Compare for mu
fit1$xi[4]
fit2$xi[4]
fit3$xi[4]
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.