Subskrypcja JoVE jest wymagana do oglądania tego materiału. Zaloguj się lub rozpocznij bezpłatny okres próbny.

Artykuł metodologiczny

Walidacja krajobrazu konkurencyjnego modelu ryzyka w oparciu o R

2.5K wyświetleń

DOI:

10.3791/64018

16 września 2022

* These authors contributed equally

W tym artykule

Podsumowanie

Obecny protokół opisuje kody w R do oceny zdolności rozróżniania i kalibracji konkurencyjnego modelu ryzyka, a także kody do jego wewnętrznej i zewnętrznej walidacji.

Streszczenie

Model proporcjonalnego hazardu Coxa jest szeroko stosowany do analiz przeżycia w warunkach klinicznych, ale nie jest w stanie poradzić sobie z wieloma wynikami przeżycia. W odróżnieniu od tradycyjnego modelu proporcjonalnego hazardu Coxa, konkurencyjne modele ryzyka uwzględniają obecność konkurujących ze sobą zdarzeń i ich połączenie z nomogramem, graficznym urządzeniem obliczeniowym, które jest użytecznym narzędziem dla klinicystów do przeprowadzania precyzyjnych prognoz prognostycznych. W niniejszym badaniu przedstawiono metodę ustalania konkurencyjnego nomogramu ryzyka, czyli oceny jego zdolności dyskryminacyjnych (tj. wskaźnika zgodności i pola pod krzywą) i kalibracyjnych (tj. krzywych kalibracyjnych), a także korzyści netto (tj. analizy krzywej decyzyjnej). Ponadto przeprowadzono również walidację wewnętrzną przy użyciu repróbek bootstrap oryginalnego zbioru danych oraz walidację zewnętrzną przy użyciu zewnętrznego zestawu danych ustalonego konkurencyjnego nomogramu ryzyka, aby wykazać jego zdolność do ekstrapolacji. Konkurencyjny nomogram ryzyka powinien służyć jako użyteczne narzędzie dla klinicystów do przewidywania rokowania z uwzględnieniem konkurencyjnych zagrożeń.

Wprowadzenie

W ostatnich latach, pojawiające się czynniki prognostyczne zostały zidentyfikowane wraz z rozwojem medycyny precyzyjnej, a modele prognostyczne łączące czynniki molekularne i kliniczno-patologiczne przyciągają coraz większą uwagę w warunkach klinicznych. Jednak modele niegraficzne, takie jak model proporcjonalnego hazardu Coxa, z wynikami wartości współczynników, są trudne do zrozumienia dla klinicystów1. Dla porównania, nomogram jest narzędziem do wizualizacji modeli regresji (w tym modelu regresji Coxa, konkurencyjnego modelu ryzyka itp.), dwuwymiarowym diagramem przeznaczonym do przybliżonych obliczeń graficznych funkcji matematycznej2. Umożliwia wycenę różnych poziomów zmiennych w modelu klinicznym oraz obliczanie ocen ryzyka (RS) w celu przewidywania rokowania.

Ocena modelu jest niezbędna do budowy modelu, a dwie cechy są ogólnie akceptowane do oceny: dyskryminacja i kalibracja. W modelach klinicznych dyskryminacja odnosi się do zdolności modelu do oddzielania osób, u których wystąpiły zdarzenia, od tych, u których nie wystąpiły, takich jak pacjenci, którzy umierają, w porównaniu z tymi, którzy pozostają przy życiu, a do jego scharakteryzowania zwykle używa się wskaźnika zgodności (indeksu C) lub obszaru pod krzywą charakterystyki operacyjnej odbiornika (AUC)3,4. Kalibracja to proces porównywania przewidywanych prawdopodobieństw modelu z rzeczywistymi prawdopodobieństwami, a krzywe kalibracyjne są szeroko stosowane do jego reprezentacji. Ponadto walidacja modelu (walidacja wewnętrzna i zewnętrzna) jest ważnym krokiem w budowie modelu i tylko zweryfikowane modele mogą być dalej ekstrapolowane5.

