--- id: tondevrel/scientific-agent-skills/lifelines version: "dd3ff2b5" license: MIT install: manual updated: 2026-02-01 --- # lifelines — Lifelines is a Python survival analysis library built for medical research and epidemiology. It models time-to-event outcomes like disease progression or recovery, properly accounting for censored data from patients who leave studies early. Use it to estimate survival curves, compare treatment groups, and identify risk factors through Cox proportional hazards regression. Publisher: tondevrel · Stars: 19 · Updated: 2026-02-01 Install (manual): `git clone https://github.com/tondevrel/scientific-agent-skills` ## SKILL.md # 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 ```python from lifelines import KaplanMeierFitter, CoxPHFitter from lifelines.statistics import logrank_test import pandas as pd ``` ### Basic Patterns ```python # 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 ```python 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 ```python 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. [View on SkillFed](https://skillfed.io/tondevrel/scientific-agent-skills/lifelines) · [View on GitHub](https://github.com/tondevrel/scientific-agent-skills)