# NOT RUN {
if (requireNamespace("splines", quietly = TRUE)) {
data("simdat") # from casebase package
library(splines)
simdat <- transform(simdat[sample(1:nrow(simdat), size = 200),],
treat = factor(trt, levels = 0:1,
labels = c("control","treatment")))
fit_numeric_exposure <- fitSmoothHazard(status ~ trt*bs(eventtime),
data = simdat,
ratio = 1,
time = "eventtime")
fit_factor_exposure <- fitSmoothHazard(status ~ treat*bs(eventtime),
data = simdat,
ratio = 1,
time = "eventtime")
newtime <- quantile(fit_factor_exposure[["data"]][[fit_factor_exposure[["timeVar"]]]],
probs = seq(0.05, 0.95, 0.01))
par(mfrow = c(1,3))
plot(fit_numeric_exposure,
type = "hr",
newdata = data.frame(trt = 0, eventtime = newtime),
exposed = function(data) transform(data, trt = 1),
xvar = "eventtime",
ci = TRUE)
#by default this will increment `var` by 1 for exposed category
plot(fit_factor_exposure,
type = "hr",
newdata = data.frame(treat = factor("control",
levels = c("control","treatment")), eventtime = newtime),
var = "treat",
increment = 1,
xvar = "eventtime",
ci = TRUE,
ci.col = "lightblue",
xlab = "Time",
main = "Hazard Ratio for Treatment",
ylab = "Hazard Ratio",
lty = 5,
lwd = 7,
rug = TRUE)
# we can also decrement `var` by 1 to give hazard ratio for control/treatment
result <- plot(fit_factor_exposure,
type = "hr",
newdata = data.frame(treat = factor("treatment",
levels = c("control","treatment")),
eventtime = newtime),
var = "treat",
increment = -1,
xvar = "eventtime",
ci = TRUE)
# see data used to create plot
head(result)
}
# }
Run the code above in your browser using DataLab