[ANN] SurvivalAnalysis.jl

Very happy to announce my first Julia package SurvivalAnalysis.jl v0.1.0! (See original tweet announcement here).

The package implements features for survival analysis (AKA: time-to-event modelling, reliability analysis, duration analysis, churn analysis, and more). The goal of the package is to include a comprehensive interface for baseline requirements to run different types of analysis, including inference and prediction. I am still deciding how best to grow the package and welcome feedback and discussion here.

Currently included in the package:

  • Non-parametric estimators (Kaplan-Meier and Nelson-Aalen) and plotting for these
  • Parametric models (PH and AFT) for Exponential and Weibull distributions
  • Discrete and continuous survival prediction objects, including distribution, linear predictor and general risk return types
  • Surv object for unified censoring indicator (functionality for left, right, interval)
  • Extended formula interface for survival objects

Planned:

34 Likes

This is a great addition to the ecosystem!

4 Likes

Awesome stuff. This is a critical package for a lot of statisticians and experts doing research in non-mathematical domains.

3 Likes

This is fantastic and by coincidence, I just finished reading your paper Flexible Group Fairness Metrics for Survival Analysis today and was curious what the state of the art in Julia is for survival analysis. This is my answer - amazing work! Do you intend on integrating this with Fairness.jl?

Cheers and great work! Excited to see where it all goes. :smile:

~ tcp :deciduous_tree:

4 Likes

Funnily enough I work with the creator of that repo but wasn’t aware it existed! Will chat with them and see what we can do :slight_smile: Hope you enjoyed the paper!

2 Likes

Great to see more options for survival analysis in the community, thank you! Could you comment on the differences and commonalities between this package and Survival.jl

2 Likes

Absolutely. In terms of implementation, Survival.jl includes Kaplan-Meier and Nelson-Aalen estimators, Cox PH, and an object for right-censoring, in contrast SurvivalAnalysis.jl includes everything above. Our implementations for the estimators are pretty similar, though I noticed some inconsistencies in accuracy of outputs. My Surv object is slightly slower in construction than the EventTime object in Survival.jl, but that’s due to a lot of computation occurring in construction of my object, which then cuts runtime in models and measures later on. I’ve spoken with Alex Arslan about missing features in my package, and will copy their implementation of Cox PH (probably today) so that features in Survival.jl will be a subset of SurvivalAnalysis.jl.

3 Likes

Thanks for taking the initiative. We would like to contribute to your project. How can we contribute to your project?

Hey, great to hear you want to contribute. I’m happy to chat in a GitHub discussion or issue, or on the Julia Slack, or setup a call, what’s your preference?

I’ll add a contributor guidelines file soon to streamline this in the future

Hi Raphael:

Thanks for such a quick response. It would be great if we could have a call and discuss how we can collaborate, and then we can put our discussion from the call on the GitHub issue and agree to what to develop, then develop the code and make PR.

We are a small group working on developing some packages in Julia and trying to contribute to Julia’s ecosystem. You can find about us here:

Thanks and regards,
Sourish

2 Likes