Ошибка для проверки модели Кокса с внешним набором данных с использованием rms val.surv, автор Frank Harrell - PullRequest
0 голосов
/ 14 февраля 2019

Я разработал модель Кокса для общей выживаемости рака с помощью rms-пакета.Я использую с 765 наблюдений (194 интерна, 571 экстерна).Итак, я разделил на два набора данных: обучение и проверка

Я получил правильную модель Кокса.При попытке проверки я получаю эту ошибку:

Variable length differ (found for 'N')
In addition: Warning message:'newdata' had 571 rows but variables found have 194 rows.

Может ли кто-нибудь мне помочь?:)

Это мой код:

  #load packages 
library(survival)
library(rms)
library(dplyr)


#Define survival variables Zeit=time, Status=status

Zeit <- mydata$UEBERLEBEN
Status <- mydata$TOD



Alter <- mydata$KRANK_ALT
KOHORTE <- mydata$KOHORTE


#Define predcictor Variables

set.seed(88)
units(Zeit)= "Year"
label(Alter)= "Age at diagnosis"



T <- factor(mydata$HIGHEST_T,levels = 1:4, labels= c('T1', 'T2', 'T3', 'T4'))
N <- factor(mydata$N_STAGE_EINFACH,levels = 0:1, labels= c('N0', '>=N1'))
M <- factor(mydata$HIGHEST_M,levels =  0:1, labels=c('M0', 'M1'))
Rezidiv <-factor(mydata$REZIDIV,levels =  0:1, labels=c('NO', 'YES'))
Malig <- factor(mydata$MALIG,levels =  1:2, labels=c('Low GRADE', 'HIGH GRADE'))
Histo <- factor(mydata$HIST_WICHTIG,levels =  8:13, labels = c('Adeno-Ca', 'Acinic-Ca', 'ACC','MEC', 'PEC', 'other'))
Geschlecht <- factor(mydata$SEX, levels = 1:2, labels= c('female','male'))

#Define Survival object
S <- Surv(Zeit, Status==1)


#Define Datadist

dd<- datadist( Geschlecht,T,N,M, Alter, Rezidiv, Malig, Histo)
options(datadist='dd')


#build cox model (KOHORTE==0 means Training data... Training is coded by 0)

Cox <- cph(S ~ T + N +M + Alter + Histo , surv = TRUE, subset = KOHORTE==0,  time.inc = 5,  x=TRUE, y=TRUE)

print(Cox)

#Validation
#Build Validation data set ( Validation group is coded by 1)

Validation <- subset(mydata, KOHORTE==1)

#Define new Survival object for validation data set
ZeitV <- Validation$UEBERLEBEN
StatusV <- Validation$TOD
V <- Surv(ZeitV, StatusV)
Valid <-val.surv(Cox, newdata=Validation, S=V )
plot(Valid)
...