Plot simulated penalised spline hazards from Cox Proportional Hazards Models
Plot simulated penalised spline hazards from Cox Proportional Hazards Models
simGG.simspline uses ggplot2 to plot quantities of interest from simspline objects, including relative hazards, first differences, hazard ratios, and hazard rates.
## S3 method for class 'simspline'simGG( obj, SmoothSpline =TRUE, FacetTime =NULL, from =NULL, to =NULL, rug =TRUE, rug_position ="identity", xlab =NULL, ylab =NULL, zlab =NULL, title =NULL, method ="auto", lcolour ="#2B8CBE", lsize =1, pcolour ="#A6CEE3", psize =1, alpha =0.2, type ="ribbons",...)
Arguments
obj: a simspline class object
SmoothSpline: logical whether or not to fit the simulations with smoothing splines. Creates a smoother plot. See smooth.spline
for more information. Note: currently the degrees of freedom are set at 10.
FacetTime: a numeric vector of points in time where you would like to plot Hazard Rates in a facet grid. Only relevant if qi == 'Hazard Rate'. Note: the values of Facet Time must exactly match values of the time element of obj.
from: numeric time to start the plot from. Only relevant if qi = "Hazard Rate".
to: numeric time to plot to. Only relevant if qi = "Hazard Rate".
rug: logical indicating whether or not to include a rug plot showing the distribution of values in the sample used to estimate the coxph
model. Only relevant when the quantity of interest is not "Hazard Rate".
rug_position: character string. The position adjustment to use for overlapping points in the rug plot. Use "jitter" to jitter the points.
xlab: a label for the plot's x-axis.
ylab: a label of the plot's y-axis. The default uses the value of qi.
zlab: a label for the plot's z-axis. Only relevant if qi = "Hazard Rate" and FacetTime == NULL.
title: the plot's main title.
method: what type of smoothing method to use to summarize the center of the simulation distribution.
lcolour: character string colour of the smoothing line. The default is hexadecimal colour lcolour = '#2B8CBE'. Only relevant if qi = "Relative Hazard" or qi = "First Difference".
lsize: size of the smoothing line. Default is 1. See ggplot2.
pcolour: character string colour of the simulated points or ribbons (when there are not multiple sets of simulations). Default is hexadecimal colour pcolour = '#A6CEE3'. Only relevant if qi = "Relative Hazard" or qi = "First Difference" or qi = "Hazard Rate" with facets.
psize: size of the plotted simulation points. Default is psize = 1. See ggplot2.
alpha: numeric. Alpha (e.g. transparency) for the points, lines, or ribbons. Default is alpha = 0.2. See ggplot2. Note, if type = "lines" or type = "points" then alpah sets the maximum value per line or point at the center of the distribution. Lines or points further from the center are more transparent the further they get from the middle.
type: character string. Specifies how to plot the simulations. Can be points, lines, or ribbons. If points then each simulation value will be plotted. If lines is chosen then each simulation is plotted using a different line. Note: any simulation with a value along its length that is outside of the specified central interval will be dropped. This is to create a smooth plot. If type = "ribbons"
a plot will be created with shaded areas ('ribbons') for the minimum and maximum simulation values (i.e. the middle interval set with qi in coxsimSpline) as well as the central 50 percent of this area. It also plots a line for the median value of the full area, so values in method are ignored. One of the key advantages of using ribbons rather than points is that it creates plots with smaller file sizes.
...: Additional arguments. (Currently ignored.)
Returns
a ggggplot class object.
Details
Uses ggplot2 to plot the quantities of interest from simspline objects, including relative hazards, first differences, hazard ratios, and hazard rates. If currently does not support hazard rates for multiple strata.
You can to plot hazard rates for a range of values of Xj in two dimensional plots at specific points in time. Each plot is arranged in a facet grid.
Note: A dotted line is created at y = 1 (0 for first difference), i.e. no effect, for time-varying hazard ratio graphs. No line is created for hazard rates.
Examples
# Load Carpenter (2002) datadata("CarpenterFdaData")# Load survival packagelibrary(survival)# Run basic model# From Keele (2010) replication dataM1 <- coxph(Surv(acttime, censor)~ prevgenx + lethal + deathrt1 + acutediz + hosp01 + pspline(hospdisc, df =4)+ pspline(hhosleng, df =4)+ mandiz01 + femdiz01 + peddiz01 + orphdum + natreg + vandavg3 + wpnoavg3 + pspline(condavg3, df =4)+ pspline(orderent, df =4)+ pspline(stafcder, df =4), data = CarpenterFdaData)# Simulate Relative Hazards for orderentSim1 <- coxsimSpline(M1, bspline ="pspline(stafcder, df = 4)", bdata = CarpenterFdaData$stafcder, qi ="Hazard Ratio", Xj = seq(1100,1700, by =10), Xl = seq(1099,1699, by =10), spin =TRUE, nsim =100)# Plot relative hazardsimGG(Sim1, alpha =0.5)## Not run:# Simulate Hazard Rate for orderentSim2 <- coxsimSpline(M1, bspline ="pspline(orderent, df = 4)", bdata = CarpenterFdaData$orderent, qi ="Hazard Rate", Xj = seq(1,30, by =2), ci =0.9, nsim =10)# Create a time grid plot# Find all points in time where baseline hazard was foundunique(Sim2$sims$Time)# Round time values so they can be exactly matched with FacetTimeSim2$sims$Time <- round(Sim2$sims$Time, digits =2)# Create plotsimGG(Sim2, FacetTime = c(6.21,25.68,100.64,202.36), type ='ribbons', alpha =0.5)# Simulated Fitted Values of stafcderSim3 <- coxsimSpline(M1, bspline ="pspline(stafcder, df = 4)", bdata = CarpenterFdaData$stafcder, qi ="Hazard Ratio", Xj = seq(1100,1700, by =10), Xl = seq(1099,1699, by =10), ci =0.90)# Plot simulated Hazard RatiossimGG(Sim3, xlab ="\nFDA Drug Review Staff", type ='lines', alpha =0.2)simGG(Sim3, xlab ="\nFDA Drug Review Staff", alpha =0.2, SmoothSpline =TRUE, type ='points')## End(Not run)
References
Gandrud, Christopher. 2015. simPH: An R Package for Illustrating Estimates from Cox Proportional Hazard Models Including for Interactive and Nonlinear Effects. Journal of Statistical Software. 65(3)1-20.