Tôi đã tạo ra một vài mô hình hồi quy Cox và tôi muốn xem các mô hình này hoạt động tốt như thế nào và tôi nghĩ rằng có lẽ đường cong ROC hoặc thống kê c có thể hữu ích tương tự như bài viết này sử dụng:
Armitage đã sử dụng hồi quy logistic nhưng tôi tự hỏi liệu có thể sử dụng mô hình từ gói sinh tồn hay không, survivalROC đưa ra gợi ý về điều này là có thể nhưng tôi không thể tìm ra cách để nó hoạt động với hồi quy Cox thông thường.
Tôi sẽ biết ơn nếu ai đó chỉ cho tôi cách thực hiện phân tích ROC trong ví dụ này:
library(survival)
data(veteran)
attach(veteran)
surv <- Surv(time, status)
fit <- coxph(surv ~ trt + age + prior, data=veteran)
summary(fit)
Nếu có thể tôi sẽ đánh giá cao cả đầu ra c-statics thô và một biểu đồ đẹp
Cảm ơn!
Cập nhật
Cảm ơn bạn rất nhiều vì câu trả lời. @Dwin: Tôi chỉ muốn chắc chắn rằng tôi đã hiểu nó ngay trước khi chọn câu trả lời của bạn.
Tính toán theo tôi hiểu theo gợi ý của DWin:
library(survival)
library(rms)
data(veteran)
fit.cph <- cph(surv ~ trt + age + prior, data=veteran, x=TRUE, y=TRUE, surv=TRUE)
# Summary fails!?
#summary(fit.cph)
# Get the Dxy
v <- validate(fit.cph, dxy=TRUE, B=100)
# Is this the correct value?
Dxy = v[rownames(v)=="Dxy", colnames(v)=="index.corrected"]
# The c-statistic according to the Dxy=2(c-0.5)
Dxy/2+0.5
Tôi không quen với chức năng xác nhận và bootstrapping nhưng sau khi xem prof. Câu trả lời của Frank Harrel ở đây trên R-help Tôi đoán rằng có lẽ đó là cách để có được Dxy. Trợ giúp để xác nhận trạng thái:
... Mối tương quan xếp hạng Dxy của Somalia được tính toán ở mỗi mẫu lại (quá trình này mất nhiều thời gian hơn so với thống kê dựa trên khả năng). Các giá trị tương ứng với hàng Dxy bằng 2 * (C - 0,5) trong đó C là chỉ số C hoặc xác suất phù hợp.
Tôi đoán tôi chủ yếu bối rối bởi các cột. Tôi đoán rằng giá trị đã sửa là giá trị tôi nên sử dụng nhưng tôi chưa thực sự hiểu đầu ra xác thực:
index.orig training test optimism index.corrected n
Dxy -0.0137 -0.0715 -0.0071 -0.0644 0.0507 100
R2 0.0079 0.0278 0.0037 0.0242 -0.0162 100
Slope 1.0000 1.0000 0.2939 0.7061 0.2939 100
...
Trong câu hỏi trợ giúp tôi đã hiểu rằng tôi nên có "Surv = TRUE" trong cph nếu tôi có tầng lớp nhưng tôi không chắc mục đích của tham số "u = 60" trong hàm xác thực là gì. Tôi sẽ biết ơn nếu bạn có thể giúp tôi hiểu những điều này và kiểm tra xem tôi đã không phạm sai lầm nào chưa.
index.corrected
là những gì cần được nhấn mạnh. Đây là những ước tính về khả năng thực hiện trong tương lai. u=60
là không cần thiết validate
vì bạn không có tầng lớp. Nếu bạn có địa tầng, các đường cong sinh tồn có thể giao nhau và bạn cần chỉ định một điểm thời gian cụ thể để có được khu vực ROC tổng quát.
cph()
lệnh của nó .