Regresja Coxa (kilka cech i czas do zdarzenia)
W skrócie
Kaplan-Meier i test log-rank porównują krzywe grup. Regresja Coxa pozwala kilku cechom działać na czas do zdarzenia jednocześnie: grupie, wiekowi i wcześniejszym osiągnięciom. Dla każdej cechy daje iloraz hazardów (HR) z przedziałem. Wybiera się ją w pytaniu „Jak długo trwa, zanim wystąpi zdarzenie?” w „Więcej opcji” → „Regresja Coxa, kolumny”. Statable liczy ją w R (pakiet survival); R jest ładowane raz, za pierwszym razem (przycisk podaje rozmiar).
Co oznacza iloraz hazardów
- Hazard to chwilowe ryzyko, że zdarzenie nastąpi teraz u kogoś, u kogo jeszcze nie nastąpiło. HR porównuje dwa hazardy: HR = 1,8 oznacza, że zdarzenie występuje w każdym momencie z hazardem 1,8 razy większym. HR = 1 oznacza brak różnicy; poniżej 1 hazard maleje.
- Iloraz hazardów nie jest ryzykiem względnym. HR = 1,8 nie oznacza, że zdarzenie jest 1,8 razy bardziej prawdopodobne.
- Dla grup HR jest wobec pierwszej grupy (grupy odniesienia); dla liczb obowiązuje na każdą dodatkową jednostkę. To, czy wkład wnosi cała kolumna, pokazuje test ilorazu wiarygodności.
Założenia
- Proporcjonalność hazardu: stosunek hazardów pozostaje w czasie ten sam. Statable sprawdza to testem score (score test) cox.zph (Grambsch i Therneau 1994), dla każdej cechy i ogółem. Przy p < ,05 uwaga stoi na początku wyniku: HR zmienia się wtedy w czasie, a jeden HR podsumowuje to tylko z grubsza. Krzyżujące się krzywe na wykresie są tego oznaką.
- Przybliżona reguła: co najmniej 10 zdarzeń na współczynnik (Peduzzi i in. 1995). Kolumna grup z k poziomami liczy się jako k − 1. Przy mniejszej liczbie zdarzeń HR są bardzo niepewne, a Statable pokazuje uwagę jeszcze przed obliczeniem.
- Metoda zakłada, że wypadnięcie z obserwacji nie ma nic wspólnego z ryzykiem (cenzurowanie nieinformatywne). Statable nie może tego sprawdzić.
- Można wybierać liczby i kolumny grup z 2 do 12 poziomami, najwyżej 8 kolumn. Brakujące wartości powodują pominięcie wiersza (tylko pełne przypadki, listwise).
Odczytywanie wyniku
- Tabela „Regresja Coxa: ilorazy hazardów”: B, błąd standardowy, z, p, HR i 95% przedział HR (Wald). Jeśli 1 leży w przedziale, związek nie jest wykazany.
- Test modelu: test ilorazu wiarygodności sprawdza, czy model wyjaśnia czas do zdarzenia lepiej niż model bez cech.
- Wskaźnik zgodności (C Harrella) (concordance index): odsetek porównywalnych par, które model porządkuje poprawnie; ,50 oznaczałoby przypadek. Tylko opisuje i nie jest testem.
Efron i Breslow
Gdy kilka osób ma zdarzenie w tym samym czasie (powtarzające się czasy), istnieje kilka sposobów obliczenia. Statable liczy według Efrona, tak jak R, co jest dokładniejsze. SPSS (COXREG) liczy według Breslowa; przy wielu powtarzających się czasach B, błąd standardowy i HR różnią się nieznacznie (prawie wcale przy niewielu powtarzających się czasach). Nie ma przełącznika.
Raportowanie wyniku
Regresja Coxa: test LR χ²(3) = 30,50, p < ,001; HR = 1,01, 95% CI [0,99; 1,03], p = ,232 (wiek); HR = 0,58, 95% CI [0,41; 0,80], p = ,001 (płeć: kobiety); HR = 1,59, 95% CI [1,27; 1,99], p < ,001 (ph.ecog); N = 227, zdarzenia: 164; C = ,64
Przykład (survival::lung, Loprinzi i in. 1994, 228 osób z zaawansowanym rakiem płuca): u kobiet śmierć występuje w każdym momencie z hazardem równym 0,58 hazardu u mężczyzn, przy tym samym wieku i tym samym ph.ecog (HR = 0,58, 95% CI [0,41; 0,80], p = ,001). Nie formułuj tego przyczynowo; podaj założenie o proporcjonalności hazardu i liczbę zdarzeń.
Dla specjalistów
survival::coxph (wersja 3.8), ties = „efron”, test Walda i przedział Walda z qnorm(.975); test ilorazu wiarygodności modelu i dla każdej cechy z modelu bez niej na tych samych przypadkach; cox.zph z transform = „km” (test score), dla każdej cechy (grupy razem) i GLOBAL; wskaźnik zgodności (concordance index) z coxph. Sprawdzone z R na Macu i z własną maksymalizacją funkcji wiarygodności cząstkowej (Efron i Breslow, bez survival), z tolerancją 1e-6. Tylko cenzurowanie (censoring) prawostronne, jedno zdarzenie na osobę, bez zmiennych zależnych od czasu, bez stratyfikacji.
library(survival)
m <- coxph(Surv(time, status) ~ age + sex + ph.ecog, data = lung, ties = "efron")
summary(m)
cox.zph(m, transform = "km", terms = TRUE)
Źródła
Cox, D. R. (1972). Regression models and life-tables. Journal of the Royal Statistical Society B, 34, 187-220. Grambsch, P. M. & Therneau, T. M. (1994). Proportional hazards tests and diagnostics based on weighted residuals. Biometrika, 81, 515-526. Peduzzi, P., Concato, J., Feinstein, A. R. & Holford, T. R. (1995). Importance of events per independent variable in proportional hazards regression analysis. Journal of Clinical Epidemiology, 48, 1503-1510. Efron, B. (1977). The efficiency of Cox’s likelihood function for censored data. Journal of the American Statistical Association, 72, 557-565. Harrell, F. E. et al. (1982). Evaluating the yield of medical tests. JAMA, 247, 2543-2546.