Trực quan hóa mô hình Cox

Phân tích Sống sót trong R

Heidi Seibold

Statistician at LMU Munich

Các bước để trực quan hóa mô hình Cox

  • Ước lượng mô hình Cox
  • Chọn tổ hợp hiệp biến ("bệnh nhân giả định")
  • Tính đường cong sống sót
  • Tạo data.frame chứa thông tin đường cong
  • Vẽ biểu đồ
Phân tích Sống sót trong R

Bước 1: Ước lượng mô hình Cox

cxmod <- coxph(Surv(time, cens) ~ horTh + tsize, data = GBSG2)
  • Chọn tổ hợp hiệp biến ("bệnh nhân giả định")
    newdat <- expand.grid(
      horTh = levels(GBSG2$horTh),
      tsize = quantile(GBSG2$tsize, probs = c(0.25, 0.5, 0.75))   )
    rownames(newdat) <- letters[1:6]
    newdat
    
  horTh tsize
a    no    20
b   yes    20
c    no    25
...
Phân tích Sống sót trong R

Bước 2: Tính đường cong sống sót

cxsf <- survfit(cxmod, data = GBSG2, newdata = newdat, conf.type = "none")

str(cxsf)
List of 10
$ n       : int 686
$ time    : num [1:574] 8 15 16 17 18 29 42 46 57 63 ...
$ n.risk  : num [1:574] 686 685 684 683 681 680 679 678 677 676 ...
$ n.event : num [1:574] 0 0 0 0 0 0 0 0 0 0 ...
$ n.censor: num [1:574] 1 1 1 2 1 1 1 1 1 1 ...
$ surv    : num [1:574, 1:6] 1 1 1 1 1 1 1 1 1 1 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : NULL
.. ..$ : chr [1:6] "a" "b" "c" "d" ...
$ type    : chr "right"
$ cumhaz  : num [1:574, 1:6] 0 0 0 0 0 0 0 0 0 0 ...
$ std.err : num [1:574, 1:6] 0 0 0 0 0 0 0 0 0 0 ...
$ call    : language survfit(formula = cxmod, newdata = newdat, conf.type = "none", data = GBSG2)
  - attr(*, "class")= chr [1:2] "survfit.cox" "survfit"
Phân tích Sống sót trong R

Bước 3: Tạo data.frame với thông tin đường cong

surv_cxmod0 <- surv_summary(cxsf)
head(surv_cxmod0)
   time n.risk n.event n.censor surv std.err upper lower strata
 1    8    686       0        1    1       0    NA    NA      a
 2   15    685       0        1    1       0    NA    NA      a
 3   16    684       0        1    1       0    NA    NA      a
 4   17    683       0        2    1       0    NA    NA      a
 5   18    681       0        1    1       0    NA    NA      a
 6   29    680       0        1    1       0    NA    NA      a
surv_cxmod <- cbind(surv_cxmod0,
                    newdat[as.character(surv_cxmod0$strata), ])
Phân tích Sống sót trong R

Bước 4: Vẽ biểu đồ

ggsurvplot_df(surv_cxmod, linetype = "horTh", color = "tsize",
  legend.title = NULL, censor = FALSE)

Phân tích Sống sót trong R

Đến lượt bạn trực quan hóa!

Phân tích Sống sót trong R

Preparing Video For Download...