เครื่องมือวิเคราะห์การอยู่รอดใน Python [ปิด]


46

ฉันสงสัยว่ามีแพ็กเกจสำหรับไพ ธ อนที่สามารถทำการวิเคราะห์การอยู่รอดได้หรือไม่ ฉันใช้แพ็คเกจการเอาตัวรอดใน R แต่ฉันต้องการย้ายงานของฉันไปที่ python


11
ใช้ Rpy เพื่อโทรหา R จาก Python ;-)

2
เป็นที่น่าสงสัยอย่างยิ่งที่นักพัฒนา Python สำหรับการวิเคราะห์การอยู่รอดได้พยายามทุกที่ใกล้กับสิ่งที่เทอร์รี่เทอร์โน่และคนอื่น ๆ ใส่ลงไปในแพ็คเกจการเอาตัวรอด R ในช่วง 30 ปีที่ผ่านมา แพคเกจการเอาตัวรอดผ่านขั้นตอนการทดสอบที่เข้มงวดที่สุดที่ฉันเคยเห็นในสถิติ
Frank Harrell

2
ตกลง survivalแพคเกจของ R อยู่ภายใต้การตรวจสอบอย่างใกล้ชิดโดยชุมชนขนาดใหญ่
Marc Claesen

RPy (2 ตอนนี้) เจ็บปวดมากในการติดตั้งในประสบการณ์ของฉัน
Zhubarb

คำตอบ:


21

AFAIK ไม่มีแพ็คเกจการเอาตัวรอดในหลาม ในฐานะที่เป็น MBq ความเห็นข้างต้นเส้นทางเดียวที่มีอยู่จะRpy

แม้ว่าจะมีแพ็คเกจไพ ธ อนแท้ๆ แต่ฉันก็ต้องระวังอย่างมากในการใช้มันโดยเฉพาะอย่างยิ่งฉันจะดูที่:

  • อัพเดตบ่อยแค่ไหน
  • มันมีฐานผู้ใช้ขนาดใหญ่หรือไม่?
  • มันมีเทคนิคขั้นสูงหรือไม่?

หนึ่งในข้อดีของ R คือแพคเกจมาตรฐานเหล่านี้ได้รับการทดสอบจำนวนมากและผู้ใช้ย้อนกลับ เมื่อจัดการกับข้อมูลจริงกรณีขอบที่ไม่คาดคิดสามารถคืบเข้ามา


6
ในช่วง 5 ปีที่ผ่านมามีการเปลี่ยนแปลงหลายอย่าง (ดีกว่า) สำหรับ Python Vide คำตอบโดย Cam.Davidson.Pilonในสายใย
Piotr Migdal

69

ตรวจสอบโครงการlifelinesสำหรับการใช้งานโมเดลการเอาตัวรอดที่ง่ายและสะอาดใน Python รวมถึง

  • ตัวประมาณของฟังก์ชันการเอาชีวิตรอด
  • การประมาณค่าของเส้นโค้งอันตรายสะสม
  • โมเดลการถดถอยความเป็นอันตรายตามสัดส่วนของ Cox
  • รูปแบบการถดถอยของ Cox แตกต่างกันไปตามเวลา
  • แบบจำลองพารามิเตอร์ AFT
  • แบบจำลองการถดถอยเพิ่มเติมของอาเลน
  • การทดสอบหลายตัวแปร

ประโยชน์ที่ได้รับ:

  • สร้างขึ้นบน Pandas
  • หลามบริสุทธิ์ & ติดตั้งง่าย
  • สร้างขึ้นในฟังก์ชั่นการวางแผน
  • อินเตอร์เฟซที่เรียบง่าย

เอกสารมีอยู่ที่นี่: เอกสารและตัวอย่าง

ตัวอย่างการใช้งาน:

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. คำเตือน: ฉันเป็นผู้เขียนหลัก Ping ฉัน (อีเมลในรายละเอียด) สำหรับคำถามหรือข้อเสนอแนะเกี่ยวกับสายใย

14
(+1) ชื่อที่ฉลาดมากสำหรับแพ็คเกจการเอาตัวรอด
Marc Claesen

8

python-asurvเป็นความพยายามในการพอร์ตซอฟต์แวร์asurvสำหรับวิธีการเอาตัวรอดในดาราศาสตร์ อาจคุ้มค่าที่จะจับตามอง แต่ cgillespie นั้นถูกต้องเกี่ยวกับสิ่งที่ต้องระวัง: มันมีหนทางอีกยาวไกลและการพัฒนาดูเหมือนจะไม่กระตือรือร้น (AFAICT มีเพียงวิธีเดียวเท่านั้นที่มีอยู่และเสร็จสมบูรณ์แล้วแพคเกจอาจไม่เพียงพอพูดนักชีวสถิติ)

