Предсказать выживание с помощью пакета RMS в R?

Я использую функцию Survest в пакете RMS для расчета вероятностей выживания. Я хочу иметь возможность взять подмножество моих данных и передать их через опрос. Я разработал цикл for, который делает это. Это запускает и выводит вероятности выживания для каждого набора предикторов.

for (i in 1:nrow(df)){
  row <- df[i,]
  print(row)
  surv=survest(fit, row, times=365)
  print(surv)
  }

Мой первый вопрос: есть ли способ использовать Survest для прогнозирования медианы выживаемости вместо того, чтобы указывать конкретные временные рамки, или, альтернативно, есть лучшая функция для использования?

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

survest(fit, expand.grid(Years.to.birth =NA, Tumor.stage=1, Date=2000, 
Somatic.mutations=2, ttype="brca"), times=300)

person alex    schedule 27.03.2018    source источник


Ответы (2)


Чтобы получить среднее время выживания, используйте генератор функций Quantile или функцию summary.survfit из пакета survival. Функция, созданная Quantile, может быть оценена для квантиля 0,5. Это функция линейного предсказания. Вам нужно будет использовать функцию predict для подмножества наблюдений, чтобы получить значение линейного предиктора, которое нужно передать для вычисления медианы.

Для ваших двух других вопросов survest необходимо использовать полную модель, которую вы выбрали (все переменные). Вам нужно будет использовать множественное вменение, если переменная недоступна, или быстрое приблизительное обновление модели а-ля fastbw.

person Frank Harrell    schedule 28.03.2018
comment
Спасибо за ваш ответ. Что касается второго вопроса, есть ли способ предсказать выживаемость без использования всех переменных, используемых в модели. Хотя я понимаю, что Survest не может этого сделать, есть ли другой способ? Я не хочу в идеале использовать множественное вменение, поскольку цель состоит в том, чтобы увидеть, как прогнозы различаются, когда вводятся недостающие данные. - person alex; 01.04.2018
comment
Было бы относительно легко, если бы это была бинарная логистическая регрессия или обычная линейная модель. Нелегко вывести переменную из условий, если вы хотите предсказать вероятности выживания. Возможно, если вам просто нужен линейный предсказатель. - person Frank Harrell; 02.04.2018
comment
Любое предложение, как это сделать? Например, как вывести переменную из условий для прогноза выживаемости. - person alex; 03.04.2018
comment
Единственный известный мне общий способ - это не отменять условия для переменной, а использовать множественное вменение для получения нескольких усредненных оценок выживаемости. Не уверен, что параметры формы распределения выживаемости будут правильно обработаны. - person Frank Harrell; 03.04.2018

Мы пытаемся сделать что-то подобное с недостающими данными.

Хотя MI - хорошая идея, более простая идея для одной отсутствующей переменной состоит в том, чтобы выполнить прогноз несколько раз и заменить отсутствующую переменную значением, выбранным при случайном распределении отсутствующей переменной.

Например. Если у нас есть x1, x2 и x3 в качестве предикторов, и мы хотим смоделировать, когда x3 отсутствует, мы выполняем прогнозы, используя x1 и x2 и take_random_sample_from (x3), а затем усредняем время выживания по всем результатам.

Проблема с переформулировкой модели (например, в данном случае с перемоделированием, поэтому мы рассматриваем только x1 и x2) заключается в том, что она не позволяет вам явно исследовать влияние x3.

В простых случаях это должно сработать - это, по сути, усреднение прогноза выживаемости для большого диапазона x3 и, следовательно, делает x3 относительно неинформативным.

HTH, Мэтт

person Matt Williams    schedule 10.04.2018