cforest в пакете, возвращающем Inf для всех прогнозов - PullRequest
0 голосов
/ 30 ноября 2018

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

Мои данные можно загрузить здесь: https://www.dropbox.com/s/nt9s3p1rdafq465/test_data.csv?dl=0

Пример:

library(party)
library(survival)

mydata <- read.csv(file="test_data.csv", header=TRUE, sep=",",row.names=NULL)    
train<-head(mydata, n=800)
test<-tail(mydata, n=37)

cif_result <- cforest(Surv(timeToEvent, status) ~ V1 + V2 + V3 + V4 + V5 + V6, 
                    data = train,
                    control=cforest_classical())

cforest_pred <- predict(object = cif_result, newdata = test) 
cforest_pred

837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 
Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf 
857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 
Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf 

Я что-то не так делаю?Почему cforest только предсказывает Inf на этих данных?

1 Ответ

0 голосов
/ 05 декабря 2018

Метод predict() для деревьев / лесов выживания в пакете party возвращает среднее время выживания.Поскольку наблюдаемые события наблюдаются менее чем для 20% наблюдений, конечное среднее время выживания не может быть рассчитано.Следовательно, это Inf.В качестве примера рассмотрим подгонку для полной выборки:

m <- survfit(Surv(timeToEvent, status) ~ 1, data = train)
plot(m)

survfit

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