Использование пакета pec R для прогнозирования на основе функции coxph в наборе данных о легких

Я хочу получить прогнозы для набора данных о легких, доступного из пакета R со штрафными санкциями, используя функцию coxph R для модели пропорциональных рисков Кокса.

У меня есть следующий пример кода.

library(survival) 

library(pec)

library(penalized)

data("lung")

data <- lung

trainind <- sample(1:n,n*0.7)

testind <- (1:n)[-trainind]

frm <- as.formula(paste("Surv(time, status)~",paste(names(data[,-c(2,3)]), collapse="+")))

cox <- coxph(frm,data=data[trainind,])

PredError <- pec(list(Cox=cox),Hist(time,status)~1,data=data[testind,])

Я получаю следующую ошибку из приведенного выше

Ошибка в UseMethod («predEventProb», объект): к объекту класса «coxph» не применяется применимый метод для «predEventProb».

Может кто-нибудь решить эту проблему?


person Khan    schedule 11.09.2017    source источник


Ответы (1)


В наборе данных data необходимо решить две проблемы:
- удалить (или присвоить) отсутствующие значения
- перекодировать переменную status как 0 и 1

library(survival) 
library(pec)
library(penalized)
set.seed(123)
data("lung")

# Delete rows with missing values
data <- na.omit(lung)
# Recode status as 0 and 1
table(data$status)
#  1   2 
# 47 120
data$status <- data$status-1

n <- nrow(data)
trainind <- sample(1:n,n*0.7)
trainset <- data[trainind,]
testset <- data[-trainind,]
frm <- as.formula(paste("Surv(time, status)~",paste(names(data[,-c(2,3)]), collapse="+")))
cox <- coxph(frm, data=trainset, y=TRUE)
PredError <- pec(list("Cox"=cox), Hist(time,status)~1, data=testset)
plot(PredError)

введите здесь описание изображения

person Marco Sandri    schedule 11.09.2017
comment
не могли бы вы взглянуть на мой вопрос? stackoverflow.com/ вопросы / 65137064 / спасибо! - person ; 04.12.2020