如何解决如何将pandas数据框读入kaplan meier曲线?
我正在尝试复制图 1 here 中的 Kaplan Meier 表。图为:
这是我写的代码:
# Python code to create the above Kaplan Meier curve
from lifelines import KaplanMeierFitter
import pandas as pd
df = pd.DataFrame({
'T':[0,2.5,4,5,6,6],'E':[0,1,0],})
## create a kmf object
kmf = KaplanMeierFitter()
## Fit the data into the model
kmf.fit(df['T'],df['E'],label='Kaplan Meier Estimate')
## Create an estimate
kmf.plot(ci_show=False)
我的输出图不同(见比例):
当我打印生存函数时,它是不同的:
Kaplan Meier Estimate
timeline
0.0 1.0000
2.5 0.9375
4.0 0.7500
5.0 0.6000
6.0 0.6000
我想我没有正确地将数据转换为数据帧(可能?)。我试图弄乱数据帧,将 1 事件添加到时间帧的开始和结束,但这并不重要。有人可以告诉我如何复制我正在尝试处理的示例吗?
解决方法
@Arne 的评论是正确的。有 6 个主题,因此 T
和 E
向量中应该只有 6 个元素。回想一下,这些向量的每个元素都是一个主题。 T
表示该对象被观察了多长时间,而 E
表示该对象的“死亡”是否被观察到。
有点相关,您可以使用生命线库中的实用函数将生存表转换为 T、E 向量:
from lifelines.utils import survival_events_from_table
df = pd.DataFrame([
{"observed": 1,"censored": 0,"time": 2.5},{"observed": 2,"time": 4.},{"observed": 1,"time": 5.},{"observed": 0,"censored": 2,"time": 6.},])
df = df.set_index("time")
T,E,W = survival_events_from_table(df)
kmf = KaplanMeierFitter().fit(T,weights=W)
kmf.plot()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。