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?
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
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.
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
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.53Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet survival).
- 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/
- 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ówBibliografia i dalsza literatura naukowa (APA 7)
- 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
- 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}}