답변:
predict.coxph()
모든 예측 변수에 대한 표본 평균에 대한 위험 비율을 계산합니다 . 평균을 계산할 수있는 평소와 같이 요인이 더미 예측 자로 변환됩니다. Cox PH 모델은 로그 위험 ln h ( t )에 대한 선형 모델입니다 .
R의 예로 , Cox-PH 모델에 대한 John Fox 부록 의 데이터를 사용하여 매우 좋은 소개 텍스트를 제공합니다. 먼저, 우리는 자료를 fin
입수하고 석방 된 포로의 체포 시간에 대한 간단한 Cox-PH 모델을 구축합니다 ( : 팩터-더미 코딩으로 재정 지원을 받음 "no"
-> 0, "yes"
-> 1, age
: prio
: 사전 유죄 판결 횟수) :
> URL <- "http://socserv.mcmaster.ca/jfox/Books/Companion/data/Rossi.txt"
> Rossi <- read.table(URL, header=TRUE) # our data
> Rossi[1:3, c("week", "arrest", "fin", "age", "prio")] # looks like this
week arrest fin age prio
1 20 1 no 27 3
2 17 1 no 18 8
3 25 1 no 19 13
> library(survival) # for coxph()
> fitCPH <- coxph(Surv(week, arrest) ~ fin + age + prio, data=Rossi) # Cox-PH model
> (coefCPH <- coef(fitCPH)) # estimated coefficients
finyes age prio
-0.34695446 -0.06710533 0.09689320
meanFin <- mean(as.numeric(Rossi$fin) - 1) # average of financial aid dummy
meanAge <- mean(Rossi$age) # average age
meanPrio <- mean(Rossi$prio) # average number of prior convictions
rMean <- exp(coefCPH["finyes"]*meanFin # e^Xb
+ coefCPH["age"] *meanAge
+ coefCPH["prio"] *meanPrio)
r1234 <- exp(coefCPH["finyes"]*(as.numeric(Rossi[1:4, "fin"])-1)
+ coefCPH["age"] *Rossi[1:4, "age"]
+ coefCPH["prio"] *Rossi[1:4, "prio"])
이제 표본 평균에 대한 처음 4 명의 상대 위험을 계산하고의 결과와 비교합니다 predict.coxph()
.
> r1234 / rMean
[1] 1.0139038 3.0108488 4.5703176 0.7722002
> relRisk <- predict(fitCPH, Rossi, type="risk") # relative risk
> relRisk[1:4]
1 2 3 4
1.0139038 3.0108488 4.5703176 0.7722002
계층화 된 모델을 사용하는 predict.coxph()
경우 계층 평균에 대한 비교 reference
는 도움말 페이지에 설명 된 옵션을 통해 제어 할 수 있습니다 .
meanFin <- mean(as.numeric(Rossi$fin) - 1)
fin
범주 적이기 때문에 많은 의미가 없습니다 . modeFin <- get_Mode(Rossi$fin)
이 경우에 필요하지 않습니까?
fin
는 이진수이므로 인수의 숫자 표현은 값 1과 2를 갖습니다. 1을 빼면 디자인 행렬에도 나타나는 값 0과 1을 갖는 더미 코딩 된 변수가 제공됩니다. 레벨이 2 이상인 요인에는이 기능이 작동하지 않습니다. 더미 변수를 평균화하는 것이 의미가 있는지는 확실하지만 논쟁의 여지 predict.coxph()
가 있습니다.