Co to jest indeks C Harrella?
Indeks C Harrella (ang. Harrell's C, concordance index, C-index) to odsetek par porównywalnych osób, w których model przypisuje wyższe ryzyko osobie, u której zdarzenie wystąpiło wcześniej. Harrell i in. (1996) opisują go jako łatwą do interpretacji miarę dyskryminacji predykcyjnej, także dla danych przeżycia z obserwacjami cenzurowanymi. C = .50 oznacza ranking przypadkowy, a C = 1 ranking idealny.
Pary porównywalne i związek z AUC
Para jest porównywalna, gdy krótszy z dwóch czasów kończy się zdarzeniem. Jeśli krótszy czas jest cenzurowany, nie wiadomo, kto miał zdarzenie pierwszy, więc parę się pomija. Dla wyniku 0/1 bez czasu indeks C jest równy polu pod krzywą ROC; w danych przeżycia ocenia kolejność zdarzeń w całym okresie obserwacji, a nie w jednym punkcie czasu. Uno i in. (2011) zwrócili uwagę, że wartość C Harrella zależy od rozkładu cenzurowania w danym badaniu, i zaproponowali wersję z wagami, która tej wady nie ma.
Przykład
W symulacji 300 osób obserwowanych do 104 tygodni nawrót wystąpił u 195. Model Coxa z nasileniem objawów i wiekiem miał C Harrella = .684 (SE = 0.022), a C z wagami Uno = .694. Pełną analizę z C Harrella pokazuje poradnik Kaplan–Meier i model Coxa krok po kroku.
Jak opisać w pracy
Na co uważać
- Trafność pozorna. C liczony na danych, na których dopasowano model, jest zbyt optymistyczny; koryguj go bootstrapem lub walidacją krzyżową (Harrell i in., 1996).
- Tylko dyskryminacja. Wysoki C nie mówi, czy przewidywane prawdopodobieństwa przeżycia są trafne – sprawdź też kalibrację.
- Kierunek. Niektóre programy liczą zgodność dla czasu, a nie ryzyka; wynik wyraźnie poniżej .50 często oznacza po prostu odwrócony kierunek.
Indeks C Harrella w R
Kod symuluje czasy do nawrotu z cenzurowaniem, dopasowuje model Coxa i liczy indeks C Harrella z błędem standardowym oraz wersję z wagami Uno.
Indeks C Harrella i C Uno dla modelu Coxa
R
suppressPackageStartupMessages(library(survival))
set.seed(4520)
n <- 300
objawy <- rnorm(n); wiek <- rnorm(n) # predyktory standaryzowane
czas <- rexp(n, 0.02 * exp(0.7 * objawy + 0.2 * wiek)) # tygodnie do nawrotu
cenz <- runif(n, 10, 104) # koniec obserwacji
t_obs <- pmin(czas, cenz); zdarz <- as.numeric(czas <= cenz)
m <- coxph(Surv(t_obs, zdarz) ~ objawy + wiek)
c_h <- concordance(m) # C Harrella
c_u <- concordance(m, timewt = "n/G2") # wagi w stylu Uno
round(c(zdarzenia = sum(zdarz), C_Harrell = c_h$concordance, SE = sqrt(c_h$var),
C_Uno = c_u$concordance), 3)Wynik w R
zdarzenia C_Harrell SE C_Uno
195.000 0.684 0.022 0.694 Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet survival). W pracy podaj wersje faktycznie użytych pakietów (sessionInfo()).
- 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]. https://CRAN.R-project.org/package=survival
Najczęstsze pytania
Czym indeks C Harrella różni się od AUC?
Dla wyniku 0/1 to ta sama wartość. W danych przeżycia C porównuje kolejność czasów do zdarzenia w całej obserwacji i pomija pary rozstrzygnięte przez cenzurowanie, a AUC dotyczy stanu w jednym, ustalonym czasie.
Jaka wartość indeksu C Harrella jest dobra?
.50 to ranking przypadkowy, a 1 idealny. Umowne progi traktuj ostrożnie: ważniejsze jest, ile wynosi C w nowej próbie i czy model przewyższa prostsze alternatywy.
Jak policzyć indeks C Harrella w R?
Dla modelu z coxph() z pakietu survival użyj concordance(model); wartość jest też w summary(model) jako Concordance. Opcja timewt = "n/G2" daje C Uno.
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)
- Harrell, F. E., Lee, K. L., & Mark, D. B. (1996). Multivariable prognostic models: Issues in developing models, evaluating assumptions and adequacy, and measuring and reducing errors. Statistics in Medicine, 15(4), 361–387. https://doi.org/10.1002/(sici)1097-0258(19960229)15:4<361::aid-sim168>3.0.co;2-4
- Uno, H., Cai, T., Pencina, M. J., D'Agostino, R. B., & Wei, L. J. (2011). On the C-statistics for evaluating overall adequacy of risk prediction procedures with censored survival data. Statistics in Medicine, 30(10), 1105–1117. https://doi.org/10.1002/sim.4154 ● Otwarty dostęp
Cytowania BibTeX
@article{harrell1996multivariable, author={Harrell, Frank E. and Lee, Kerry L. and Mark, Daniel B.}, title={{Multivariable prognostic models: Issues in developing models, evaluating assumptions and adequacy, and measuring and reducing errors}}, journal={Statistics in Medicine}, year={1996}, volume={15}, number={4}, pages={361--387}, doi={10.1002/(sici)1097-0258(19960229)15:4<361::aid-sim168>3.0.co;2-4}}@article{uno2011cstatistics, author={Uno, Hajime and Cai, Tianxi and Pencina, Michael J. and D'Agostino, Ralph B. and Wei, L. J.}, title={{On the C-statistics for evaluating overall adequacy of risk prediction procedures with censored survival data}}, journal={Statistics in Medicine}, year={2011}, volume={30}, number={10}, pages={1105--1117}, doi={10.1002/sim.4154}}