Narzędzia analizy przeżycia w Pythonie [zamknięte]
46
Zastanawiam się, czy są jakieś pakiety dla Pythona, które są w stanie przeprowadzić analizę przeżycia. Korzystam z pakietu przetrwania w R, ale chciałbym przenieść moją pracę do Pythona.
Niezwykle wątpliwe jest, aby programiści Pythona w zakresie analizy przeżycia włożyli wysiłek gdziekolwiek blisko tego, co Terry Therneau i inni włożyli w pakiet przetrwania R w ciągu ostatnich 30 lat, w tym szeroko zakrojone testy. Pakiet przetrwania przechodzi najbardziej rygorystyczne procedury testowe, jakie widziałem w statystykach.
Frank Harrell,
2
Zgoda. survivalPakiet R. jest dokładnie badany przez dużą społeczność.
Marc Claesen
RPy (teraz 2) jest bardzo bolesne w instalacji.
Zhubarb
Odpowiedzi:
21
AFAIK, w Pythonie nie ma żadnych pakietów analizy przeżycia. Jak mbq komentuje powyżej, jedyną dostępną trasą byłaby Rpy .
Nawet jeśli byłby dostępny pakiet czystego pytona, byłbym bardzo ostrożny w korzystaniu z niego, w szczególności patrzyłbym na:
Jak często jest aktualizowany.
Czy ma dużą bazę użytkowników?
Czy ma zaawansowane techniki?
Jedną z zalet R jest to, że te standardowe pakiety otrzymują ogromną ilość testów i informacji zwrotnych od użytkowników. W przypadku rzeczywistych danych mogą się wkraść nieoczekiwane przypadki brzegowe.
python-asurv to próba przeniesienia oprogramowania asurv do metod przetrwania w astronomii. Być może warto mieć na oku, ale cgillespie ma rację, jeśli chodzi o rzeczy, na które należy uważać: ma przed sobą długą drogę, a rozwój nie wydaje się aktywny. (AFAICT istnieje tylko jedna metoda, a nawet ukończona, pakiet może brakować, powiedzmy, biostatystów).
Prawdopodobnie lepiej jest użyć pakietu przetrwania w języku R od Pythona poprzez RPy lub PypeR . Sam nie miałem żadnych problemów.
PyIMSL zawiera garść procedur do analizy przeżycia. Jest bezpłatny jak w piwie do użytku niekomercyjnego, w pełni obsługiwany inaczej. Z dokumentacji w Podręczniku użytkownika statystyki ...
Oblicza szacunki Kaplana-Meiera dotyczące prawdopodobieństwa przeżycia: kaplanMeierEstimates ()
Analizuje dane dotyczące przeżycia i niezawodności za pomocą proporcjonalnego modelu zagrożeń Coxa: propHazardsGenLin ()
Analizuje dane dotyczące przeżycia za pomocą uogólnionego modelu liniowego: survivalGlm ()
Szacunki przy użyciu różnych trybów parametrycznych: survivalEstimates ()
Szacuje funkcję zagrożenia niezawodności przy użyciu podejścia nieparametrycznego: nonparamHazardRate ()
Tworzy tabele życia populacji i kohorty: lifeTables ()
Czy możesz podać przykład? Jestem ciekawy, aby to wypróbować!
user603
Myślę, że odwołujesz się do magicznego interfejsu R (który używa rpy2). Ja też chciałbym zobaczyć szybki przykład. (Rozumiem, że modele przetrwania nie są jeszcze w pełni dostępne w modelach ).
chl
Nie jestem zbyt pewny statsmodels, ale można dostać zeszyty z github z przykładów C, Octave i R rozszerzeń. Musisz oczywiście uruchomić Notatnik, aby z nich korzystać, ale jestem pewien, że możesz użyć tego samego kodu w dowolnym interfejsie.
Carl Smith
3
@ user603 Oto prosta wersja demonstracyjna: nbviewer.ipython.org/4383682 ; wierzę, że to opiera się na dość niedawnym iPython.
shabbychef
2
Chcę również wspomnieć o scikit-survival , który zapewnia modele do analizy przeżycia, które można łatwo łączyć z narzędziami scikit-learn (np. Walidacja krzyżowa KFold).
scikit-survival jest doskonały do zadań związanych z przewidywaniem czasu na zdarzenie!
Cam.Davidson.Pilon
1
Oprócz użycia Rpoprzez RPylub równoważnego istnieje wiele procedur analizy przeżycia w bibliotece pytsmodels (wcześniej sicpy.statsmodel). Są one jednak w pakiecie „piaskownicy”, co oznacza, że nie powinny być teraz gotowe do produkcji.
Np. Masz tutaj zakodowany model proporcjonalnego hazardu Coxa .
survival
Pakiet R. jest dokładnie badany przez dużą społeczność.Odpowiedzi:
AFAIK, w Pythonie nie ma żadnych pakietów analizy przeżycia. Jak mbq komentuje powyżej, jedyną dostępną trasą byłaby Rpy .
Nawet jeśli byłby dostępny pakiet czystego pytona, byłbym bardzo ostrożny w korzystaniu z niego, w szczególności patrzyłbym na:
Jedną z zalet R jest to, że te standardowe pakiety otrzymują ogromną ilość testów i informacji zwrotnych od użytkowników. W przypadku rzeczywistych danych mogą się wkraść nieoczekiwane przypadki brzegowe.
źródło
Sprawdź projekt lifelines ¹, aby uzyskać prostą i czystą implementację modeli przetrwania w Pythonie, w tym
Korzyści:
Dokumentacja jest dostępna tutaj: dokumentacja i przykłady
Przykładowe użycie:
Przykładowe wykresy z wbudowanej biblioteki wydruków:
źródło
python-asurv to próba przeniesienia oprogramowania asurv do metod przetrwania w astronomii. Być może warto mieć na oku, ale cgillespie ma rację, jeśli chodzi o rzeczy, na które należy uważać: ma przed sobą długą drogę, a rozwój nie wydaje się aktywny. (AFAICT istnieje tylko jedna metoda, a nawet ukończona, pakiet może brakować, powiedzmy, biostatystów).
Prawdopodobnie lepiej jest użyć pakietu przetrwania w języku R od Pythona poprzez RPy lub PypeR . Sam nie miałem żadnych problemów.
źródło
PyIMSL zawiera garść procedur do analizy przeżycia. Jest bezpłatny jak w piwie do użytku niekomercyjnego, w pełni obsługiwany inaczej. Z dokumentacji w Podręczniku użytkownika statystyki ...
Oblicza szacunki Kaplana-Meiera dotyczące prawdopodobieństwa przeżycia: kaplanMeierEstimates ()
Analizuje dane dotyczące przeżycia i niezawodności za pomocą proporcjonalnego modelu zagrożeń Coxa: propHazardsGenLin ()
Analizuje dane dotyczące przeżycia za pomocą uogólnionego modelu liniowego: survivalGlm ()
Szacunki przy użyciu różnych trybów parametrycznych: survivalEstimates ()
Szacuje funkcję zagrożenia niezawodności przy użyciu podejścia nieparametrycznego: nonparamHazardRate ()
Tworzy tabele życia populacji i kohorty: lifeTables ()
źródło
Możesz teraz używać R z IPython , więc możesz rozważyć użycie IPython z rozszerzeniem R.
źródło
rpy2
). Ja też chciałbym zobaczyć szybki przykład. (Rozumiem, że modele przetrwania nie są jeszcze w pełni dostępne w modelach ).Chcę również wspomnieć o scikit-survival , który zapewnia modele do analizy przeżycia, które można łatwo łączyć z narzędziami scikit-learn (np. Walidacja krzyżowa KFold).
W tym piśmie scikit-survival obejmuje implementacje
źródło
Oprócz użycia
R
poprzezRPy
lub równoważnego istnieje wiele procedur analizy przeżycia w bibliotece pytsmodels (wcześniejsicpy.statsmodel
). Są one jednak w pakiecie „piaskownicy”, co oznacza, że nie powinny być teraz gotowe do produkcji.Np. Masz tutaj zakodowany model proporcjonalnego hazardu Coxa .
źródło