Отклонение и оценка остаточных участков - PullRequest
2 голосов
/ 27 апреля 2020

Я пытаюсь нанести на график данные об отклонениях и остаточных значениях (Kidtran) для модели пропорциональной опасности. 1. Я попытался построить график Остаточного отклонения для модели Кокса с ковариатами (раса, пол и пол по расовому взаимодействию), используя следующий код:

library(KMsurv)
data(kidtran)
kidtran

####Deviance Residuals####
fit<-coxph(Surv(time, delta)~race+gender+race*gender, method="breslow", data=kidtran)
resid.dev<-resid(fit,type="deviance")
par(mfrow = C(1,1))
plot(resid.dev,xlab = "Risk Score", ylab = "Deviance Residual", lwd=1 )
title("Deviance Residual")
resid.dev
abline(h=2.5, col="blue")
abline(h=-2.5, col="blue")

Он должен выглядеть следующим образом: enter image description here

Это были результаты, которые я получил. enter image description here

В дополнение к сообщению об ошибке после выполнения

par(mfrow = C(1,1))

Ошибка в C (1, 1): объект не интерпретируется как фактор

2- Я построил график остаточной оценки для каждого ковариата:

##score for interaction
fit<-coxph(Surv(time, delta)~race+gender+race*gender, method="breslow", data=kidtran)
resid.score<-resid(fit,type="score")
par(mfrow = C(1,2))
plot(resid.score)
resid.score
abline(h=2.5, col="blue")
abline(h=-2.5, col="blue")

##score for race
fit1<-coxph(Surv(time, delta)~race, method="breslow", data=kidtran)
resid.score<-resid(fit1,type="score")
par(mfrow = C(1,2))
plot(resid.score)
resid.score
abline(h=2.5, col="blue")
abline(h=-2.5, col="blue")

##score for gender
fit2<-coxph(Surv(time, delta)~gender, method="breslow", data=kidtran)
resid.score<-resid(fit2,type="score")
par(mfrow = C(1,2))
plot(resid.score)
resid.score
abline(h=2.5, col="blue")
abline(h=-2.5, col="blue")

Результаты должны выглядеть следующим образом: enter image description here

enter image description here enter image description here

Я получил разные результаты. Проблема в коде, который я использую для графиков или в коде coxph?

1 Ответ

2 голосов
/ 27 апреля 2020

Я предполагаю, что оценка риска должна быть предсказанием (отношение рисков, если я правильно помню свою статистику?), В коде, который вы имеете выше, остатки - это только вектор, поэтому:

##note it's a small c for par
par(mfrow = c(1,1))
plot(predict(fit),resid.dev,xlab = "Risk Score", 
ylab = "Deviance Residual", lwd=1 ,main="Deviance Residual")
abline(h=2.5, col="blue")
abline(h=-2.5, col="blue")

enter image description here

Для второго графика вам необходимо нанести номер наблюдения на ось x:

fit<-coxph(Surv(time, delta)~race+gender+race*gender, method="breslow",data=kidtran)
resid.score<-resid(fit,type="score")
par(mfrow = c(1,3))
for(i in colnames(resid.score))
plot(1:nrow(resid.score),resid.score[,i],main=i,xlab="obs no")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...