คุณอาจดีกว่าการใช้ความอยู่รอดของแพคเกจใน R จากงูหลามผ่านสิ่งเช่นRPyหรือPyper ฉันไม่มีปัญหาในการทำสิ่งนี้ด้วยตนเอง


7

PyIMSLประกอบไปด้วยรูทีนการวิเคราะห์การเอาตัวรอด มันฟรีในฐานะเบียร์สำหรับการใช้งานที่ไม่ใช่เชิงพาณิชย์ จากเอกสารในคู่มือผู้ใช้สถิติ ...

คำนวณประมาณการ Kaplan-Meier ของความน่าจะเป็นเพื่อการอยู่รอด: kaplanMeierEstimates ()

วิเคราะห์ข้อมูลการรอดชีวิตและความน่าเชื่อถือโดยใช้โมเดลอันตรายตามสัดส่วนของ Cox: propHazardsGenLin ()

วิเคราะห์ข้อมูลการอยู่รอดโดยใช้โมเดลเชิงเส้นทั่วไป: SurvivalGlm ()

ประมาณการโดยใช้โหมดพาราเมตริกต่างๆ: SurvivalEstimates ()

ประมาณฟังก์ชั่นอันตรายที่น่าเชื่อถือโดยใช้วิธีการแบบไม่พารามิเตอร์: nonparamHazardRate ()

จัดทำตารางประชากรและกลุ่มชีวิต: lifeTables ()


4

ตอนนี้คุณสามารถใช้ R จากภายในIPythonได้ดังนั้นคุณอาจต้องการใช้ IPython กับส่วนขยาย R


2
คุณยกตัวอย่างเรื่องนี้ได้ไหม ฉันอยากรู้อยากเห็นลอง!
user603

ฉันเชื่อว่าคุณอ้างถึงR magic interface (ซึ่งใช้rpy2) ฉันก็ชอบที่จะเห็นตัวอย่างรวดเร็ว (มันเป็นความเข้าใจของฉันว่ารูปแบบการอยู่รอดยังไม่พร้อมอย่างเต็มที่ในการstatsmodels .)
CHL

ฉันไม่แน่ใจเกี่ยวกับ statsmodels มากเกินไป แต่คุณสามารถรับโน้ตบุ๊กจาก GitHub พร้อมตัวอย่างของส่วนขยายC, Octave และR คุณต้องเรียกใช้โน้ตบุ๊กเพื่อใช้งานอย่างชัดเจน แต่ฉันแน่ใจว่าคุณสามารถใช้รหัสเดียวกันในอินเทอร์เฟซใดก็ได้
คาร์ลสมิ ธ

3
@ user603 นี่คือตัวอย่างง่ายๆ: nbviewer.ipython.org/4383682 ; สิ่งนี้ขึ้นอยู่กับ iPython เมื่อไม่นานมานี้ฉันเชื่อว่า
shabbychef

2

ฉันยังต้องการพูดถึงscikit-Survivalซึ่งเป็นแบบจำลองสำหรับการวิเคราะห์การอยู่รอดที่สามารถใช้ร่วมกับเครื่องมือจาก scikit-Learn (เช่นการตรวจสอบข้าม KFold)

ในฐานะที่เป็นลายลักษณ์อักษรนี้Scikit-Survivalรวมถึงการใช้งานของ

  • ตัวประมาณเนลสันอาเลนของฟังก์ชันอันตรายสะสม
  • เครื่องมือประเมินการอยู่รอดของ Kaplan-Meier
  • โมเดลความเป็นอันตรายตามสัดส่วนของค็อกซ์ที่มีและไม่มีการลงโทษสุทธิแบบยืดหยุ่น
  • แบบจำลองเวลาความล้มเหลวเร่ง
  • เครื่องเวกเตอร์สนับสนุนการอยู่รอด
  • การไล่ระดับสีแบบ Cox
  • ดัชนีความสอดคล้องสำหรับการประเมินประสิทธิภาพ

Scikit-Survival นั้นยอดเยี่ยมสำหรับงานที่เกี่ยวข้องกับการทำนายเวลา
Cam.Davidson.Pilon

1

นอกเหนือจากการใช้Rผ่านRPyหรือเทียบเท่ามีจำนวนของการวิเคราะห์การอยู่รอดในห้องสมุดงูหลามstatsmodels (เดิมsicpy.statsmodel) พวกเขาอยู่ในแพ็คเกจ "แซนด์บ็อกซ์" ซึ่งหมายความว่าพวกเขาไม่ควรพร้อมสำหรับการผลิตในขณะนี้

เช่นคุณมีรูปแบบค็อกซ์อันตรายสัดส่วนรหัสที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.