The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
unsurv provides tools for unsupervised clustering of
individualized survival curves using a medoid-based (PAM)
algorithm. It is designed for applications where each observation is
represented by a full survival probability trajectory over time, such
as:
The package provides:
install.packages("remotes")
remotes::install_github("ielbadisy/unsurv")install.packages("unsurv")The core function is:
unsurv()which clusters survival curves represented as an n × m
matrix:
library(unsurv)
set.seed(123)
n <- 100
Q <- 50
times <- seq(0, 5, length.out = Q)
rates <- c(0.2, 0.5, 0.9)
group <- sample(1:3, n, TRUE)
S <- sapply(times, function(t)
exp(-rates[group] * t)
)
S <- S + matrix(rnorm(n * Q, 0, 0.01), nrow = n)
S[S < 0] <- 0
S[S > 1] <- 1
fit <- unsurv(S, times, K = NULL, K_max = 6)
fit
#> unsurv (PAM) fit
#> K:3
#> distance:L2 silhouette_mean:0.915
#> n:100 Q:50plot(fit)
Each line represents the medoid survival curve for a cluster.
predict(fit, S[1:5, ])
#> [1] 1 1 1 2 1Cluster stability can be evaluated using resampling:
stab <- unsurv_stability(
S, times, fit,
B = 20,
frac = 0.7,
mode = "subsample"
)
stab$mean
#> [1] 0.9384743Higher values indicate more stable clustering.
library(ggplot2)
library(unsurv)
autoplot(fit)
Given survival curves:
\[ S_i(t_1), S_i(t_2), \dots, S_i(t_m) \]
the algorithm:
Cluster medoids represent prototype survival profiles.
fit <- unsurv(S, times)
clusters <- fit$clusters
pred <- predict(fit, new_S)
stab <- unsurv_stability(S, times, fit)A full walkthrough (simulation, fitting, visualization, prediction, stability) is available in the vignette:
vignette("unsurv-intro", package = "unsurv")unsurv is useful for:
Unlike clustering on covariates, unsurv clusters on the survival function itself, enabling:
Core functions:
| Function | Description |
|---|---|
| unsurv | fit clustering model |
| predict | assign new curves |
| plot | visualize medoids |
| summary | summarize clustering |
| unsurv_stability | evaluate stability |
| autoplot | ggplot visualization |
If you use unsurv, please cite:
citation("unsurv")
#> To cite package 'unsurv' in publications use:
#>
#> EL BADISY I (2026). _unsurv: Unsupervised Clustering of
#> Individualized Survival Curves_. R package version 0.1.0.
#>
#> A BibTeX entry for LaTeX users is
#>
#> @Manual{,
#> title = {unsurv: Unsupervised Clustering of Individualized Survival Curves},
#> author = {Imad {EL BADISY}},
#> year = {2026},
#> note = {R package version 0.1.0},
#> }Stable core implementation
Full test suite
CRAN submission ready
GitHub: https://github.com/ielbadisy/unsurv
MIT License © Imad EL BADISY
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.