Model proporcjonalnego hazardu Coxa to model regresji używany w badaniach medycznych do badania związków między czynnikami prognostycznymi a statusem przeżycia. Jednak model proporcjonalnego hazardu Coxa uwzględnia tylko dwa statusy wyniku [Y (0, 1)], podczas gdy badani często mają do czynienia z więcej niż dwoma stanami i pojawiają się konkurencyjne zagrożenia [Y (0, 1, 2)]1. Całkowity czas przeżycia (OS), który definiuje się jako czas od daty pochodzenia (np. leczenia) do daty zgonu z jakiejkolwiek przyczyny, jest najważniejszym punktem końcowym w analizie przeżycia. Jednak system operacyjny nie odróżnia zgonów związanych z rakiem od zgonów niezwiązanych z rakiem (np. zdarzeń sercowo-naczyniowych i innych niepowiązanych przyczyn), ignorując w ten sposób konkurencyjne ryzyka6. W takich sytuacjach do przewidywania stanu przeżycia z uwzględnieniem konkurencyjnego ryzyka preferowany jest konkurencyjny model ryzyka7. Metodologia konstruowania i walidacji modeli proporcjonalnego hazardu Coxa jest dobrze ugruntowana, podczas gdy pojawiło się niewiele doniesień dotyczących walidacji konkurencyjnych modeli ryzyka.

W naszym poprzednim badaniu ustalono specyficzny konkurencyjny nomogram ryzyka, kombinację nomogramu i konkurencyjnego modelu ryzyka oraz oszacowanie oceny ryzyka na podstawie konkurencyjnego modelu ryzyka8. Niniejsze badanie ma na celu przedstawienie różnych metod oceny i walidacji ustalonego konkurencyjnego nomogramu ryzyka, który powinien służyć jako użyteczne narzędzie dla klinicystów do przewidywania rokowania z uwzględnieniem konkurencyjnych zagrożeń.

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Protokół

Baza danych SEER (Surveillance, Epidemiology, and End Results) to ogólnodostępna baza danych o nowotworach, która zawiera tylko zanonimizowane dane pacjentów (SEER ID: 12296-listopad 2018). W związku z tym badanie to zostało zwolnione z zatwierdzenia przez komisję rewizyjną stowarzyszonego szpitala Jinhua, Zhejiang University School of Medicine.

