survclustcurves: Clustering multiple survival curves

View source: R/survclustcurves.R

survclustcurvesR Documentation

Clustering multiple survival curves

Description

Function for grouping survival curves based on the k-means or k-medians algorithm. It returns the number of groups and the assignment.

Usage

survclustcurves(
  time,
  status = NULL,
  x,
  kvector = NULL,
  kbin = 50,
  method = "LR",
  nboot = 100,
  algorithm = "kmeans",
  alpha = 0.05,
  cluster = FALSE,
  ncores = NULL,
  seed = NULL,
  multiple.method = "bonferroni"
)

Arguments

time

Survival time.

status

Censoring indicator of the survival time of the process; 0 if the total time is censored and 1 otherwise.

x

Categorical variable indicating the population to which the observations belongs.

kvector

A vector specifying the number of groups of curves to be checking.

kbin

Size of the grid over which the survival functions are to be estimated.

method

Testing procedure used for obtain the number of groups. Default is "LR" Possible values are one of: - "LR": Regular Log-Rank test, sensitive to detect late differences. - "GB": Gehan-Breslow (generalized Wilcoxon), detect early differences. - "TW": Tarone-Ware, detect early differences. - "PP": Peto-Peto's modified survival estimate, more robust than Tharone-Ware or Gehan-Breslow, detect early differences - "mPP": modified Peto-Peto (by Andersen) - "FH": Fleming-Harrington (p = 1, q = 1) - "bootstrap": Villanueva, Sestelo & Meira-Machado bootstrap procedure.

nboot

Number of bootstrap repeats.Only for bootstrap method.

algorithm

A character string specifying which clustering algorithm is used, i.e., k-means("kmeans") or k-medians ("kmedians").

alpha

Significance level of the testing procedure. Defaults to 0.05.

cluster

A logical value. If FALSE (default), the bootstrap testing procedure is parallelized. Note that there are cases (e.g., a low number of bootstrap repetitions) that R will gain in performance through serial computation. R takes time to distribute tasks across the processors also it will need time for binding them all together later on. Therefore, if the time for distributing and gathering pieces together is greater than the time need for single-thread computing, it does not worth parallelize.

ncores

An integer value specifying the number of cores to be used in the parallelized procedure. If NULL (default), the number of cores to be used is equal to the number of cores of the machine - 1.

seed

Seed to be used in the procedure.

multiple.method

Correction for multiple comparisons. See Details. Not used in the case of the bootstrap method.

Details

The adjustment methods include the Bonferroni correction ("bonferroni") in which the p-values are multiplied by the number of comparisons. Less conservative corrections are also included by Holm (1979) ('holm'), Hochberg (1988) ('hochberg'), Hommel (1988) ('hommel'), Benjamini & Hochberg (1995) ('BH' or its alias 'fdr'), and Benjamini & Yekutieli (2001) ('BY'), respectively.

This correction is not applied in the bootstrap method.

Value

A list containing the following items:

table

A data frame containing the null hypothesis tested, the values of the test statistic and the obtained pvalues.

levels

Original levels of the variable x.

cluster

A vector of integers (from 1:k) indicating the cluster to which each curve is allocated.

centers

An object containing the centroids (mean of the curves pertaining to the same group).

curves

An object containing the fitted curves for each population.

Author(s)

Nora M. Villanueva and Marta Sestelo.

Examples

library(clustcurv)
library(survival)
data(veteran)

# Survival framework
res <- survclustcurves(time = veteran$time, status = veteran$status,
x = veteran$celltype, algorithm = 'kmeans', nboot = 2)


clustcurv documentation built on Nov. 15, 2025, 1:07 a.m.