
Lifelines
- 3 installs
- 3.2k repo stars
- Updated August 4, 2026
- brycewang-stanford/awesome-agent-skills-for-empirical-research
lifelines is a Claude skill for survival analysis in Python, covering Kaplan-Meier curves, Cox regression, and right-censored data.
About
This skill guides survival analysis in Python using the lifelines library. A data scientist uses it to fit Kaplan-Meier curves, run Cox proportional-hazards regression, and compare groups with log-rank tests on right-censored data. It is aimed at clinical-trial analysis, epidemiology, and prognosis modeling where time-to-event data must account for censoring.
- Guides survival analysis in Python with the lifelines library
- Covers Kaplan-Meier curves, Cox proportional hazards, and log-rank tests
- Handles right-censored data and hazard-ratio interpretation
Lifelines by the numbers
- 3 all-time installs (skills.sh)
- Ranked #1,661 of 2,064 Data Science & ML skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
lifelines capabilities & compatibility
Free; MIT-licensed Python library.
- Capabilities
- data analysis
- Use cases
- data analysis · research
- Pricing
- Free
What lifelines says it does
Complete survival analysis library in Python. Handles right-censored data, Kaplan-Meier curves, and Cox regression.
In Cox regression, a hazard ratio > 1 means increased risk; < 1 means decreased risk.
npx skills add https://github.com/brycewang-stanford/awesome-agent-skills-for-empirical-research --skill lifelinesAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 3 |
|---|---|
| repo stars | ★ 3.2k |
| Last updated | August 4, 2026 |
| Repository | brycewang-stanford/awesome-agent-skills-for-empirical-research ↗ |
What it does
Run survival analysis in Python on right-censored data using Kaplan-Meier curves and Cox regression.
Who is it for?
Analyzing clinical-trial or epidemiology data where time-to-event and censoring matter.
Skip if: Standard regression on non-time-to-event data or non-Python workflows.
When should I use this skill?
You need to model time to an event and some observations are censored.
What you get
Kaplan-Meier survival curves, Cox hazard ratios, and log-rank group comparisons on censored data.
- Kaplan-Meier survival curves
- Cox regression hazard ratios
- Log-rank test results
By the numbers
- lifelines version 0.28
Files
Lifelines - Survival Analysis
In medicine, we often care about "Time to Event" (death, recovery, relapse). Lifelines handles the complexity of "censored" data (patients who left the study).
When to Use
- Analyzing clinical trial data (time to death, disease progression).
- Comparing survival between treatment groups.
- Identifying risk factors using Cox Proportional Hazards regression.
- Building survival models for prognosis.
- Epidemiology studies (time to infection, recovery).
Core Principles
Censoring
Patients who haven't experienced the event by the end of the study are "censored". Lifelines properly accounts for this.
Hazard Ratios
In Cox regression, a hazard ratio > 1 means increased risk; < 1 means decreased risk.
Survival Curves
Kaplan-Meier estimates the probability of survival over time without assuming a distribution.
Quick Reference
Standard Imports
from lifelines import KaplanMeierFitter, CoxPHFitter
from lifelines.statistics import logrank_test
import pandas as pdBasic Patterns
# 1. Kaplan-Meier (Visualizing survival)
kmf = KaplanMeierFitter()
kmf.fit(durations=df['days'], event_observed=df['died'])
kmf.plot_survival_function()
kmf.median_survival_time_ # Time when 50% have died
# 2. Cox Proportional Hazards (Risk factors)
cph = CoxPHFitter()
cph.fit(df, duration_col='days', event_col='died')
cph.print_summary() # See hazard ratios for age, drug type, etc.
cph.plot_partial_effects_on_outcome(covariates=['age'], values=[30, 50, 70])Critical Rules
✅ DO
- Use event_observed correctly - 1 = event occurred, 0 = censored.
- Check proportional hazards assumption - Use
cph.check_assumptions()to validate Cox model. - Compare groups with logrank test - Statistical test for survival curve differences.
- Plot confidence intervals - Survival estimates have uncertainty, especially with small samples.
❌ DON'T
- Don't ignore censoring - Treating censored patients as "survived" biases results.
- Don't use regular regression - Time-to-event data requires specialized methods.
- Don't assume proportional hazards - If violated, use stratified Cox or parametric models.
Advanced Patterns
Comparing Multiple Groups
from lifelines.statistics import multivariate_logrank_test
# Compare survival across treatment groups
results = multivariate_logrank_test(df['days'], df['group'], df['died'])
print(results.p_value)Parametric Models
from lifelines import WeibullFitter, ExponentialFitter
# When you need to extrapolate beyond observed data
wf = WeibullFitter()
wf.fit(df['days'], df['died'])
wf.plot()Lifelines transforms complex survival data into actionable medical insights, enabling evidence-based decisions in clinical research and practice.
Related skills
FAQ
How does it handle patients who left the study?
It treats them as censored using event_observed, where 1 means the event occurred and 0 means censored.
How do I check the Cox model is valid?
Use cph.check_assumptions() to validate the proportional-hazards assumption.