我正在尝试在 Python 中拟合一些基本的生存模型。问题的症结在于我有大量的观察结果,所以我的数据被分箱了——即每一行都不是一个单一的主题,而是具有共同属性的主题的计数(即相同的协变量,相同的时间观察,相同的观察结果)。 lifelines
包似乎需要逐行观察以适应 Cox 模型。同样,尝试使用 scipy.stats.continuous_rv.fit
拟合 Weibull 曲线会遇到同样的问题。
我在 R 中毫无问题地做到了这一点,因为他们的生存回归包似乎都接受允许此类数据的 weights
向量。当原始数据中只有几千个唯一行时,将我的聚合数据分解成数百万行似乎效率极低。任何指针将不胜感激。
最佳答案
我最终使用 Python 中的 rpy2
包来实际调用 R。
importr('survival')
pandas2ri.activate()
coxph_ = r('coxph')
model = coxph_(Formula("Surv(time, outcome) ~ f1 + f2"), data=df, weights=df.num_in_group)
base = importr('base')
print(base.summary(model))
不是很好,但现在可以完成工作了。我对 好 rpy2
的表现感到惊讶。它具有非常好的 pandas <-> data.frame 互操作性。帮助也很好(rpy2.readthedocs.io)。
关于r - 从聚合数据在 Python 中拟合生存模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42393901/