Các công cụ phân tích sinh tồn trong Python [đã đóng]


46

Tôi tự hỏi nếu có bất kỳ gói cho python có khả năng thực hiện phân tích sinh tồn. Tôi đã sử dụng gói sinh tồn trong R nhưng muốn chuyển công việc của mình sang python.


11
Sử dụng Rpy để gọi R từ Python ;-)

2
Điều cực kỳ nghi ngờ là các nhà phát triển Python để phân tích sinh tồn đã nỗ lực ở bất cứ nơi nào gần với những gì Terry Therneau và những người khác đã đưa vào gói sinh tồn R trong 30 năm qua, bao gồm cả thử nghiệm rộng rãi. Gói sinh tồn trải qua các quy trình kiểm tra nghiêm ngặt nhất tôi từng thấy trong các số liệu thống kê.
Frank Harrell

2
Đã đồng ý. survivalGói của R đang được xem xét kỹ lưỡng bởi một cộng đồng lớn.
Marc Claesen

RPy (2 bây giờ) rất đau để cài đặt theo kinh nghiệm của tôi.
Zhubarb

Câu trả lời:


21

AFAIK, không có bất kỳ gói phân tích sinh tồn nào trong trăn. Như mbq bình luận ở trên, con đường duy nhất có sẵn sẽ là Rpy .

Ngay cả khi có sẵn một gói python thuần túy, tôi sẽ rất cẩn thận trong việc sử dụng nó, đặc biệt tôi sẽ xem xét:

  • Làm thế nào thường xuyên được cập nhật.
  • Liệu nó có một cơ sở người dùng lớn?
  • Liệu nó có kỹ thuật tiên tiến?

Một trong những lợi ích của R, là các gói tiêu chuẩn này nhận được một lượng lớn thử nghiệm và phản hồi của người dùng. Khi xử lý dữ liệu thực, các trường hợp cạnh không mong muốn có thể chui vào.


6
Trong 5 năm qua, nhiều thứ đã thay đổi (tốt hơn) cho Python. Vide trả lời của Cam.Davidson.Pilon trên Lifelines .
Piotr Migdal

69

Kiểm tra các dây an toàn dự án ¹ cho việc thực hiện đơn giản và sạch sẽ của các mô hình tồn tại trong Python, bao gồm

  • Ước tính các chức năng sinh tồn
  • Ước tính đường cong nguy hiểm tích lũy
  • Mô hình hồi quy nguy cơ theo tỷ lệ của Cox
  • Mô hình hồi quy thay đổi thời gian của Cox
  • mô hình AFT tham số
  • Mô hình hồi quy phụ gia của Aalen
  • Thử nghiệm đa biến

Những lợi ích:

  • được xây dựng trên đỉnh Pandas
  • Python thuần túy & dễ cài đặt
  • xây dựng trong các chức năng âm mưu
  • giao diện đơn giản

Tài liệu có sẵn ở đây: tài liệu và ví dụ

Ví dụ sử dụng:

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()

Các ô mẫu từ thư viện vẽ đồ thị tích hợp:

nhập mô tả hình ảnh ở đây

  1. Tuyên bố miễn trừ trách nhiệm: Tôi là tác giả chính. Ping tôi (email trong hồ sơ) cho câu hỏi hoặc phản hồi về cuộc sống .

14
(+1) Tên khá thông minh cho gói sinh tồn.
Marc Claesen

8

python-asurv là một nỗ lực để chuyển phần mềm asurv cho các phương pháp sinh tồn trong thiên văn học. Có thể đáng để theo dõi, nhưng cgillespie nói đúng về những điều cần chú ý: nó còn một chặng đường dài và sự phát triển dường như không hoạt động. (AFAICT chỉ có một phương thức tồn tại và thậm chí đã hoàn thành, gói có thể thiếu đối với các nhà sinh học.)

Có lẽ bạn nên sử dụng gói sinh tồn trong R từ Python thông qua một cái gì đó như RPy hoặc PypeR . Tôi đã không có bất kỳ vấn đề làm điều này bản thân mình.


7

PyIMSL chứa một số thói quen cho các phân tích sinh tồn. Nó là miễn phí như trong bia cho sử dụng phi thương mại, được hỗ trợ đầy đủ khác. Từ tài liệu trong Hướng dẫn sử dụng thống kê ...

Tính toán các ước tính của Kaplan-Meier về các xác suất sống sót: kaplanMeierEstimates ()

Phân tích dữ liệu sinh tồn và độ tin cậy bằng mô hình mối nguy theo tỷ lệ của Cox: propHazardsGenLin ()

Phân tích dữ liệu sinh tồn bằng mô hình tuyến tính tổng quát: survivalGlm ()

Ước tính sử dụng các chế độ tham số khác nhau: survivalEstimates ()

Ước tính hàm nguy hiểm độ tin cậy bằng cách sử dụng phương pháp không theo tỷ lệ: nonparamHazardRate ()

Tạo các bảng dân số và đoàn hệ: lifeTables ()


4

Bây giờ bạn có thể sử dụng R từ bên trong IPython , vì vậy bạn có thể muốn xem xét sử dụng IPython với tiện ích mở rộng R.


2
Bạn có thể cho một ví dụ về điều này? Tôi tò mò muốn dùng thử!
dùng603

Tôi tin rằng bạn tham khảo giao diện R ma thuật (sử dụng rpy2). Tôi cũng rất thích xem một ví dụ nhanh chóng. (Theo hiểu biết của tôi rằng các mô hình sinh tồn chưa có sẵn đầy đủ trong thống kê .)
chl

Tôi không chắc lắm về số liệu thống kê, nhưng bạn có thể lấy sổ ghi chép từ github với các ví dụ về tiện ích mở rộng C, Octave và R. Bạn cần chạy Notebook để sử dụng chúng rõ ràng, nhưng tôi chắc chắn rằng bạn có thể sử dụng cùng một mã trong bất kỳ giao diện nào.
Carl Smith

3
@ user603 Đây là một bản demo đơn giản: nbviewer.ipython.org/4383682 ; điều này phụ thuộc vào iPython khá gần đây, tôi tin.
shabbychef

2

Tôi cũng muốn đề cập đến scikit-survival , cung cấp các mô hình để phân tích sinh tồn có thể dễ dàng kết hợp với các công cụ từ scikit-learn (ví dụ: xác thực chéo KFold).

Theo văn bản này, scikit-survival bao gồm triển khai

  • Công cụ ước tính của Nelson-Aalen về chức năng nguy hiểm tích lũy.
  • Ước tính Kaplan-Meier của chức năng sống sót.
  • Mô hình nguy hiểm theo tỷ lệ của Cox có và không có hình phạt ròng đàn hồi.
  • Mô hình thời gian thất bại tăng tốc.
  • Máy hỗ trợ sinh tồn.
  • Mô hình Cox tăng cường độ dốc.
  • chỉ số phù hợp để đánh giá hiệu suất.

scikit-survival là tuyệt vời cho các nhiệm vụ liên quan đến dự đoán theo thời gian!
Cam.Davidson.Pilon

1

Ngoài việc sử dụng Rthông qua RPyhoặc tương đương có một số thói quen phân tích tồn tại trong statsmodels (trước đây sicpy.statsmodel) thư viện python. Mặc dù vậy, chúng nằm trong gói "hộp cát", có nghĩa là chúng không phải sẵn sàng để sản xuất ngay bây giờ.

Ví dụ, bạn có mô hình Cox về nguy cơ tỷ lệ được mã hóa ở đây .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.