Słownik metodologiczny · Testy statystyczne

Test log-rank – jak porównać czas do zdarzenia w grupach

Test log-rank sprawdza, czy krzywe przeżycia grup różnią się w populacji. Pokazujemy, jak liczy zdarzenia oczekiwane, przykład w R z HR i gotowy opis wyniku.

Strona główna / Słownik / Test log-rank
W skrócie: Test log-rank porównuje krzywe przeżycia grup: w każdej chwili zdarzenia zestawia liczbę zdarzeń obserwowanych z oczekiwaną przy braku różnic. Wynik to χ² z liczbą grup minus jeden stopni swobody. Test nie mówi, jak duża jest różnica, więc dołącz mediany i iloraz hazardów.

Co to jest test log-rank?

Test log-rank (ang. log-rank test, nazywany też testem Mantela–Coxa) sprawdza, czy krzywe przeżycia dwóch lub więcej grup różnią się w populacji. Stosuje się go, gdy wynikiem jest czas do zdarzenia, np. nawrotu depresji, a u części osób zdarzenia nie zaobserwowano. Jest to podstawowy test w analizie przeżycia i zwykle towarzyszy krzywym Kaplana–Meiera.

Jak działa test?

E1 = Σ dj · n1j / nj,   χ² = (O1 − E1)² / V

W każdej chwili j, w której ktoś doznał zdarzenia, test bierze liczbę zdarzeń dj i dzieli ją między grupy proporcjonalnie do liczby osób w ryzyku (n1j z ogólnej liczby nj). Suma udziałów to liczba zdarzeń oczekiwana przy braku różnic (E), porównywana z obserwowaną (O). V to wariancja tej różnicy. Statystyka ma rozkład χ² z liczbą stopni swobody równą liczbie grup minus jeden, a test nie zakłada żadnego kształtu krzywej przeżycia (Bland i Altman, 2004).

Przykład

Po leczeniu depresji 80 osób przydzielono losowo do terapii poznawczo-behawioralnej (CBT) albo psychoedukacji i obserwowano do 52 tygodni (dane symulowane). W grupie CBT wystąpiło 17 nawrotów przy 28.00 oczekiwanych, a w grupie psychoedukacji 27 przy 16.00 oczekiwanych. Test log-rank: χ²(1) = 12.77, p < .001. Mediana czasu do nawrotu wyniosła 35 tygodni w CBT i 13 tygodni w psychoedukacji. Wielkość różnicy podaje model Coxa: HR = 2.97, 95% CI [1.60, 5.53] dla psychoedukacji względem CBT.

Jak opisać w pracy

Czas do nawrotu depresji różnił się między grupami, test log-rank χ²(1) = 12.77, p < .001. Mediana czasu do nawrotu wyniosła 35 tygodni w grupie CBT i 13 tygodni w grupie psychoedukacji. W modelu proporcjonalnych hazardów Coxa ryzyko nawrotu w grupie psychoedukacji było wyższe, HR = 2.97, 95% CI [1.60, 5.53].

Na co uważać

  • Sam test nie mówi, jak duża jest różnica. Dołącz mediany i iloraz hazardów z przedziałem ufności.
  • Przecinające się krzywe. Gdy krzywe się krzyżują, test może przeoczyć różnicę, więc zawsze najpierw je narysuj.
  • Cenzurowanie musi być niezależne od rokowania. Gdy odchodzą głównie osoby w gorszym stanie, wynik jest obciążony (zob. obserwacja cenzurowana).
  • Nie zastępuj go testem t na czasach. Czasy do zdarzenia są niepełne i zwykle silnie skośne (Clark i in., 2003).

Pełną analizę pokazuje wpis Analiza przeżycia: Kaplan–Meier i model Coxa krok po kroku.

Przykład reprodukowalny

Test log-rank w R

Kod tworzy dane dwóch grup z czasem do nawrotu i obserwacjami cenzurowanymi, wykonuje test log-rank, podaje mediany i iloraz hazardów z modelu Coxa.

Test log-rank i HR dla dwóch grup

Dane wejściowe: 80 osób (dane symulowane, set.seed(211)): grupa, czas w tygodniach, wskaźnik nawrotu (1 = nawrót, 0 = cenzurowanie).

