파이썬에서 생존 분석 도구 [닫기]


46

생존 분석을 수행 할 수있는 파이썬 패키지가 있는지 궁금합니다. R에서 생존 패키지를 사용하고 있지만 내 작업을 파이썬으로 이식하고 싶습니다.


11
Rpy를 사용하여 Python에서 R을 호출하십시오. ;-)

2
생존 분석을위한 파이썬 개발자들이 지난 30 년 동안 광범위한 테스팅을 포함하여 지난 30 년 동안 Terry Therneau와 다른 사람들이 R 생존 패키지에 넣은 것 근처에 노력을 기울 였다는 것은 의심의 여지가 있습니다. 생존 패키지는 통계에서 본 가장 엄격한 테스트 절차를 거칩니다.
Frank Harrell

2
동의했다. R의 survival패키지는 대규모 커뮤니티에서 철저한 조사를 받고 있습니다.
Marc Claesen

RPy (지금 2)는 내 경험에 설치하기가 매우 고통 스럽습니다.
Zhubarb

답변:


21

AFAIK, 파이썬에는 생존 분석 패키지가 없습니다. mbq가 위에서 언급했듯이 사용 가능한 유일한 경로는 Rpy 입니다.

사용 가능한 순수 파이썬 패키지가 있더라도 사용에 특히주의해야합니다. 특히 다음을 살펴보십시오.

  • 얼마나 자주 업데이트됩니까?
  • 큰 사용자 기반이 있습니까?
  • 고급 기술이 있습니까?

R의 장점 중 하나는 이러한 표준 패키지가 방대한 양의 테스트와 사용자 피드백을 받는다는 것입니다. 실제 데이터를 처리 할 때 예기치 않은 에지 사례가 발생할 수 있습니다.


6
지난 5 년 동안 많은 것들이 파이썬으로 바뀌 었습니다. Cam.Davidson.Pilon on Lifelines의 보라 답변 .
Piotr Migdal 2014 년

69

생명선 ¹ 프로젝트를 확인하여 다음을 포함하여 Python에서 생존 모델을 간단하고 깔끔하게 구현하십시오.

  • 생존 함수의 추정자
  • 누적 위험 곡선 추정기
  • 콕스의 비례 위험 회귀 모델
  • 콕스의 시변 회귀 모델
  • 파라 메트릭 AFT 모델
  • 알렌의 가산 회귀 모형
  • 다변량 테스트

혜택:

  • 팬더 위에 구축
  • 순수한 파이썬 및 설치가 용이
  • 플로팅 기능 내장
  • 간단한 인터페이스

설명서는 여기에서 볼 수 있습니다 : 설명서 및 예제

사용법 예 :

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 me (프로필로 이메일)를 보내십시오 .

14
(+1) 생존 패키지의 영리한 이름.
Marc Claesen

8

python-asurv 는 천문학에서 생존 방법을위한 asurv 소프트웨어 를 이식하려는 노력 입니다. 지켜봐야 할 가치가 있지만, cgillespie는 조심해야 할 것들에 대한 것입니다. 갈 길이 멀고 개발이 활발하지 않은 것 같습니다. (AFAICT는 오직 하나의 방법 만이 존재하고 심지어 완성되었는데, 패키지에는 생물 통계 학자에게는 부족할 수 있습니다.)

RPy 또는 PypeR 과 같은 것을 통해 Python의 R에서 생존 패키지를 사용 하는 것이 좋습니다 . 나는이 일을하는 데 아무런 문제가 없었습니다.


7

PyIMSL 에는 생존 분석을위한 소수의 루틴이 포함되어 있습니다. 비상업적 용도로는 비어 있음으로 무료로 제공되며, 그렇지 않으면 완전히 지원됩니다. 통계 사용자 안내서의 문서에서 ...

생존 확률의 Kaplan-Meier 추정값을 계산합니다 : kaplanMeierEstimates ()

Cox의 비례 위험 모델을 사용하여 생존 및 신뢰성 데이터를 분석합니다. propHazardsGenLin ()

일반화 된 선형 모형을 사용하여 생존 데이터를 분석합니다 : survivalGlm ()

다양한 파라 메트릭 모드를 사용한 추정값 : survivalEstimates ()

비모수 적 접근 방식을 사용하여 신뢰성 위험 함수를 추정합니다. nonparamHazardRate ()

모집단 및 코호트 수명 테이블을 생성합니다. lifeTables ()


4

이제 IPython 내에서 R을 사용할 수 있으므로 Ry 확장과 함께 IPython을 사용하는 것이 좋습니다.


2
이것의 예를 들어 줄 수 있습니까? 시도해보고 싶습니다.
user603

나는 당신이 R 매직 인터페이스 (를 사용하는 rpy2) 를 참조한다고 생각합니다 . 나도 빠른 예를보고 싶습니다. ( statsmodels 에서는 생존 모델을 아직 완전히 사용할 수 없다는 것을 이해하고 있습니다 .)
chl

statsmodels에 대해서는 확신이 없지만 C, Octave 및 R 확장의 예를 사용하여 github에서 노트북을 얻을 수 있습니다 . 분명히 사용하려면 노트북을 실행해야하지만 모든 인터페이스에서 동일한 코드를 사용할 수 있다고 확신합니다.
Carl Smith

3
@ user603 다음은 간단한 데모입니다. nbviewer.ipython.org/4383682 ; 이것은 상당히 최근의 iPython에 의존한다고 생각합니다.
shabbychef

2

또한 scikit-survival (Scikit-survival) 에 대해 언급하고 싶습니다 . 이것은 scikit-learn (예 : KFold cross-validation)의 도구와 쉽게 결합 할 수있는 생존 분석 모델을 제공합니다.

이 글을 쓰는 시점에서 scikit-survival 은 다음의 구현을 포함합니다.

  • 누적 위험 함수의 Nelson-Aalen 추정기.
  • 생존 함수의 Kaplan-Meier 추정기.
  • 탄성 순 페널티가 있거나없는 콕스의 비례 위험 모델.
  • 가속 실패 시간 모델.
  • 생존 지원 벡터 머신.
  • 그라데이션 부스트 콕스 모델.
  • 성능 평가를위한 적합성 지수.

scikit-survival은 이벤트 시간 예측 관련 작업에 탁월합니다!
Cam.Davidson.Pilon

1

R스루 RPy또는 이와 동등한 것을 사용 하는 것 외에도 statsmodels (이전의 sicpy.statsmodel) python 라이브러리 에는 많은 생존 분석 루틴이 있습니다. 그러나 "샌드 박스"패키지에 들어 있으므로 현재 프로덕션 준비가되어 있지 않습니다.

예를 들어 여기 에 비례 위험의 콕스 모델이 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.