/ehahelper

Helper function for Event history analysis, including tidying functions for coxme

Primary LanguageRMIT LicenseMIT

Event history analysis helper package

Helper functions for event history analysis with the survival package.

Install

Install from GitHub repository.

library(devtools)
install_github('junkka/ehahelper')

Functions

ggsurv

Make a data.frame of a survfit or coxph object for visualization with ggplot2.

library(ehahelper)
library(survival)
library(ggplot2)
surv_object <- coxph(Surv(time, status) ~ strata(x), data = aml)
ggplot(ggsurv(surv_object), aes(time, surv, color=strata)) + geom_step()

gg_zph

ggplot2 implementation for visualizing scaled Schoenfield residuals form a cox.zph object.

bladder1 <- bladder[bladder$enum < 5, ] 
fit <- coxph(Surv(stop, event) ~ (rx + size + number) * strata(enum) + 
          cluster(id), bladder1)
x <- cox.zph(fit, transform = "identity")
gg_zph(x)
## `geom_smooth()` using method = 'loess'

gg_zph(x, log = TRUE)
## `geom_smooth()` using method = 'loess'

coxme tidyer

Convert coxme objects to tidy format.

library(broom)
library(coxme)
fit <- coxme(Surv(y, uncens) ~ trt + (1|center), eortc)
knitr::kable(tidy(fit, exp = T), digits = 3)
term estimate std.error statistic p.value conf.low conf.high
trt 2.031 0.064 11.03 0 1.791 2.304
fit_g <- glance(fit)
knitr::kable(as.data.frame(t(fit_g)), digits = 3)
V1
n 2323.000
events 1463.000
Chisq 236.110
df 2.000
logLik -10478.839
p 0.000
AIC 21015.051
BIC 21166.750
random_n_center 37.000
random_sd_center 0.329
random_variance_center 0.108

coxme augment

Using a coxme model, add fitted values and standard errors to original dataset.

eortc_augmented <- augment(fit, eortc)

knitr::kable(head(eortc_augmented))
y uncens center trt .fitted .se.fit
2 506.1603 1 1 1 0.2037681 0.0184739
3 294.3800 1 1 1 0.2037681 0.0184739
4 383.9152 1 1 0 -0.5048446 0.0457700
5 2441.8338 0 1 0 -0.5048446 0.0457700
6 2442.2923 0 1 0 -0.5048446 0.0457700
7 312.3571 1 1 1 0.2037681 0.0184739

coxme predict

Get predicted vales based on a mixed-effects Cox model, fitted using the coxme package. Extends the standard predict.coxme function by allowing for new data, and by calculating relative risks, either overall or within stratum.

new_data <- data.frame(trt = unique(eortc$trt))

predict_coxme(fit, newdata = new_data, type = "risk")
##         1         2 
## 1.2260138 0.6035994