Analiza przeżycia w R

Save this PDF as:
 WORD  PNG  TXT  JPG

Wielkość: px
Rozpocząć pokaz od strony:

Download "Analiza przeżycia w R"

Transkrypt

1 Analiza przeżycia w R Dr Piotr Denderski Instytut Nauk Ekonomicznych PAN University of Leicester 8 lutego 2019

2 Plan szkolenia 1. Wprowadzenie 2. Podstawowe pojęcia statystyczne w analize przeżycia 3. Metody nieparametryczne 4. Metody semi-parametryczne: Model proporcjonalnych hazardów Coxa 5. Modele parametryczne 2 / 121

3 Wprowadzenie Opis problemu, struktura danych, klasa Surv 3 / 121

4 Czym jest analiza przeżycia? Analiza przeżycia Kluczową zmienną w analizie przeżycia jest czas osiągnięcia określonego stanu. W analizie przeżycia interesuje nas modelowanie (rozkładu) czasu przeżycia. 4 / 121

5 Czym jest analiza przeżycia? Analiza przeżycia Kluczową zmienną w analizie przeżycia jest czas osiągnięcia określonego stanu. W analizie przeżycia interesuje nas modelowanie (rozkładu) czasu przeżycia. Przykłady: Śmierć Znalezienie pracy Bankructwo Rozwód Wyleczenie choroby Zamknięcie rachunku bankowego 4 / 121

6 Czym jest analiza przeżycia? Analiza przeżycia Kluczową zmienną w analizie przeżycia jest czas osiągnięcia określonego stanu. W analizie przeżycia interesuje nas modelowanie (rozkładu) czasu przeżycia. Przykłady: Śmierć Znalezienie pracy Bankructwo Rozwód Wyleczenie choroby Zamknięcie rachunku bankowego Bez względu na konkretną aplikację, będziemy określać to zdarzenie mianem porażki. 4 / 121

7 Co wyróżnia analizę przeżycia spośród innych zagadnień analizy danych? Niech T będzie zmienną (ciągłą bądź dyskretną) reprezentującą czas, jaki mija między dwoma wyraźnie określonymi zdarzeniami, w praktyce nie zawsze możęmy zaobserować realizację T dokładnie: 5 / 121

8 Co wyróżnia analizę przeżycia spośród innych zagadnień analizy danych? Niech T będzie zmienną (ciągłą bądź dyskretną) reprezentującą czas, jaki mija między dwoma wyraźnie określonymi zdarzeniami, w praktyce nie zawsze możęmy zaobserować realizację T dokładnie: Ucięcie danych Brak obserwacji punktu początkowego (ucięcie z lewej, left censoring) Brak obserwacji punktu końcowego (ucięcie z prawej, right censoring) Brak obserwacji punktu początkowego i końcowego ( ucięcie przedziałowe, interval censoring) 5 / 121

