groupkm function

Kaplan-Meier Estimates vs. a Continuous Variable

Kaplan-Meier Estimates vs. a Continuous Variable

Function to divide x (e.g. age, or predicted survival at time u created by survest) into g quantile groups, get Kaplan-Meier estimates at time u (a scaler), and to return a matrix with columns x=mean x in quantile, n=number of subjects, events=no. events, and KM=K-M survival at time u, std.err = s.e. of -log K-M. Confidence intervals are based on -log S(t). Instead of supplying g, the user can supply the minimum number of subjects to have in the quantile group (m, default=50). If cuts is given (e.g. cuts=c(0,.1,.2,...,.9,.1)), it overrides m and g. Calls Therneau's survfitKM in the survival

package to get Kaplan-Meiers estimates and standard errors.

groupkm(x, Srv, m=50, g, cuts, u, pl=FALSE, loglog=FALSE, conf.int=.95, xlab, ylab, lty=1, add=FALSE, cex.subtitle=.7, ...)

Arguments

  • x: variable to stratify

  • Srv: a Surv object - n x 2 matrix containing survival time and event/censoring 1/0 indicator. Units of measurement come from the "units" attribute of the survival time variable. "Day" is the default.

  • m: desired minimum number of observations in a group

  • g: number of quantile groups

  • cuts: actual cuts in x, e.g. c(0,1,2) to use [0,1), [1,2].

  • u: time for which to estimate survival

  • pl: TRUE to plot results

  • loglog: set to TRUE to plot log(-log(survival)) instead of survival

  • conf.int: defaults to .95 for 0.95 confidence bars. Set to FALSE to suppress bars.

  • xlab: if pl=TRUE, is x-axis label. Default is label(x) or name of calling argument

  • ylab: if pl=TRUE, is y-axis label. Default is constructed from u and time units

    attribute.

  • lty: line time for primary line connecting estimates

  • add: set to TRUE if adding to an existing plot

  • cex.subtitle: character size for subtitle. Default is .7. Use FALSE to suppress subtitle.

  • ...: plotting parameters to pass to the plot and errbar functions

Returns

matrix with columns named x (mean predictor value in interval), n (sample size in interval), events (number of events in interval), KM (Kaplan-Meier estimate), std.err (standard error of -log KM)

See Also

survfit, errbar, cut2, Surv, units

Examples

require(survival) n <- 1000 set.seed(731) age <- 50 + 12*rnorm(n) cens <- 15*runif(n) h <- .02*exp(.04*(age-50)) d.time <- -log(runif(n))/h label(d.time) <- 'Follow-up Time' e <- ifelse(d.time <= cens,1,0) d.time <- pmin(d.time, cens) units(d.time) <- "Year" groupkm(age, Surv(d.time, e), g=10, u=5, pl=TRUE) #Plot 5-year K-M survival estimates and 0.95 confidence bars by #decile of age. If omit g=10, will have >= 50 obs./group.
  • Maintainer: Frank E Harrell Jr
  • License: GPL (>= 2)
  • Last published: 2025-01-17