Co odczytać: liczby zdarzeń obserwowanych (O) i oczekiwanych (E), χ² i p, mediany czasu do nawrotu oraz HR z 95% CI.

R
library(survival)
set.seed(211)
n <- 40                                              # osoby w każdej grupie
grupa  <- factor(rep(c("CBT", "psychoedukacja"), each = n), levels = c("CBT", "psychoedukacja"))
t_zd   <- rexp(2 * n, rate = ifelse(grupa == "CBT", 0.025, 0.05))   # tygodnie do nawrotu
t_cen  <- runif(2 * n, 8, 52)                        # koniec obserwacji danej osoby
czas   <- pmax(1, pmin(round(t_zd), round(t_cen)))
nawrot <- as.integer(t_zd <= t_cen)                  # 1 = nawrót, 0 = obserwacja cenzurowana
lr <- survdiff(Surv(czas, nawrot) ~ grupa)           # test log-rank
noquote(cbind(N = lr$n, O = lr$obs, E = sprintf("%.2f", lr$exp)))
round(c(chi2 = lr$chisq, p = pchisq(lr$chisq, df = 1, lower.tail = FALSE)), 4)
survfit(Surv(czas, nawrot) ~ grupa)                  # mediany czasu do nawrotu
cox <- coxph(Surv(czas, nawrot) ~ grupa)             # wielkość efektu: HR
round(exp(cbind(HR = coef(cox), confint(cox))), 2)
Wynik w R
                     N  O  E
grupa=CBT            40 17 28.00
grupa=psychoedukacja 40 27 16.00
   chi2       p
12.7676  0.0004
Call: survfit(formula = Surv(czas, nawrot) ~ grupa)

                      n events median 0.95LCL 0.95UCL
grupa=CBT            40     17     35      28      NA
grupa=psychoedukacja 40     27     13       7      24
                      HR 2.5 % 97.5 %
grupapsychoedukacja 2.97   1.6   5.53

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet survival).

  1. R: R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3) [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/
  2. survival (wersja 3.8.6): Therneau, T. M. (2026). A package for survival analysis in R (R package version 3.8-6) [Computer software]. https://CRAN.R-project.org/package=survival

Najczęstsze pytania

Czy test log-rank wymaga proporcjonalnych hazardów?

Nie jest to warunek poprawności testu, ale test ma największą moc, gdy ryzyko jest stale wyższe w jednej grupie. Gdy krzywe się przecinają, różnica może zostać przeoczona.

Jak porównać testem log-rank trzy grupy lub więcej?

Test globalny ma liczbę grup minus jeden stopni swobody. Jeśli wyjdzie istotny, porównaj pary grup kolejnymi testami log-rank z korektą na wielokrotne porównania, np. Holma.

Co to jest warstwowy test log-rank?

To wersja, w której zdarzenia oczekiwane liczy się osobno w warstwach, np. w ośrodkach badania, a potem sumuje. W R służy do tego strata() w formule survdiff.

Powiązane hasła

Poradniki, w których użyjesz tego pojęcia

Potrzebujesz wsparcia w analizie danych?

Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.

Wyceń analizęOferta dla studentów

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Bland, J. M., & Altman, D. G. (2004). The logrank test. BMJ, 328(7447), 1073. https://doi.org/10.1136/bmj.328.7447.1073 ● Otwarty dostęp
  2. Clark, T. G., Bradburn, M. J., Love, S. B., & Altman, D. G. (2003). Survival analysis part I: Basic concepts and first analyses. British Journal of Cancer, 89(2), 232–238. https://doi.org/10.1038/sj.bjc.6601118 ● Otwarty dostęp

Cytowania BibTeX

@article{bland2004logrank, author={Bland, J. Martin and Altman, Douglas G.}, title={{The logrank test}}, journal={BMJ}, year={2004}, volume={328}, number={7447}, pages={1073}, doi={10.1136/bmj.328.7447.1073}}
@article{clark2003survival, author={Clark, T. G. and Bradburn, M. J. and Love, S. B. and Altman, D. G.}, title={{Survival analysis part I: Basic concepts and first analyses}}, journal={British Journal of Cancer}, year={2003}, volume={89}, number={2}, pages={232--238}, doi={10.1038/sj.bjc.6601118}}
R