9 Struktura danych Typowy zbiór danych zawiera: Zbiór agentów/populacja indeksowana i o rozmiarze N Horyzont obserwacji populacji agentów T max Czas przeżycia w próbie t [0, T max ] - ta zmienna jest kluczowa, gdy t = T max nie wiemy, czy do porażki doszło dla t > T max czy nie (a jeśli porażka miała miejsce - nie wiemy kiedy dokładnie. Indeks cenzurowania δ i dla każdego agenta, δ i = 1 gdy zaobserwowano porażkę i δ i = 0 gdy agent do chwili T max jej jeszcze nie zaznał Zbiór charakterystyk opisujących populację, potencjalnie zmienny w czasie z it (np. wiek, płeć, moment wprowadzenia do badania) 6 / 121

10 Rodzaje ucięcia danych Wyróżniamy trzy typy ucięcia danych: Typ I - czas ocenzurowania obserwacji jest określony w momencie rozpoczęcia obserwacji Typ II - zaprzestanie obserwowania w momencie osiągnięcia stanu końcowego przez określoną część próby Typ III - ucięcie losowe (np. opuszczenie badania klinicznego przez pacjenta z uwagi na czynniki niezwiązane z chorobą) Musimy rozumieć naturę procesu ucięcia obserwacji aby uniknąć obciążenia oszacowań estymatorów 7 / 121

11 Przykład linie pionowe wydzielają: badanie kliniczne (początek i koniec) oraz fazę obserwacji - przyjęcie agenta do badania - porażka - zdarzenie ucinające obserwację (np. koniec okresu follow-up) 8 / 121

12 Reprezentacja danych Dla każdego agenta definiujemy czas przeżycia - brak porażki do momentu zakończenia obserwacji (δ i = 0) - porażka, (δ i = 1) 9 / 121

13 Pakiety i zbiory z którymi będziemy pracować/które warto znać Większość publicznie dostępnych zbiorów jest związana z medycyną... Zbiory publicznie dostępne w pakietach R: survival KMsurv asaur Zbiór danych dot. rozwodów w USA ze strony prof. Germana Rodrigueza, Princeton University (divorce.dat) 10 / 121

14 Klasa Surv Wprowadźmy w/w dane do R: > library(survival) > tt <- c(7,6,6,5,2,4) > cens <- c(0,1,0,0,1,1) > truncdata <- Surv(tt,cens) > truncdata [1] x+ oznacza, że dany subiekt nie zmienił stanu przez co najmniej x okresów, zmienna cens to nasza δ i. 11 / 121

15 Lewe ucięcie danych - rozpoczęcie obserwacji - postawienie diagnozy - brak porażki do momentu zakończenia obserwacji (δ i = 0) - porażka, (δ i = 1) 12 / 121

16 Lewe ucięcie danych w klasie Surv > tt <- c(7, 6, 6, 5, 2, 4) > cens <- c(0, 1, 0, 0, 1, 1) > backtime <- c(-2, -5, -3, -3, -2, -5) > tm.enter <- -backtime > tm.exit <- tt - backtime > lefttruncobject = Surv(tm.enter, tm.exit, cens) > lefttruncobject [1] (-2, 9+] (-5,11] (-3, 9+] (-3, 8+] (-2, 4] (-5, 9] 13 / 121

17 Zaglądamy do środka... > help(surv) > help(surv.object) Następne dwie części szkolenia będą się koncentrowały na wyjaśnieniu znaczenia parametrów obiektów tej klasy. 14 / 121

18 Zadanie programistyczne 1 1. Załadować zbiór divorce.rds, wyświetlić podsumowanie zbioru, nagłówek oraz określić typ każdej ze zmiennych, zmienne opisują długość trwania małżeństwa w USA, zawiera: heduc - wykształcenie męża (0 - mniej niż 12 lat, 1-12 do 15 lat, 2 - więcej niż 15 lat), heblack - czy mąż jest Afroamerykaninem, mixed - czy małżonkowie są mieszanych ras years - zaobserwowany czas trwania małżeństwa div - czy doszło do rozwodu 2. Wykreślić histogramy długości trwania małżeństwa w zależności od zmiennej divorce, wyznaczyć kwantyle obu rozkładów, wygenerować wykresy pudełkowe 3. Zaimplementować obiekt divdata klasy Surv wykorzystując kolumny years i div 4. Odpowiedzieć na pytania: ile mamy obserwacji w zbiorze? Ile rozwodów miało miejsce w pierwszych 20 obserwacjach zbioru? Jak często w próbie doszło do rozwodu warunkując zmienną heduc? 15 / 121

19 Histogramy długości małżeństwa No divorce observed Divorce Frequency Frequency years years 16 / 121

20 Wykresy pudełkowe długości małżeństwa no divorce divorce 17 / 121

21 Podstawowe pojęcia statystyczne w analize przeżycia funkcje przeżycia, hazardu, hazardu skumulowanego, momenty centralne czasu przeżycia 18 / 121

22 Rozkład przeżycia, funkcje przeżycia i hazardu Przyjmijmy, że czas przeżycia T jest ciągłą zmienną losową o funkcji gęstości f (t) i dystrybuancie F (t) = P(T < t). Dla tego rozkładu definiujemy: Funkcja przeżycia S(t) = P(T > t), 0 < t <, S(t) = 1 F (t) = t f (x)dx Funkcja hazardu h(t) = lim 0 P (t T t + T t) 19 / 121

23 Interpretacja Funkcja przeżycia - prawdopodobieństwo przeżycia momentu t Funkcja hazardu - miara natychmiastowego ryzyka porażki dla agenta w momencie t 20 / 121

24 Interpretacja Funkcja przeżycia - prawdopodobieństwo przeżycia momentu t Funkcja hazardu - miara natychmiastowego ryzyka porażki dla agenta w momencie t Wykażemy, że między tymi pojęciami występują ścisłe związki (tj. opisują one ten sam rozkład czasu przeżycia). 20 / 121

25 Podstawowe własności S(t) i h(t) S(0) = 1, lim t S(t) = 0 własność graniczna S(t) może nie zachodzić w estymacji 21 / 121

26 Podstawowe własności S(t) i h(t) S(0) = 1, lim t S(t) = 0 własność graniczna S(t) może nie zachodzić w estymacji Funkcja przeżycia jest nierosnąca 21 / 121

27 Podstawowe własności S(t) i h(t) S(0) = 1, lim t S(t) = 0 własność graniczna S(t) może nie zachodzić w estymacji Funkcja przeżycia jest nierosnąca P (t < T < t + T > t) h(t) = lim = lim 0 0 P(T t T [t,t+ )) P(T t) 21 / 121

28 Podstawowe własności S(t) i h(t) S(0) = 1, lim t S(t) = 0 własność graniczna S(t) może nie zachodzić w estymacji Funkcja przeżycia jest nierosnąca P (t < T < t + T > t) h(t) = lim = lim 0 0 P(T t T [t,t+ )) P(T t) co implikuje h(t) = lim 0 f (t) S(t) = f (t) S(t) 21 / 121

29 Oczekiwany dalszy czas trwania życia W praktyce ubezpieczeniowej (i nie tylko) często ważną zmienną jest: t S(v)dv µ rl (t) = E [T t T > t] = S(t) oczekiwany dalszy czas trwania życia pod warunkiem osiągnięcia wieku t, mean remaining lifetime 22 / 121

30 Funkcja hazardu skumulowanego Z definicji funkcji przeżycia dostajemy, że S (t) = f (t) Możemy zatem skorzystać ze wzoru na pochodną logarytmiczną: d ln (f (x)) = f (x) dx f (x) i napisać: h(t) = d dt f (t) log (S(t)) gdyż h(t) = S(t) = S (t) S(t) Ten wynik z kolei pozwala nam, po odcałkowaniu, napisać, że: Hazard skumulowany S(t) = e t 0 h(x)dx H(t) = t 0 h(x)dx 23 / 121

31 Interpretacja Funkcja hazardu skumulowanego: mierzy skumulowany rozmiar ryzyka porażki do czasu t liczba przypadków porażki w danym okresie (gdyby porażka mogła się powtarzać ) 24 / 121

32 Przykład - czas przeżycia w USA W pakiecie survival znajduje się zbiór survexp.us który zawiera funkcję hazardu względem płci Pokażę teraz jak wyciągnąć dane z tego zbioru, które posłużą nam do wyznaczenia funkcji przeżycia a potem - momentów rozkładu czasu życia Zaprezentujemy dane dla kobiet i mężczyzn w latach 1940 i / 121

33 Kod w R >library(survival) >agevec = c(0, 1/365, 7/365, 28/365, 1:106) >hazmale2000 <- survexp.us[,"male","2000"] >hazfemale2000 <- survexp.us[,"female","2000"] >hazmale1940 <- survexp.us[,"male","1940"] >hazfemale1940 <- survexp.us[,"female","1940"] 26 / 121

34 Czas przeżycia w USA w latach 1940 i 2010 względem płci Rysunek: Log-funkcja hazardu względem wieku 27 / 121

35 Komentarz Gdybyśmy przyjęli, że znamy postać funkcyjną h(t) co do parametru, to wówczas rozważalibyśmy problem znajdowania parametrów określonego rozkładu W praktyce próbuje się różnych rozkładów - wykładniczego, Weibulla, gamma - my zajmiemy się tym na końcu szkolenia 28 / 121

36 Wyznaczanie funkcji przeżycia z funkcji hazardu Dla danej funkcji hazardu skumulowanego to zadanie jest stosunkowo proste, wystarczy skorzystać z równania S(t) = e H(t) W przypadku zaprezentowanych danych empirycznych nie znamy postaci parametrycznej H(t) Wniosek: musimy przybliżać funkcję H(t) numerycznie 29 / 121

37 Całkowanie numeryczne Spróbujmy jednej z najprostszych metod: 1. mamy wektor [x 1, x 2,..., x j,...x 110 ] zmiennej age. 2. Mamy dane wartości funkcji h(x i ) 3. Chcemy przybliżyć całkę h(x)dx 4. Metoda prostokątów - przybliżamy całkę polami prostokątów, dla danego przedziału [x i, x i+1 ] możemy wziąć wysokość prostokątu za h(x i ), h(x i+1 ), bądź ich średnią 5. Ew., jeśli Państwo znają bardziej wyrafinowane metody (kwadratury), proszę z nich skorzystać w następnym zadaniu 30 / 121

38 Wartość oczekiwana i mediana czasu przeżycia Wartość oczekiwana czasu przeżycia µ = E(T ) = 0 tf (t)dt = µ = 0 S(t)dt Uwaga: może się zdarzyć, że estymator S(t) nie zbiegnie do 0 wraz z t, wówczas trzeba sensownie ograniczyć przedział całkowania z góry. Mediana czasu przeżycia } t med spełnia t med = inf t {S(t) = / 121

39 Zadanie programistyczne Cel: wykorzystanie funkcji hazardu do wyznaczenia empirycznej funkcji przeżycia 1. Dla zaprezentowanych na poprzednich slajdach funkcjach hazardu dla kobiet i mężczyzn w latach 1940 i 2010 wyznaczyć skumulowaną funkcję hazardu i empiryczną funkcję przeżycia 2. Zaprezentować cztery otrzymane funkcje przeżycia na wykresie 3. Znaleźć mediany w/w czterech rozkładów przeżycia 32 / 121

40 Funkcje przeżycia w USA W latach 1940 i 2000 względem płci Rysunek: (raczej niedokładne) przybliżenie funkcji przeżycia w USA w latach 1940 i 2000 względem płci 33 / 121

41 Metody nieparametryczne estymatory: Kaplana-Meiera, Nelsona-Aalena, przedziały ufności, test log-rank 34 / 121

42 Punkt odniesienia: brak ucięcia danych Zróbmy krok wstecz: przyjmijmy, że obserwujemy N realizacji czasu przeżycia, obserwowanych bez ucięcia danych Zmienne losowe (T 1,..., T N ) z realizacjami (t 1,..., t N ) Przyjmując, że realizacje są niezależne, możemy zapisać funkcję wiarygodności dla takiej próby: L(f, T 1,..., T N ) = N f (t i ) i=1 Podczas gdy dystrybuanta empiryczna ma postać: ˆF N (t, T 1,..., T N ) = #{i : T i t} N 35 / 121

43 Empiryczna funkcja przeżycia: dane bez ucięcia Wykorzystując statystyki pozycyjne próby T (1),..., T (N) (i-tą statystyką pozycyjną nazywamy i-ty element posortowanego wektora realizacji z próby) możemy zapisać dystrybuantę jako: ˆF N (t) = 1 T (i) t (1 1 n i + 1 ) gdzie utożsamiliśmy dystrybuantę empiryczną (zm. losową) z wartością funkcji dystrybuanty, ten zapis pozwala nam również określić empiryczną funkcję przeżycia: Ŝ N (t) = T (i) t (1 1 n i + 1 ) Jak zmienią się te obiekty, gdy dane zostaną ucięte? 36 / 121

44 Funkcja wiarygodności - dane ucięte z prawej strony Rozważamy próbę będącą realizacją dwóch niezależnych wektorów zmiennych losowych: (T 1,..., T N ) z realizacjami (t 1,..., t N ) i indykatora cenzurowania (δ 1,..., δ N ) z realizacjami δ i {0, 1} 37 / 121

45 Funkcja wiarygodności - dane ucięte z prawej strony Rozważamy próbę będącą realizacją dwóch niezależnych wektorów zmiennych losowych: (T 1,..., T N ) z realizacjami (t 1,..., t N ) i indykatora cenzurowania (δ 1,..., δ N ) z realizacjami δ i {0, 1} Funkcja wiarygodności danych uciętych: L (f, T 1,..., T N, δ 1,..., δ N ) = N f (t i ) δ i S (t i ) 1 δ i = i=1 N h (t i ) δ i S (t i ) i=1 37 / 121

46 Estymator Kaplana Meiera Propozycja zastąpienia estymatora dystrybuanty empirycznej dla danych nieuciętych miała postać: przez: ˆF N (t) = 1 T (i) t (1 1 n i + 1 ) ˆF N KM (t) = 1 δ i (1 n i + 1 ) T (i) t co daje estymator funkcji przeżycia: Ŝ KM N (t) = T (i) t (1 δ i n i + 1 ) postać ta jest jednak mało wygodna w zastosowaniach, poniżej wyprowadzimy heurystycznie postać alternatywną. 38 / 121

47 Heurystyczne wyprowadzenie estymatora K-M Rozważmy N hazardzistów grających w ruletkę. Na początku gry wszyscy dysponują swoimi środkami, tj. nie ma żadnych bankrutów, S(0) = 1 Zachodzi, że: S(k) = P (T > k T > k 1) P(T > k 1) = (1 P(T k T > k 1))P(T > k 1) = (1 P(T = k T k))p(t > k 1) = (1 P(T = k T k))s(k 1) = q(k)s(k 1) Rekursywnie: k S(k) = q(t) t=0 39 / 121

48 Jak estymować q(k) = (1 P(T = k T k))? Niech n i = liczba graczy, których nadal obserwujemy w chwili i, będziemy też używać terminu zbiór ryzka w chwili i Niech d i = liczba graczy, którzy przegrywają w chwili i Przybliżamy: P(T = k T k) = d i n i 40 / 121

49 Estymator Kaplana-Meiera Alternatywna nazwa w lit. anglojęzycznej: product-limit estimator Zadany wzorem: Ŝ(t) = ( 1 d ) i n t i t i Estymator jest prawostronnie ciągłą funkcją schodkową Interesuje nas tylko to, co się dzieje w momentach obserwacji porażki 41 / 121

50 Wracamy do obiektu truncdata Przypomnienie: > truncdata [1] / 121

51 Obliczenie estymatora Ŝ K M (t) Oraz S[0, 2) = 1 t i d i n i q i 1 q i S i = (1 q i ) / 121

52 Przedziały ufności: metoda Delta Pomimo, że metoda jest nieparametryczna, chcielibyśmy korzystać z statystycznej miary niepewności naszego przybliżenia rozkładu czasu przeżycia W tym celu wykorzystamy metodę delta Metoda Delta Niech X : zm. losowa taka, że E [X ] = µ, Var [X ] = σ 2 i niech g(z) - funkcja ciągła, wówczas momenty zmiennej g(x ) można przybliżać jak następuje: E [g(x )] g (µ) Var [g(x )] σ 2 g (µ) 2 44 / 121

53 Przedziały ufności czasu przeżycia ( )) Var ln (Ŝ(tk ) = ( ( Var ln 1 d )) i d i n t i t i n t i t i (n i d i ) to pozwala nam uzyskać następujące przybliżenie: ] 2 d i Var[Ŝ(t)] [Ŝ(t) n i (n i d i ) t i t z uwagi na to, że przedziały ufności szacowane w oparciu o to przybliżenie mogą wychodzić poza przedział [0, 1] w praktyce stosuje się poniższy wzór: [ ( ))] Var ln ln (Ŝ(t) [ ln 1 )] 2 (Ŝ(t) t i t d i n i (n i d i ) 45 / 121

54 Mediana czasu przeżycia i niepewność jej oszacowania Oszacowanie mediany dostajemy poprzez: ˆt med = inf t { t : Ŝ(t) = 1 } 2 Przedział 1 p ufności dostajemy z wzoru: z p g(ŝ(t)) Var[g(Ŝ(t))] g(1 2 ) z p 2 2 przyjmując log-log transformatę g( ) 46 / 121

55 Implementacja w R - metoda survfit() > km.estimation = survfit(truncdata~1, + conf.type = "log-log") > km.estimation > summary(km.estimation) > plot(km.estimation) 47 / 121

56 Wynik Ŝ K M (t) / 121

57 Zadanie programistyczne Cel: implementacja estymatora K-M oraz przedziałów ufności 1. Zaimplementować i wykreślić estymatory K-M dla małżeństw w zbiorze divorce.rds różnicując małżeństwa mieszane i pozostałe 2. Znaleźć wartości średnie czasu przeżycia (podpowiedź: help(print.survfit)) 3. Czy obydwie mediany można wyznaczyć w tych zbiorach? 4. Proszę porównać otrzymane momenty rozkładu z momentami wyliczonymi ze zbioru bez uwzględnienia obcięcia danych 49 / 121

58 Wynik Survival function K M estimate Survival function K M estimate Not mixed Mixed 50 / 121

59 Estymator Nelsona-Aalena/Fleminga-Harringtona Alternatywne podejście: wychodzimy z estymatora funkcji hazardu skumulowanego: H(t) = d i n t i t i a funkcję przeżycia dostajemy z: S(t) = e H(t) 51 / 121

60 Różnice między K-M a N-A/H-F Estymator K M jest estymatorem produktowym, wartość początkowych q(k) ma bardzo duży wpływ na zachowanie estymatora, np. przy danych lewostronnie uciętych gdy większość porażek ma miejsce przed rozpoczęciem obserwacji W/w problem nie jest tak istotny dla estymatora N-A/H-F, ponieważ zachowanie estymatora zależy od wykładnika sumy q k / 121

61 Implementacja w R - metoda survfit() > km.estimation = survfit(truncdata~1, + conf.type = "log-log", type = "fh") > km.estimation > summary(km.estimation) > plot(km.estimation) 53 / 121

62 Zadanie programistyczne Cel: implementacja estymatora N-A 1. Powtórzenie poprzedniego zadania ze zmienionym typem estymatora 2. Porównanie oszacowań N-A i K-M 54 / 121

63 Porównywanie dwóch rozkładów przeżycia Standardowe pytania: 1. Czy średnie czasy przeżycia w dwóch grupach są równe (H 0 ) czy różne (H a ) - test dwustronny 2. Czy średni czas przeżycia w jednej grupie jest równy (H 0 ) czy wyższy/niższy (H a ) niż średni czas przeżycia w drugiej grupie? 3. Dla parametrycznych rozkładów przeżycia możemy korzystać z metody największej wiarygodności dla konstrukcji testu 4. Co zrobić w przypadku estymatorów nieparametrycznych? 55 / 121

64 Konstrukcja testu log-rank Przyjmijmy, że jedna grupa jest grupą kontrolną (control), a druga - grupą eksperymentalną (treatment) Dla każego czasu porażki t i możemy w obydwu grupach określić populacje: graczy n 0i i n 1i dla grupy kontrolnej/badanej i liczbę porażek d 0i i d 1i Możemy też określić rozkłady brzegowe łącząc obydwie grupy, dostając d i oraz n i Jeśli realizacje d ji są niezależne między grupami, to zachodzi: p(d 0i n 0i, n 1i, d i ) = ( n0i )( n1i ) d 0i d ( 1i ni ) d i 56 / 121

65 Interpretacja kombinatoryczna urna z n 0i i n 1i kulami (każda grupa o innym kolorze) Losujemy z tej urny d i kul ze zwracaniem (nie interesują nas konkretni agenci, lecz częstotliwość porażki) Wówczas liczba d 0i ma rozkład hipergeometryczny (jeśli faktycznie między grupami kontrolną i badaną nie ma różnic) 57 / 121

66 Momenty d 0i µ 0i = E (d 0i ) = n 0id i n i σ 2 0i = Var [d 0i ] = n 0in 1i d i (n i d i ) n 2 i (n i 1) co pozwala nam zdefiniować statystykę testową: U 0 = D (d 0i µ 0i ) i=1 V 0 = Var[U 0 ] = D σ0i 2 i U 0 V0 N (0, 1) = U2 0 V 0 χ 2 (1) 58 / 121

67 Prosty przykład Agent t i δ i Grupa C C T C T T W grupie kontrolnej C mamy czasy przeżycia: 6, 7 +, 15 W grupie eksperymentalnej T mamy czasy przeżycia: 10, 19 +, / 121

68 Implementacja w klasie Surv > tt <- c(6, 7, 10, 15, 19, 25) > delta <- c(1, 0, 1, 1, 0, 1) > trt <- c(0, 0, 1, 0, 1, 1) zmienna trt - indykator bycia w grupie treatment trtobject = Surv(tt, delta) stratifiedkm = survfit(trtobject~trt, +conf.type ="log-log") logrank = survdiff(trtobject~trt) 60 / 121

69 Zadanie programistyczne Cel: poznanie implementacji testu log-rank w R, stratyfikacja estymatora K-M 1. Zaimplementować i porównać estymator K-M warunkując wykształceniem męża 2. Porównać rozkład przeżycia małżeństw mieszanych i pozostałych 61 / 121

70 Stratyfikowany estymator K-M S(t) < Years 62 / 121

71 Ważony test log-rank Przyjmijmy, że nie traktujemy wszystkich czasów przeżycia jednakowo, i dla ich realizacji t 1 <... < t D definiujemy wagi w i, i {1,..., D}, możemy wówczas skonstruować test ważony: U 0 (w) = D w i (d 0i µ 0i ) i=1 V 0 (w) = D i=1 w 2 i σ 2 0i Najpopularniejszą w praktyce metodą wyboru wag jest: ρ w i = [Ŝ(ti )] dla funkcji przeżycia w całej populacji 63 / 121

72 Model Coxa proporcjonalnych hazardów metoda coxph(survival), wybór regresorów, testowanie hipotez, diagnostyka 64 / 121

73 Uwzględnianie cech graczy/pacjentów Zwykle obserwujemy szereg dodatkowych cech, które mogą wpływać na przeżycie/bankructwo, np: płeć, czy osoba pali papierosy wykształcenie Póki co przyjmiemy, że te dodatkowe cechy różnią się między graczami/pacjentami, lecz pozostają stałe w czasie (ten przypadek uogólnia się na zmienne będące liniową funkcją czasu, np. wiek) 65 / 121

74 Regresja w modelu proporcjonalnych hazardów Założenie proporcjonalnych hazardów: ψ : h 1 (t) = ψh 0 (t) dodatkowo, przyjmiemy nietrywialną zależność stałej skalującej ψ od innych cech charakterystycznych z graczy: ψ = e zβ Przyjmując to założenie rozważamy model proporcjonalnego hazardu Coxa. Hazard h 0 (t) nazywa się hazardem bazowym, właściwym dla przypadku gdy z = / 121

75 Postać liniowa Dzieląc przez h 0 (t) i biorąc logarytm otrzymujemy prosty model liniowy: ( ) h1 (t) n ln = β i z i h 0 (t) O ile nie uczyniono żadnych założeń co doh 0 (t), to równania modelu podane powyżej kryją w sobie dwa założenia: multiplikatywna zależność między h 0 (t) a log-liniową funkcją zmiennych objaśniających (proporcjonalność), tj. dla dwóch obserwacji o różnych wartościach dla zmiennych niezależnych, stosunek funkcji hazardu dla tych dwóch obserwacji nie zależy od czasu. istnieje log-liniowa zależność między zmiennymi niezależnymi a ukrytą funkcją hazardu. i=1 67 / 121

76 Zmienna zero-jedynkowa Przypomnijmy, pracujemy pod założeniem proporcjonalności funkcji hazardu Niech dane będą dwie grupy o potencjalnie różnych cechach charakterystycznych z i, ich funkcje hazardu spełniają: h 1 (t) = h 0 (t)e βz 1 h 2 (t) = h 0 (t)e βz 2 Iloraz funkcji hazardu ma postać: HR(t) = e β(z 1 z 2 ) przykładowo, jeśli z 1 odzwierciedla grupę eksperymentalną, a z 2 - kontrolną, to z 1 = 1 i z 2 = / 121

77 Funkcja częściowej wiarygodności Przypomnijmy, funkcja wiarygodności dla próby: L (λ, t 1,..., t n ) = n f (t i, λ) δ i S (t i, λ) (1 δ i ) = i=1 zdarzenia cenzurujące wpływają na L. n h (t i, λ) δ i S (t i, λ) Funkcja częściowej wiarygodności Główna idea: zdarzenia cenzurujące nie wpływają na jej wartość, jest produktem prawdopodobieństw warunkowych zdarzeń w próbie. i=1 69 / 121

78 Przypomnienie przykładu Agent t i δ i Grupa C C T C T T W grupie kontrolnej C mamy czasy przeżycia: 6, 7 +, 15 W grupie eksperymentalnej T mamy czasy przeżycia: 10, 19 +, 25 ψ 1 = ψ 2 = ψ 4 = 1, ψ 3 = ψ 5 = ψ 6 = ψ W grupie eksperymentalnej T przeciętnie większe, oczekujemy β < 0 70 / 121

79 Obliczanie partial likelihood Hazard pacjenta i w chwili j: h i (t j ) = h 0 (t j )ψ i W grupie kontrolnej mamy ψ i = 1 (hazard bazowy) W grupie eksperymentalnej mamy ψ i = ψ czasy śmierci t i odpowiadają drugiej kolumnie w tabeli, D różnych wartości W rozważanym przypadku każdy czas śmierci - śmierć jednego pacjenta (brak remisów, rozważymy to później) Rozważmy t j, Jakie jest p-stwo, że i-ty pacjent właśnie w tej chwili umrze? Punktem odniesienia jest zbiór ryzyka, tj. liczba pacjentów którzy nadal żyją R j i są obserwowani. p j = h i (t j ) k R j h k (t j ) = h 0 (t j )ψ i k R j h 0 (t j )ψ j = Partial likelihood zadany jest wzorem: D L(t 1,..., t D ) = p i i=1 ψ i k R j ψ j 71 / 121

80 Nasz przykład p 1 = 1 3ψ + 3 w mianowniku: 6 pacjentów, troje z grupy T, troje z grupy C, w liczniku 1 pacjent z grupy C p 2 = ψ 3ψ + 1 w mianowniku: 4 pacjentów, troje z grupy T, jeden z grupy C, w liczniku 1 pacjent z grupy T p 3 = 1 2ψ + 1 w mianowniku: 3 pacjentów, dwoje z grupy T, jeden z grupy C, w liczniku: 1 pacjent z grupy C p 4 = 1 (1) 72 / 121

81 Funkcja częściowej wiarygodności Wypracowaliśmy funkcję częściowej wiarygodności dla naszych danych: 1 ψ 1 L(ψ) = 3ψ + 3 3ψ + 1 2ψ + 1 następnie należy zmaksymalizować tę funkcję (bądź jej dowolną rosnącą transformację, np. ln(l(ψ)) i znaleźć arg max ψ = e β Przy testowaniu potrzebne są pierwsza (score) i druga (informacja) pochodna tej funkcji. 73 / 121

82 Wynik procedury 74 / 121

83 Równoczesne porażki - jak wpływają na L(β)? Agent t i δ i Grupa C T C T C T T Główna idea: dostosowanie mianownika we wzorze na p-stwo warunkowe (zbiór R i ) Należy zliczyć na ile sposobów 2 agentów którzy w chwili t i = 6 przegrywają może być z grupy kontrolnej, bądź po jednym z obydwu grup bądź obydwu z grupy eksperymentalnej Znaczny ciężar obliczeniowy w dużych próbach 75 / 121

84 Metoda coxph(survival) Fortunnie, nie musimy przeprowadzać tego rodzaju obliczeń z ręki, są zaimplementowane w metodzie coxph(survival) Przyjrzyjmy się składni tej metody (help(coxph)) 76 / 121

85 Test Walda Test Walda Niech ˆβ będzie oszacowaniem parametru maksymalizującym L(β), i niech I ( ˆβ) ( ) = L ˆβ będzie informacją z próby. W przybliżeniu, Var[ ˆβ] = 1 I ( ˆβ). Testem Walda dla oszacowania ˆβ jest: Z = ˆβ Var[ ˆβ] Rozkład: Z 2 χ 2 (1) 77 / 121

86 Test score Test score Główna idea: jeśli nasze oszacowanie jest bliskie hipotezie zerowej β = 0 to pochodna funkcji L(β) powinna być mała wokół L(0) (jesteśmy blisko maksimum) Z = L (β) I (β = 0) Ponownie rozkład Z 2 χ 2 (1) 78 / 121

87 Test ilorazu wiarygodności ( ) LR 2 = L 2 β = ˆβ L (β = 0) co po zlogarytmizowaniu stronami daje: [ ( ) ] 2 l β = ˆβ l (β = 0) z rozkładem analogicznym do przedstawionych powyżej dwóch testów. 79 / 121

88 Przykład > result.cox <- coxph(trtobject~trt) > summary(result.cox) 80 / 121

89 Estymacja hazardu bazowego Po wyestymowaniu wektora parametrów β wiemy już, o ile szybciej/wolniej umierają osboty z określonej grupy, co z funkcjami przeżycia? d i h 0 (t i ) = j R i e ˆβ T z j Uwaga: gdy β = 0 ten estymator redukuje się do estymatora N A. Bazową funkcję przeżycia wyprowadzamy z bazowego hazardu skumulowanego: S 0 (t) = e H 0(t) A funkcję przeżycia dla określonej wartości z dostajemy z: S(t z) = [S 0 (t)] e ˆβ T z 81 / 121

90 Zadanie programistyczne 1. W oparciu o nasz przykład, wyestymować hazard bazowy oraz funkcje przeżycia grupy kontrolnej i eksperymentalnej 2. Podpowiedź: help(basehaz), opcja centered=false 82 / 121

91 Zmienne objaśniające ciągłe i kategoryczne Do tej pory rozważyliśmy bardzo prostą regresję z jedną zmienną zero-jedynkową dla porównania grupy kontrolnej z eksperymentalną Naturalnie, w danych mamy do dyspozycji zwykle dużo więcej informacji (np. zmienne kategoryczne bądź zmienne ciągłe) Wraz z wprowadzeniem większej ilości zmiennych pojawiają się pytania o ich dobór i wpływ na oszacowania parametrów modelu Potrzebujemy bogatszego zbioru danych niż te, z których korzystaliśmy do tej pory 83 / 121

92 Zbiór danych pharmacosmoking(asaur) ttr - czas do ponownego rozpoczęcia palenia relapse - indykator, czy do agent i ponownie zaczął palić grp - indykator przynależności do grupy, poziomy combination i patchonly age - wiek w momencie rozpoczęcia eksperymentu agegroup2 - zmienna wiek rozbita na grupy i 50+ agegroup , 35-49, 50-64, 65+ employment: ft (full-time), pt (part-time), other (?) 84 / 121

93 Zadanie programistyczne 1. Wyestymować model (A) Coxa ze zmienną objaśniającą grp, przeprowadzić testy istotności oszacowań parametrów modelu, wyestymować funkcję hazardu bazowego i funkcje przeżycia 2. Wyestymować model (B) Coxa ze zmienną objaśniającą agegroup4 3. Wyestymować model (C) Coxa ze zmiennymi objaśniającymi agegroup 4 i employment 4. W każdym z przypadków zinterpretować uzyskane oszacowania parametrów i wpływ zmiennych na funkcję przeżycia 85 / 121

94 Testowanie hipotez - wybór modelu Rozważmy trzy modele: 1. Model A: zmienna objaśniająca X 2. Model B: zmienna objasniająca Y 3. Model C: zmienne objaśniające X, Y Powiemy, że modele A i B są zagnieżdżone w modelu C (lecz brak takiej relacji między modelami A i B). 86 / 121

95 Testowanie hipotez: modele zagnieżdżone W jaki sposób porównać A z C bądź B z C? Odpowiedzią jest test ilorazu (niepełnych) wiarygodności. Dwukrotność różnicy wartości L(β) ma rozkład χ 2 (k 1 k 2 ) gdzie k 1 i k 2 to stopnie swobody modelu większego i zredukowanego, odpowiednio. Reguła pamięciowa: model większy (z większą liczbą zmiennych/parametrów) będzie lepiej dopasowany, niż model mniejszy, interesuje nas skala różnicy dopasowania. 87 / 121

96 Zadanie programistyczne Porównać modele B i C podpowiedź: wystarczy użyć do tego funkcji anova(modelb, modelc) gdzie argumentami są obiekty coxph.object 88 / 121

97 Sekwencyjny dobór zmiennych? Pytanie: jak wybrać zestaw zmiennych/porównać modele niezagnieżdżone? W (niedoskonałej) praktyce spotyka się często dwa podejścia: forward - zaczynamy od modeli z jedną zmienną, wybieramy ten z najmniejszą wartością p-value oszacowania parametru następnie dodajemy pojedynczo pozostałe zmienne itd., regułą stopującą jest, gdy żadna testowana zmienna dodatkowa nie ma p-value dla swojego parametru regresji poniżej pewnego p backward - analogicznie jak wyżej, lecz zaczynamy od pełnego zestawu zmiennych i usuwamy je pojedyńczo Problem: p-values między krokami w/w procedur nie są porównywalne 89 / 121

98 Kryterium informacyjne Akaike dla modelu M( ˆβ, k) z k parametrami i oszacowanym wektorem parametrów ˆβ AIC M( ˆβ,k) = 2l( ˆβ) + 2k Człon 2l( ˆβ) odzwierciedla stopień dopasowania (im mniejsza wartość tego członu, tym ono lepsze) Człon 2k to kara za stosowanie k parametrów Mniejsze AIC - lepszy model 90 / 121

99 Ilustracja: plik akaike.r modelall.coxph <- coxph(surv(d$ttr, d$relapse) ~ d$grp + d$gender + d$race + d$employment + d$yearssmoking + d$levelsmoking + d$agegroup4 + d$priorattempts + d$longestnosmoke) result.step <- step(modelall.coxph, scope=list(upper=~ d$grp + d$gender + d$race + d$employment + d$yearssmoking + d$levelsmoking + d$agegroup4 + d$priorattempts + d$longestnosmoke, lower=~d$grp) ) 91 / 121

100 Uwzględnianie nieliniowej zależności od zmiennych ciągłych Omówiliśmy już jedno podejście - podział obserwacji zmiennej ciągłej na kilka grup i potraktowanie ich jako zmiennych kategorycznych (zmienna agegroup4) Alternatywą jest pozwolić procedurze maksymalizującej partial likelihood wybrać nieliniową aproksymację wpływu zmiennej ciągłej na funkcję hazardu Wygodnym narzędziem implementacji drugiego rozwiązania są splajny Stosowanie splajnów niesie ze sobą dwa problemy: dowolności wyboru węzłów oraz dowolności wyboru stopnia splajnu W praktyce stosuje się tzw. penalizowaną częściową funkcję wiarygodności - funkcją kary jest całka z drugiej pochodnej partial likelihood W metodzie coxph(survival) musimy wprowadzić nowy regresor, np. pspline(zmienna, df = X) 92 / 121

101 Zadanie programistyczne 1. Wyestymować model Coxa ze zmiennymi grp, employment i splajnem stopnia 4-go zmiennej age pspline(age, df=4) 2. Wykreślić wykres termplot(modelcox, se=t, terms=x) gdzie X - indykator regresora w modelu modelcox. 3. Czy osoby starsze szybciej czy wolniej powracały do palenia? 93 / 121

102 Wykres Log hazard age 94 / 121

103 Diagnostyka: reszty martyngałowe Analogicznie do zwykłej regresji: wnioskowanie w oparciu o reszty z modelu oraz zmiany oszacowań parametrów modelu Reszty martyngałowe Niech δ i = 1 gdy i-ty agent umrze/zbankrutuje i 0 w przeciwnym razie. Zdefiniujmy różnicę martyngałową dla oszacowań parametrów modelu ze zmiennymi objaśniającymi stałymi w czasie jako: m i = δ i Ĥ0(t i )e ˆβ T z i Zachodzą następujące własności: im i (, 1] ie[m i ] = 0 N i m i = 0 Wykres reszt martyngałowych może podpowiedzieć charakter brakującej zależności funkcyjnej w modelu 95 / 121

104 Przykład zastosowania result.0.coxph <- coxph(surv(d$ttr, d$relapse) ~ 1) rr.0 <- residuals(result.0.coxph, + type="martingale") Dokładnie jak w przypadku obiektów klas zwracanych przez inne metody estymacji. 96 / 121

105 Zadanie programistyczne 1. Dla modelu wybranego iteracyjną metodą Akaike wyznaczyć rozkład warunkując zmiennymi objaśniającymi. 97 / 121

106 Diagnostyka: reszty dewiacyjne Reszty dewiacyjne Niech m i będzie resztą martyngałową, wówczas możemy zdefiniować resztę dewiacyjną: d i = sgn(m i ) 2(m i + δ i ln(δ i m i )) Zachodzą następujące własności: Reszty d i są symetrycznie rozłożone wokół E[d i ] = 0 N i=1 d 2 i = LR 98 / 121

107 Zadanie programistyczne 1. Uzupełnić plik jacknife.r i wyznaczyć obserwacje wpływowe ze względu na zmienną wiek 2. podpowiedzi: Analogicznie do obserwacji wpływowych w klasycznej analizie regresji Usuwamy pojedynczo każdą z obserwacji i analizujemy wpływ jej pominięcia 99 / 121

108 Wykres reszt jacknife Change in coefficient for age Observation 100 / 121

109 Testowanie założenia o proporcjonalności hazardów Bez założenia o proporcjonalności nie wyeliminowalibyśmy hazardu bazowego z obliczeń partial likelihood W przypadku pojedyńczej zmiennej zerojedynkowej wizualnie to założenie odpowiada równej odległości log-hazardów dla obu grup względem t Zmienna kategoryczna z wieloma kategoriami prowadzi do równoległych log-hazardów Poniżej omówimy dwie metody weryfikacji w/w założenia: wykresy log-skumulowanych hazardów oraz tzw. reszty Schoenfelda 101 / 121

110 Log-skumulowane hazardy Przypomnienie, dla jednej zmiennej zero-jedynkowej z: S 1 (t) = [S 0 (t)] eβ = ln(s 1 (t)) = e β ln(s 0 (t)) chcemy ponownie wziąć logartym, musimy obie strony równania przemnożyć uprzednio przez 1: ln( ln(s 1 (t))) = β + ln( ln(s 0 (t))) powyższa funkcja to komplementarna log-log transformacja, jej wyznaczenie jest trywialne dla każdej z funkcji przeżycia z osobna, następnie obrazujemy w/w krzywe na wykresie. 102 / 121

111 Ilustracja cloglog.po Patch Only Combination logtime.po 103 / 121

112 Reszty Schoenfelda Wyprowadzamy z partial likelihood i score a: l( ˆβ) = z i β ln i D k Ri e z kβ l (β) = z i z k p(β, z k ) i D k Ri gdzie: p(β, z k ) = e z kβ j R k e z j β 104 / 121

113 Reszty Schoenfelda w praktyce Resztą Schoenfelda nazwiemy każdy pojedyńczy element sumowania w definicji l (β), ˆr i = z i k R i z k p(β, z k ). Wykres tych reszt jako funkcji z i powinien być wycentrowany wokół zera, jeśli założenie proporcjonalności jest spełnione. Reszty te są zdefiniowane jedynie dla czasów śmierci. Jeśli mamy więcej niż jedną zmienną objaśniającą, to wówczas należy wyznaczyć Reszty Schoenfelda dla każdej zmiennej objaśniającej z osobna. Uzyskujemy je analogicznie do reszt martyngałowych, zmieniając jedynie zmienną type = schoenfeld 105 / 121

114 Metody parametryczne rozkład wykładniczy i Weibulla 106 / 121

115 Wykładniczy rozkład czasu przeżycia H(t) = t 0 h(x)dx = S(t) = e λt f (t) = λe λt t 0 λdx = λt µ = E(T ) = S(t)dt = 1 0 λ t med : 1 2 = e λt med = t med = ln(2) λ Komentarz: własność stałej funkcji hazardu jest mało realistyczna. 107 / 121

116 Metoda Największej Wiarygodności przyjmijmy rozkład wykładniczy czasu przeżycia z parametrem λ, gdy niektóre obserwacje są ucięte, to wówczas: L (λ, t 1,..., t n ) = n f (t i, λ) δ i S (t i, λ) (1 δ i ) i=1 = n h (t i, λ) δ i S (t i, λ) i=1 gdzie przez δ i = 1 oznacza, że obserwacja nie jest ucięta. 108 / 121

117 Metoda Największej Wiarygodności: rozkład wykładniczy L (λ) = n i=1 ] [λe t i δi [ ] λ e λt 1 δi i wprowadzając d = N i=1 δ i oraz V = N i=1 t i możemy zapisać logartym fukcji wiarygodności: l (λ) ln (L (λ)) = d ln (λ) λv skąd możemy natychmiast wyprowadzić estymator ˆλ: (ˆλ ) l = 0 ˆλ = d V 109 / 121

118 Wariancja ˆλ ) l (ˆλ = ḓ ) (ˆλ λ = I 2 Var[ˆλ] 1 ) = I (ˆλ ˆλ 2 d = d V / 121

119 Zadanie programistyczne 1. Wyznaczyć ˆλ dla obiektu TruncData 2. Wykreślić funkcję hazardu i funkcję przeżycia Przypomnienie: > truncdata [1] / 121

120 Weibulla rozkład czasu przeżycia Parametr kształtu: α, parametr skali: 1 λ h(t) = αλ (λt) α 1 = αλ α t α 1 H(t) = (λt) α S(t) = e (λt)α ( ) E(T ) = Γ α λ t med = (ln (2)) 1 α λ 112 / 121

121 Alternatywna parametryzacja Weźmy σ = 1 α oraz µ = ln (λ), wówczas: oraz h(t) = 1 σ e µ σ t 1 σ 1 S(t) = e e µ σ t 1 σ Gdy σ = 1 wówczas rozkład Weibulla redukuje się do rozkładu wykładniczego z parametrem λ 113 / 121

122 Zadanie programistyczne Cel: ilustracja elastyczności specyfikacji funkcji hazardu w rozkładzie Weibulla 1. Wykreślić funkcję h(t) w rozkładzie Weibulla dla par parametrów: α = 2, λ = 0.05 α = 1, λ = 0.05 α = 0.5, λ = / 121

123 log-log transformacja rozkładu Weibulla ln ( ln (S(t i ))) = µ σ + 1 σ ln(t i) Ten wzór pozwoli nam na graficzne porównanie estymatora K M z rozkładem Weibulla 115 / 121

124 Zadanie programistyczne 1. Oszacować estymator K-M dla czasu przeżycia małżeństw mieszanych ze zbioru divorce 2. Zapisać szacowaną funkcję przeżycia, wykreślić rysunek jej log-log transformacji (Y ) względem logarytmu czasu przeżycia (X ) 3. Do wykresu dodać linię regresji Y na X 116 / 121

125 Wykres lls lt 117 / 121

126 Dobór rozkładu Weibulla dla estymatora K-M Mając dwa stopnie swobody (dwa parametry) możemy uzyskać ich identyfikację np. wymagając, żeby implikowana S(t) odpowiadała wyestymowanym wartościom Ŝ K M (t) w dwóch datach. Niech y 1 = ln ( ln (s(t 1 ))), y 2 = ln ( ln (s(t 2 ))), wówczas: ˆα = y 1 y 2 ln (t 1 ) ln (t 2 ) y 2 ln(t 1 ) y 1 ln(t 2 ) y ˆλ = e 1 y / 121

127 Przykład: pharmacosmoking, grupa patchonly Survival probability Days to relapse 119 / 121

128 Rozkład Weibulla w modelu z wieloma regresorami Rozkład Weibulla jako rozkład położenia i skali: zaburzenia z rozkładu EVD. ln (t) = µ + γz + σ ln (ε) 120 / 121

129 Przykład ttr = d$ttr[d$ttr> 0] relapse = d$relapse[d$ttr>0] age = d$age[d$ttr>0] employment = d$employment[d$ttr > 0] grp = d$grp[d$ttr>0] model.pharm.weib <- survreg(surv(ttr, relapse) ~ grp + age + employment, dist="weibull") summary(model.pharm.weib) Jedyna modyfikacja to zmiana parametru dist w funkcji survreg. Selekcja zmiennych itd. bez zmian. 121 / 121