mcpField
L
lifelines

lifelines

github.com/tondevrel数据与数据库2458 次安装39 周前更新
代码仓库

关于 lifelines

lifelines 是用于生存和事件发生时间分析的 Python 库,适合临床研究者与流行病学研究者。它能处理删失数据,并提供生存估计与回归方法,用于比较结局和研究风险因素。

主要功能

  1. 01Kaplan-Meier 生存估计
  2. 02Cox 比例风险回归
  3. 03Log-rank 组间比较
  4. 04参数生存模型
  5. 05处理删失数据

适用场景

  1. 01比较临床试验组的生存情况
  2. 02估计疾病进展时间
  3. 03研究患者结局的风险因素
  4. 04分析感染或康复所需时间

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/tondevrel/scientific-agent-skills --skill lifelines

安装后在 Claude Code 中输入/lifelines确认已加载。

详细介绍

Lifelines - 生存分析

在医学领域,我们经常关注“事件发生时间”(死亡、康复、复发)。Lifelines 可处理“删失”数据的复杂性(例如离开研究的患者)。

适用场景

  • 分析临床试验数据(死亡时间、疾病进展时间)。
  • 比较不同治疗组的生存情况。
  • 使用 Cox 比例风险回归识别风险因素。
  • 构建用于预后的生存模型。
  • 开展流行病学研究(感染时间、康复时间)。

核心原则

删失

如果研究结束时患者尚未发生目标事件,则其数据为“删失”数据。Lifelines 会对其进行恰当处理。

风险比

在 Cox 回归中,风险比 > 1 表示风险增加;< 1 表示风险降低。

生存曲线

Kaplan-Meier 方法无需假设数据分布,即可估算随时间变化的生存概率。

快速参考

常用导入语句
from lifelines import KaplanMeierFitter, CoxPHFitter
from lifelines.statistics import logrank_test
import pandas as pd
基本模式
# 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])

关键规则

✅ 应做事项
  • 正确使用 event_observed - 1 = 事件已发生,0 = 数据已删失。
  • 检查比例风险假设 - 使用 cph.check_assumptions() 验证 Cox 模型。
  • 使用 logrank 检验比较组别 - 该统计检验用于比较生存曲线的差异。
  • 绘制置信区间 - 生存估算存在不确定性,样本较小时尤为明显。
❌ 不应做事项
  • 不要忽略删失数据 - 将删失患者视为“存活”会导致结果偏倚。
  • 不要使用普通回归 - 生存时间数据需要专门的方法。
  • 不要假设比例风险成立 - 如果该假设不成立,请使用分层 Cox 模型或参数模型。

高级模式

比较多个组别
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)
参数模型
from lifelines import WeibullFitter, ExponentialFitter

# When you need to extrapolate beyond observed data
wf = WeibullFitter()
wf.fit(df['days'], df['died'])
wf.plot()

Lifelines 可将复杂的生存数据转化为可执行的医学洞见,助力临床研究与实践中的循证决策。

评论

支持 Markdown