1. Przygotowanie danych i przygotowanie pakietów R

  1. Przygotowanie i zaimportowanie pliku data.
    > Zbiór danych <-read.csv(".../Rak piersi Data.xlsx") #Import data.
    UWAGA: Dane są przesyłane do pliku uzupełniającego 1.
  2. Zainstaluj i załaduj pakiety języka R.
    > pakiety <- c("rms","cmprsk","mstate","survival","riskRegression","
    prodlim")
    > req.pcg <- function(pcg){
    Nowy <- PCG[!( pcg %in% installed.packages()[, "Pakiet"])]]
    if (długość(nowy)) install.packages(nowy, zależności = T)
    sapply(pcg, wymagać, ch = T)
    }
    > req.pcg(pakiety)

    UWAGA: Wykonaj następujące procedury w oparciu o oprogramowanie R (wersja 3.6.2) przy użyciu pakietów rms, >cmprsk, mstate, survival, riskRegression i prodlim (http://www.r-projectrg/).

2. Ustal konkurencyjne nomogramy ryzyka na dwie różne metody

  1. Ustal konkurencyjny nomogram ryzyka metodą bezpośrednią.
    > mod_cph <- cph(Surv(Miesiące przeżycia, status) ~ czynnik1+ czynnik2+...,
    x=T, y=T, surv=T, data=Zbiór danych)
    > nom <- nomogram(mod_cph, fun=list(function(x) 1-surv_cph(36, x)...),
    funlabel=c("3-letnie wydarzenie1 Prawd."...), lp=F)
    #Take 36 miesiąc jako przykład.
    > mod_crr <- crr(Miesiące, fstatus, kod błędu=1, cov1=cov)
    > wynik <- log(log((1-real.3y),(1-cif.min36)))/(maxbeta/100)
    > działka (nom)
  2. Ustal konkurencyjny nomogram ryzyka w metodzie ważonej.
    > df.w <- crprep("Miesiące",",",
    data=Zbiór danych, trans=c(1,2), cens=0,
    keep=c("czynnik1"," czynnik2"...))
    > mod.w <- cph(Surv(Tstart, Tstop, status==1) ~ factor1+factor2+...,
    data=df.w, weight=weight.cens, subset=failcode ==1, surv=T)
    > nom.w <- nomogram(mod.w...)

3. Zdolność do dyskryminacji konkurencyjnego nomogramu ryzyka

  1. Indeks C dla dyskryminacji
    1. Dopasuj macierz cov do konkurencyjnego modelu ryzyka mod_crr. i uzyskaj przewidywaną macierz suv.
      > SUV < - predict.crr(mod_crr, cov)
    2. Uzyskaj skumulowaną częstość występowania w danym miesiącu z suv i oblicz indeks C za pomocą funkcji rcorr.cens.
      > cif36 <- suv[which(suv[,1]==36),][-1]
      > rcorr <- rcorr.cens(1-cif36,Surv(Dataset$Survivalmonths,Dataset$tumdeath))
      > indeks <- rcorr[1]
  2. AUC dla dyskryminacji
    1. Oceń wydajność predykcyjną konkurencyjnego modelu ryzyka przy użyciu funkcji Score (pakiet riskRegression).
      > fgr.w <- FGR(Hist(Miesiące, fstatus) ~ czynnik1+ czynnik2+..., data=Zbiór danych, przyczyna=1)
      > wynik <- Wynik(lista("Drobno-szary" = fgr.w),
    2. Wyodrębnij AUC z "score".
      > wynik$AUC

4. Zdolność do kalibracji konkurencyjnych modeli ryzyka

  1. Krzywe kalibracyjne z 95% przedziałem ufności konkurencyjnego modelu ryzyka
    1. Pobierz ramkę danych ze skumulowanymi częstościami występowania każdej osoby w określonym czasie awarii.
      > cif36 <- data.frame(cif36) #Take 36. miesiąc jako przykład.
      > nazwy(cif36.36_o)<-c("36m")
    2. Podziel kohortę zgodnie z szacowaną skumulowaną częstością występowania na pięć podgrup i oblicz średnią przewidywaną skumulowaną częstość występowania w każdej podgrupie.
      > Group36 <- cięcie(cif36$'36m',
      kwantyl(CIF36$'36M', seq(0, 1, 0.2)),
      include.lowest = TRUE, labels = 1:5)
      > mean36 <- as.vector(by(cif36 $'36m', grupa36, średnia))
    3. Oblicz zaobserwowane skumulowane częstości występowania, czyli rzeczywiste skumulowane częstości występowania, używając funkcji cuminc, a następnie uzyskaj obserwowane skumulowane przypadki z 95% przedziałem ufności w określonym czasie awarii.
      > cum36 <- cuminc(Zbiór danych$Miesiąceprzetrwania,Zbiór danych$fstatus,grupa36)
      > obs36 <- punkty czasowe(cum36,Dataset$Survivalmonths)$est[c(1:5),36]
      > obs36var <- timepoints(cum36,Dataset$Survivalmonths)$var[c(1:5),36]
      > df <- data.frame(średnia36, obs36, obs36var)
    4. Wykreślić krzywą kalibracyjną z przewidywanymi skumulowanymi częstościami występowania jako osią x i obserwowanymi skumulowanymi częstościami występowania jako osią y za pomocą funkcji ggplot.
      > ggplot(df)+ geom_point(aes(x=średnia36,y=obs36),col="czerwony")+
      geom_point(aes(x=średnia36,y=obs36),col="czerwony",pch=4)+
      geom_line(col="czerwony",aes(x=średnia36,y=obs36))+
      geom_errorbar(col="czerwony",aes(x=średnia36,y=obs36+1.96
      *sqrt(obs36var)),
      Ymin =OBS36-1.96*SQRT(OBS36var), YMAX = OBS36+1.96
      *sqrt(obs36var)))
      geom_abline(lty=3,lwd=2,col=c(rgb(0,118,192,
      maxColorValue=255)))
  2. Krzywa kalibracyjna z punktacją ryzyka konkurencyjnego modelu ryzyka
    1. Oceń każdy poziom wszystkich zmiennych i uzyskaj łączną wartość RS.
      > Zbiór danych$czynnik1[Zbiór danych$czynnik1==1] <- factor1.scale["Factor1_level1"]
      >
      ... #For przykład, Dataset$histology[Dataset$histology==1]<-histology.scale["Histology1"]
      > Zbiór danych$rs <- Zbiór danych$czynnik1+Zbiór danych$czynnik2+Zbiór danych$czynnik3+...
      UWAGA: Uzyskaj całkowitą RS dla każdego pacjenta, sumując punkty każdej zmiennej.
    2. Policz częstości występowania i oblicz zaobserwowane skumulowane częstości występowania różnych całkowitych ocen ryzyka.
      > rs.freq <- as.data.frame(table(Dataset$rs))
      > obs.36 <- vector(mode="numeryczny", length=nrow(rs.freq))
      > for (i in 1: nrow(rs.freq)) {
      zbiór danych <- podzbiór(Zbiór danych,Zbiór danych$rs== rs.freq [i,1])
      cif.dataset <- cuminc(dataset$Survivalmonths,dataset$death3)
      cif36.dataset <- punkty czasowe(cif.dataset,36)
      OBS.36[i] <- CIF36.dataset$EST[1]}
    3. Ustaw zakres osi x i oblicz przewidywane skumulowane częstości występowania całkowitych ocen ryzyka.
      > RS <- zakres(nom$total.points)
      > x.36 <- seq(min(RS),max(RS),0.01)
      > pre.36 <- 1-(1-cif.min36)^exp(x.36*maxbeta/100)
    4. Wykreślić krzywą kalibracyjną z ocenami ryzyka.
      > plot(x.36, pre.36, type='l'...)
      > par(new=TRUE)
      > wykres(as.vector(rs.freq[,1]), obs.36... )

5. Analiza krzywej decyzyjnej konkurencyjnych modeli ryzyka

  1. Pobieranie funkcji stdca w celu przeprowadzenia analizy krzywej decyzyjnej.
    > source("stdca. R")
  2. Wyodrębnij równania wielomianowe z nomogramu, aby obliczyć prawdopodobieństwo przeżycia.
    > nomogramEx(nomo = nom)
    > Dataset$predictors <- A * (Dataset$rs ^3) + B * (Dataset$rs ^2) + C * Dataset$rs + D
    #predictors są przewidywanymi prawdopodobieństwami zgonu specyficznego dla nowotworu obliczonymi za pomocą ustalonego nomogramu
  3. Wykonaj analizę krzywej decyzyjnej.
    > stdca(data = Zbiór danych, wynik = "status", ttoutcome = "Miesiące przeżycia", punkt czasowy = 36,
    predyktory = "predyktory", cmprsk = PRAWDA, gładki = FAŁSZ, prawdopodobieństwo = FAŁSZ)

    UWAGA: W celu oceny wyniku w przypadku konkurencyjnego ryzyka należy wybrać wartość TRUE dla cmprsk.

6. Wewnętrzna walidacja przy użyciu metody bootstrap

  1. Uzyskaj średnią przewidywaną skumulowaną częstość występowania przy użyciu metody bootstrap.
    1. Ponownie próbkuj oryginalny zestaw danych (Dataset) za pomocą polecenia replace w celu wygenerowania zestawu danych bootstrap (Dataset_in). Ustanów konkurencyjny model ryzyka (mod.in_crr) za pomocą zestawu danych bootstrap. Użyj funkcji predict.crr, aby przewidzieć mod.in_crr i zapętlić czasy b w celu wygenerowania suvall.in.
      B=b
      suvall.in <- list()
      for(j in 1:B){
      Dataset_in <- Zbiór danych[sample(c(1:nrow(Dataset)),nrow(Dataset),
      replace = PRAWDA),]
      Dołącz(Dataset_ wejść)
      cov. w <- model.matrix(~factor1+ factor2+...)[,-1]
      mod. w _crr <- crr(Miesiące, fstatus, kod błędu=1, cov1=cov.in)
      detach(Zbiór danych. wewnętrzny)
      SUV. w <- predict.crr(mod. in _crr, cov)
      suvall.in[[j]] <- suv.in}
    2. Uzyskaj średnią przewidywaną skumulowaną częstość występowania w danym miesiącu.
      CIF36ALL. inner <- vector(mode="numeryczny", length=nrow(Dataset))
      for (k w 1:B) {
      CIF36ALL. wewnętrzna<- CIF36ALL. wewnętrzny+ suval. wewnętrzny[[k]][który(suwal. wewnętrzny[[k]][,1]==36),][-1]
      }
      cif36.in <- cif36all.in/B
  2. Oblicz indeks C za pomocą wewnętrznej walidacji krzyżowej z funkcją rcorr.cens.
    rcorr. inner <- rcorr.cens(1-cif36.in,Surv(Dataset$Survivalmonths,Dataset$tumordeath))
    indeks. < wewnętrzny. wewnętrzny[1]
  3. Kalibracja za pomocą wewnętrznej walidacji krzyżowej.
    UWAGA: Kody krzywej kalibracyjnej konkurencyjnego modelu ryzyka z walidacją wewnętrzną są podobne do kodów w sekcji 4, podczas gdy suv został zastąpiony przez suv.in.

7. Zewnętrzna walidacja konkurencyjnego modelu ryzyka

  1. Uzyskaj przewidywane skumulowane przypadki zachorowań przy użyciu danych zewnętrznych. Uzyskaj przewidywane skumulowane częstości występowania za pomocą macierzy zmiennych danych zewnętrznych (cov.ex).
    suv.ex <- predict.crr(mod_crr,cov.ex)
    cif36.ex <- suv.ex [który(suv.ex $time=="36"),][-1]
  2. Obliczanie indeksu C przy użyciu walidacji zewnętrznej.
    rcorr.ex <- rcorr.cens(1-cif36.ex,Surv(Dataset.ex$Survivalmonths,Dataset.ex$tumdeath))
    cindex.ex <- rcorr.ex[1]
  3. Kalibracja przy użyciu zewnętrznej walidacji.
    UWAGA: Kody krzywej kalibracyjnej konkurencyjnego modelu ryzyka z wewnętrzną walidacją są podobne do kodów w sekcji 4, podczas gdy suv jest zastąpiony przez suv.ex.

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Wyniki

W niniejszym badaniu dane pacjentek z rakiem piersi zostały pobrane z bazy danych SEER i posłużyły jako dane przykładowe. Baza danych SEER dostarcza informacji o nowotworach reprezentujących około 34,6% populacji Stanów Zjednoczonych; uzyskano zezwolenie na dostęp do bazy danych (numer referencyjny 12296-Nov2018).

Stworzono dwa nomogramy (Rysunek 1), oba obejmujące typ histologiczny, stopień zróżnicowania, stadium T oraz stadium N, stosując odpowiednio metodę bezp...

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Dyskusja

W badaniu tym porównano konkurencyjne nomogramy ryzyka ustalone za pomocą dwóch odrębnych metod oraz przeprowadzono ocenę i walidację ustalonych nomogramów. W szczególności badanie to dostarczyło samouczka krok po kroku umożliwiającego ustalenie nomogramu w oparciu o metodę bezpośrednią, a także obliczenia wskaźnika C i wykreślenia krzywych kalibracyjnych.

Pakiet rms w oprogramowaniu R jest szeroko stosowany do konstruowania i oceny modeli proporcjonalnego hazardu Coxa, ale nie ma zas...

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Oświadczenia

Autorzy oświadczają, że nie mają sprzecznych interesów.

Podziękowania

Badanie było wspierane przez granty z Projektu Planu Nauk Medycznych i Technologii Prowincji Zhejiang (numery grantów 2013KYA212), ogólnego programu Fundacji Nauk Przyrodniczych Prowincji Zhejiang (numer grantu Y19H160126) oraz kluczowego programu Miejskiego Biura Nauki i Technologii Jinhua (numer grantu 2016-3-005, 2018-3-001d i 2019-3-013).

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Materiały

Lista materiałów użytych w tym artykule
NazwaFirmaNumer katalogowyKomentarze
Oprogramowanie RBrakNie dotyczyWersja 3.6.2 lub nowsza 
System komputerowyMicrosoft Okna 10  Windows 10 lub nowszy

Bibliografia

  1. Andersen, P. K., Gill, R. D. Cox's regression model for counting processes: A large sample study. The Annals of Statistics. 10 (4), 1100-1120 (1982).
  2. Lubsen, J., Pool, J., vander Does, E. A practical device for the application of a diagnostic or prognostic function. Methods of Information in Medicine. 17 (2), 127-129 (1978).
  3. Harrell, F. E., Lee, K. L., Mark, D. B. Multivariable prognostic models: Issues in developing models, evaluating assumptions and adequacy, and measuring and reducing errors. Statistics In Medicine. 15 (4), 361-387 (1996).
  4. Hung, H., Chiang, C. -T. Estimation methods for time-dependent AUC models with survival data. The Canadian Journal of Statistics / La Revue Canadienne de Statistique. 38 (1), 8-26 (2010).
  5. Moons, K. G. M., et al. Risk prediction models: I. Development, internal validation, and assessing the incremental value of a new (bio)marker. Heart. 98 (9), 683-690 (2012).
  6. Fu, J., et al. Real-world impact of non-breast cancer-specific death on overall survival in resectable breast cancer. Cancer. 123 (13), 2432-2443 (2017).
  7. Fine, J. P., Gray, R. J. A proportional hazards model for the subdistribution of a competing risk. Journal of the American Statistical Association. 94 (446), 496-509 (1999).
  8. Wu, L., et al. Establishing a competing risk regression nomogram model for survival data. Journal of Visualized Experiments. (164), e60684(2020).
  9. Zhang, Z., Geskus, R. B., Kattan, M. W., Zhang, H., Liu, T. Nomogram for survival analysis in the presence of competing risks. Annals of Translational Medicine. 5 (20), 403(2017).
  10. Zhang, Z. H., et al. Overview of model validation for survival regression model with competing risks using melanoma study data. Annals Of Translational Medicine. 6 (16), 325(2018).
  11. Newson, R. Confidence intervals for rank statistics: Somers' D and extensions. Stata Journal. 6 (3), 309-334 (2006).
  12. Davison, A. C., Hinkley, D. V., Schechtman, E. Efficient bootstrap simulation. Biometrika. 73 (3), 555-566 (1986).
  13. Roecker, E. B. Prediction error and its estimation for subset-selected models. Technometrics. 33 (4), 459-468 (1991).
  14. Steyerberg, E. W., Harrell, F. E. Prediction models need appropriate internal, internal-external, and external validation. Journal of Clinical Epidemiology. 69, 245-247 (2016).
  15. Zhang, Z., Chen, L., Xu, P., Hong, Y. Predictive analytics with ensemble modeling in laparoscopic surgery: A technical note. Laparoscopic, Endoscopic and Robotic Surgery. 5 (1), 25-34 (2022).

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Przedruki i uprawnienia

Tagi

Model proporcjonalnego hazardu Coxaanaliza przeżycianomogram ryzyka konkurencyjnegokrzywa kalibracjiobliczanie indeksu Cwalidacja metodą bootstrapwalidacja zewnętrznaanaliza krzywej decyzjipakiet Risk Regression