Извлеките сводку данных из cox.print_summary () - PullRequest
0 голосов
/ 09 мая 2019

Я хочу первые 6 строк print_summary вывода. Как мне это сделать?

У меня есть полное резюме от cox.print_summary(). cox.summary() дает подробности столбца I в формате фрейма данных, но индексирование сводки не дает сводки цензора набора данных

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' не может быть подписан

1 Ответ

0 голосов
/ 02 июня 2019

большинство из них - свойства модели, к которым можно получить прямой доступ.Глядя на код, 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...