Ускорение с цензурированными данными, данные повторной выборки ошибок - PullRequest
0 голосов
/ 02 апреля 2020

Я выполняю усиленную регрессию Кокса (пошагово вперед) с цензурированными клиническими данными (т. Е. Событие 0/1 и время до события). У меня следующая ошибка ...

Error in coxph.wtest(fit$var[nabeta, nabeta], temp, control$toler.chol) : 
  NA/NaN/Inf in foreign function call (arg 3)

... Я предполагаю (основываясь на этом другом вопросе ), потому что в одном (или нескольких) шагах начальной загрузки повторная выборка случайным образом принимает только значения, равные 1 или 0, поэтому внутреннее преобразование coxph создает значения NA/NaN/Inf. Я использовал этот код:

multicox.fwd.boot <- function(data, d){
  aux_data <- data[d,]

  fit_null_pfs <- coxph(Surv(time, event) ~ 1, data = aux_data) 
  fit_full_pfs <- coxph(Surv(time, event) ~ ., data = aux_data)

  fit_fw_pfs <- step(fit_null_pfs, direction = "forward", k = qchisq(0.05, 1, lower.tail = F),
                     scope = list(lower = formula(fit_null_pfs), upper = formula(fit_full_pfs)))
  cf <- coef(fit_fw_pfs)

  # bootstraping is failing because not all variables are being introduced in each step (bit.ly/2UwQCay)
  df <- setdiff(colnames(aux_data), names(cf))[-c(1,2)] #to not consider event/time
  ad <- rep(0, length(df))
  names(ad) <- df
  return(c(cf, ad))
}

cb <- censboot(data = gexclin, R = 10, statistic = multicox.fwd.boot)

Есть идеи, чтобы сохранить "сбалансированное" распределение событий 0/1? Или другой подход более полезный?

EDIT Я протестировал распределение событий в каждой итерации bootstrap, и кажется, что ошибка может быть другой, другой ... так что, Я не понимаю эту проблему: === (

multicox.fwd.boot <- function(...){
    ...
    cat(">>>Boot iteration,\n\t", table(aux_data$event), "\n")
    ...
}

>>>Boot iteration,
     64 35 
>>>Boot iteration,
     62 37 
>>>Boot iteration,
     64 35 
>>>Boot iteration,
     57 42 
>>>Boot iteration,
     71 28 
>>>Boot iteration,
     63 36 
Error in coxph.wtest(fit$var[nabeta, nabeta], temp, control$toler.chol) : 
  NA/NaN/Inf in foreign function call (arg 3)
...