Інструменти аналізу виживання в Python [закрито]


46

Мені цікаво, чи є пакети для python, який здатний виконувати аналіз виживання. Я використовував пакет виживання в R, але хотів би перенести свою роботу на python.


11
Використовуйте Rpy для виклику R з Python ;-)

2
Надзвичайно сумнівно, що розробники Python для аналізу виживання доклали зусиль де-небудь поблизу того, що Террі Терно та інші вклали в пакет виживання R за останні 30 років, включаючи широкі тестування. Пакет виживання проходить найжорсткіші процедури тестування, які я бачив у статистиці.
Френк Харрелл

2
Домовились. survivalПакет R знаходиться під ретельним наглядом великої громади.
Marc Claesen

На мій досвід RPY (2 зараз) дуже болісно встановлювати.
Жубарб

Відповіді:


21

AFAIK, в python не існує жодного пакету аналізу виживання. Як зазначає mbq вище, єдиним доступним маршрутом був би Rpy .

Навіть якби був доступний чистий пакет python, я був би дуже обережний у його використанні, зокрема, я би звернув увагу на:

  • Як часто воно оновлюється.
  • Чи має велику базу користувачів?
  • Чи є в ньому передові методики?

Однією з переваг R є те, що ці стандартні пакети отримують величезну кількість тестування та зворотного зв’язку користувачів. У роботі з реальними даними можуть виникнути несподівані крайові випадки.


6
За останні 5 років багато чого змінилося (на краще) для Python. Vide відповідь на Cam.Davidson.Pilon на Lifelines .
Пьотр Мігдал

69

Ознайомтеся з проектом f життєвих ресурсів для простої та чистої реалізації моделей виживання на Python, у тому числі

  • Оцінювачі функцій виживання
  • Оцінювачі кривих сукупної небезпеки
  • Модель пропорційної регресії небезпеки Кокса
  • Модель регресії, що відрізняється часом Кокса
  • параметричні моделі AFT
  • Модель адитивної регресії Алена
  • Багатовимірне тестування

Переваги:

  • побудований на вершині Панди
  • чистий Python та простий в установці
  • вбудовані в графічні функції
  • простий інтерфейс

Документація доступна тут: документація та приклади

Приклад використання:

from lifelines import KaplanMeierFitter

survival_times = np.array([0., 3., 4.5, 10., 1.])
events = np.array([False, True, True, False, True])

kmf = KaplanMeierFitter()
kmf.fit(survival_times, event_observed=events)

print(kmf.survival_function_)
print(kmf.median_)
kmf.plot()

Приклади графіків із вбудованої бібліотеки графіків:

введіть тут опис зображення

  1. Відмова: Я головний автор. Пишіть мені (електронною поштою у профілі) для запитань або відгуків про життєві лінії .

14
(+1) Досить розумне ім'я для пакету виживання.
Marc Claesen

8

python-asurv - це спроба перенести програмне забезпечення asurv для методів виживання в астрономії. Можливо, варто стежити за тим, але cgillespie має рацію щодо того, на що слід стежити: у нього ще довгий шлях, і розвиток не здається активним. (AFAICT існує лише один метод, і навіть він завершений, пакет може бракувати, скажімо, для біостатистів.)

Вам, мабуть, краще використовувати пакет виживання в R від Python через щось на зразок RPy або PypeR . У мене не було ніяких проблем робити це сам.


7

PyIMSL містить декілька процедур для аналізу виживання. Це безкоштовно як у пиві для некомерційного використання, повністю підтримується інакше. З документації в Посібнику користувача статистики ...

Обчислює оцінку ймовірностей виживання Каплана-Мейєра: kaplanMeierEstimates ()

Аналізує дані про виживання та надійність за допомогою моделі пропорційної небезпеки Кокса: propHazardsGenLin ()

Аналізує дані про виживання за допомогою узагальненої лінійної моделі: survivalGlm ()

Оцінки за допомогою різних параметричних режимів: survivalEstimates ()

Оцінює функцію небезпеки щодо надійності за допомогою непараметричного підходу: nonparamHazardRate ()

Створює таблиці населення та когорти життя: lifeTables ()


4

Тепер ви можете використовувати R зсередини IPython , тому ви, можливо, захочете вивчити використання IPython з розширенням R.


2
Чи можете ви навести приклад цього? Мені цікаво спробувати це!
user603

Я вважаю, ви посилаєтесь на магічний інтерфейс R (який використовує rpy2). Я теж хотів би побачити короткий приклад. ( Наскільки я розумію, що моделі виживання ще не повністю доступні в статистичних моделях .)
chl

Я не дуже впевнений , statsmodels, але ви можете отримати ноутбуки від GitHub з прикладами C, Octave і R розширень. Для їх використання потрібно запустити Блокнот, але я впевнений, що ви можете використовувати той самий код у будь-якому інтерфейсі.
Карл Сміт

3
@ user603 Ось проста демонстрація: nbviewer.ipython.org/4383682 ; я вважаю, що це покладається на досить недавній iPython.
shabbychef

2

Я також хочу зазначити scikit-виживання , яке надає моделі аналізу виживання, які легко поєднуються з інструментами scikit-learn (наприклад, перехресна перевірка KFold).

Станом на це написання, scikit-виживання включає реалізацію

  • Нельсон-Ален оцінювач функції накопичувальної небезпеки.
  • Оцінювач функції виживання Каплана-Мейєра.
  • Модель пропорційної небезпеки Кокса із штрафом із пружною сіткою та без неї.
  • Модель часу прискореного відмови.
  • Векторна підтримка виживання.
  • Градієнт підсилив модель Кокса.
  • індекс відповідності для оцінки ефективності.

scikit-виживання відмінно підходить для завдань, що стосуються прогнозування часу та події!
Cam.Davidson.Pilon

1

Окрім використання Rчерез RPyабо еквівалент, у бібліотеці статистичних моделей (раніше sicpy.statsmodel) пітонів існує ряд процедур аналізу виживання . Вони знаходяться в упаковці "пісочниці", тобто зараз вони не повинні бути готові до виробництва.

Наприклад, у вас тут закодована модель Кокса пропорційної небезпеки .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.