从 cox.print_summary() 中提取数据摘要
Extract the data summary from cox.print_summary()
我想要 print_summary
输出的前 6 行。我该怎么做?
我有 cox.print_summary()
的完整摘要。
cox.summary()
给出了数据框格式的列详细信息,但是索引摘要并没有给出数据集审查摘要
cph = CoxPHFitter()
cph.fit(self.data_train, duration_col='time', event_col='dead')
cph.print_summary()
'''<lifelines.CoxPHFitter: fitted with 6373 observations, 1974 censored>
duration col = 'time'
event col = 'dead'
number of subjects = 6373
number of events = 4399
log-likelihood = -34779.52
time fit was run = 2019-05-09 06:28:06 UTC
---
coef exp(coef) se(coef) z p -log2(p) lower 0.95 upper 0.95
dzgroupCHF 0.49 1.64 0.06 8.19 <0.005 51.79 0.37 0.61
dzgroupCirrhosis 0.55 1.73 0.08 6.71 <0.005 35.63 0.39 0.71
等等
results = self.cph.summary
print(results.head())
这给出了 df 格式的变量详细信息。但我想要:
'''<lifelines.CoxPHFitter: fitted with 6373 observations, 1974 censored>
duration col = 'time'
event col = 'dead'
number of subjects = 6373
number of events = 4399
log-likelihood = -34779.52
time fit was run = 2019-05-09 06:28:06 UTC
索引给出错误:
cph.print_summary()[0:9]
TypeError: 'NoneType' object is not subscriptable
其中大部分是可以直接访问的模型属性。查看代码,print_summary 看起来像:
print(self)
print("{} = '{}'".format(justify("duration col"), self.duration_col))
if self.event_col:
print("{} = '{}'".format(justify("event col"), self.event_col))
if self.weights_col:
print("{} = '{}'".format(justify("weights col"), self.weights_col))
if self.cluster_col:
print("{} = '{}'".format(justify("cluster col"), self.cluster_col))
if self.robust or self.cluster_col:
print("{} = {}".format(justify("robust variance"), True))
if self.strata:
print("{} = {}".format(justify("strata"), self.strata))
if self.penalizer > 0:
print("{} = {}".format(justify("penalizer"), self.penalizer))
print("{} = {}".format(justify("number of subjects"), self._n_examples))
print("{} = {}".format(justify("number of events"), self.event_observed.sum()))
print("{} = {:.{prec}f}".format(justify("partial log-likelihood"), self._log_likelihood, prec=decimals))
print("{} = {}".format(justify("time fit was run"), self._time_fit_was_called))
因此可以使用 self._log_likelihood
或 self._n_examples
等访问所需的值。
有一些未来的工作可能会使提取此数据更容易:https://github.com/CamDavidsonPilon/lifelines/issues/721#issuecomment-497180538
我想要 print_summary
输出的前 6 行。我该怎么做?
我有 cox.print_summary()
的完整摘要。
cox.summary()
给出了数据框格式的列详细信息,但是索引摘要并没有给出数据集审查摘要
cph = CoxPHFitter()
cph.fit(self.data_train, duration_col='time', event_col='dead')
cph.print_summary()
'''<lifelines.CoxPHFitter: fitted with 6373 observations, 1974 censored>
duration col = 'time'
event col = 'dead'
number of subjects = 6373
number of events = 4399
log-likelihood = -34779.52
time fit was run = 2019-05-09 06:28:06 UTC
---
coef exp(coef) se(coef) z p -log2(p) lower 0.95 upper 0.95
dzgroupCHF 0.49 1.64 0.06 8.19 <0.005 51.79 0.37 0.61
dzgroupCirrhosis 0.55 1.73 0.08 6.71 <0.005 35.63 0.39 0.71
等等
results = self.cph.summary
print(results.head())
这给出了 df 格式的变量详细信息。但我想要:
'''<lifelines.CoxPHFitter: fitted with 6373 observations, 1974 censored>
duration col = 'time'
event col = 'dead'
number of subjects = 6373
number of events = 4399
log-likelihood = -34779.52
time fit was run = 2019-05-09 06:28:06 UTC
索引给出错误:
cph.print_summary()[0:9]
TypeError: 'NoneType' object is not subscriptable
其中大部分是可以直接访问的模型属性。查看代码,print_summary 看起来像:
print(self)
print("{} = '{}'".format(justify("duration col"), self.duration_col))
if self.event_col:
print("{} = '{}'".format(justify("event col"), self.event_col))
if self.weights_col:
print("{} = '{}'".format(justify("weights col"), self.weights_col))
if self.cluster_col:
print("{} = '{}'".format(justify("cluster col"), self.cluster_col))
if self.robust or self.cluster_col:
print("{} = {}".format(justify("robust variance"), True))
if self.strata:
print("{} = {}".format(justify("strata"), self.strata))
if self.penalizer > 0:
print("{} = {}".format(justify("penalizer"), self.penalizer))
print("{} = {}".format(justify("number of subjects"), self._n_examples))
print("{} = {}".format(justify("number of events"), self.event_observed.sum()))
print("{} = {:.{prec}f}".format(justify("partial log-likelihood"), self._log_likelihood, prec=decimals))
print("{} = {}".format(justify("time fit was run"), self._time_fit_was_called))
因此可以使用 self._log_likelihood
或 self._n_examples
等访问所需的值。
有一些未来的工作可能会使提取此数据更容易:https://github.com/CamDavidsonPilon/lifelines/issues/721#issuecomment-497180538