몇 가지 Cox 회귀 모델을 만들었으며 이러한 모델의 성능을보고 싶을 것입니다. ROC- 곡선 또는 c- 통계량은이 기사와 유사하게 유용 할 수 있다고 생각했습니다.
Armitage는 로지스틱 회귀를 사용했지만 생존 패키지에서 모델을 사용할 수 있는지 궁금합니다. survivalROC 는 이것이 가능하다는 힌트를 주지만 정기적으로 Cox 회귀로 작업하는 방법을 알 수는 없습니다.
이 예제에서 ROC 분석을 수행하는 방법을 누군가에게 보여 주면 감사하겠습니다.
library(survival)
data(veteran)
attach(veteran)
surv <- Surv(time, status)
fit <- coxph(surv ~ trt + age + prior, data=veteran)
summary(fit)
가능한 경우 원시 c- 정적 출력과 멋진 그래프를 모두 감사하겠습니다.
감사!
최신 정보
답변 주셔서 대단히 감사합니다. @Dwin : 귀하의 답변을 선택하기 직전에 이해했는지 확인하고 싶습니다.
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
나는 validate 함수와 부트 스트랩에 익숙하지 않지만 prof를 본 후. R-help에 대한 Frank Harrel의 대답 은 아마 Dxy를 얻는 방법이라고 생각했습니다. 상태 확인을위한 도움말 :
... 각 재 샘플에서 계산할 Somers의 Dxy 순위 상관 (이는 가능성 기반 통계보다 약간 오래 걸립니다). 행 Dxy에 해당하는 값은 2 * (C-0.5)와 같습니다. 여기서 C는 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
...
에서 R-도움말 질문 나는 지층이하지만 유효성 검사 기능에서 "유 = 60"매개 변수의 목적이 무엇인지에 대한 확신 해요 경우 나는 CPH에서 "SURV = TRUE"을 가져야한다고 이해했습니다. 이 점을 이해하고 실수하지 않았는지 확인하도록 도와 주면 감사하겠습니다.
index.corrected
강조해야 할 것입니다. 이는 미래의 성능에 대한 추정치입니다. 지층이 없기 때문에 u=60
필요하지 않습니다 validate
. 지층이있는 경우 생존 곡선이 교차 할 수 있으며 일반화 된 ROC 영역을 얻기 위해 특정 시점을 지정해야합니다.
cph()
명령을 살펴볼 것입니다 .