Делаем прогнозы на основе модели коксфа

Мне трудно делать прогнозы с помощью coxph.

Я хочу изучить модель Cox PH на данных в выборке, а затем использовать параметры, полученные из данных вне выборки, следующим образом:

# learn IS params
model.PH <- coxph(Surv(days.IS, outcome.IS) ~ predictor.IS)

# apply IS params to OOS data to make predictions
predictions.raw <- predict(model.PH, newdata = predictor.OS)

# binarise predictions
predictions.OS <- rep(0,length(predictions.raw))    
predictions.OS[which(predictions.raw>0)]<- 1 

# fit survival model
fittedModel <- survdiff(Surv(days.OS, outcome.OS) ~ predictions.OS)

предиктор.IS имеет размерность Y_1 x D, предиктор.OS имеет размерность Y_2 x D

Однако это не работает, так как количество элементов в предсказаниях. ОС равно Y_1, а не Y_2.

Что я делаю не так?


person Tristan Fletcher    schedule 01.09.2014    source источник
comment
На этот вопрос было бы легче ответить, если бы вы предоставили воспроизводимый пример .   -  person MrFlick    schedule 01.09.2014
comment
Пакет Zelig весьма полезен и очень прост в реализации для такого типа задач.   -  person Brian P    schedule 01.09.2014
comment
Вероятно, это работало бы более четко, если бы вы передавали значения в ``coxph с помощью аргумента data=dfrm, а затем передавали аргумент newdata в predict как другой фрейм данных с теми же именами столбцов. Я понимаю, что вы передаете матрицы, которые могут не иметь тех же имен столбцов, что и re, найденные в модели. Сопоставление размерности — не единственное требование для функции predict.coxph.   -  person IRTFM    schedule 02.09.2014
comment
BondedDust - вы решили проблему - спасибо! Это было потому, что я игнорировал биты данных =.   -  person Tristan Fletcher    schedule 02.09.2014
comment
@BondedDust: Поскольку вы эффективно решили проблему ОП, я предлагаю вам опубликовать ответ, чтобы его можно было принять. :)   -  person Alex A.    schedule 18.12.2014
comment
Это будет работать только в том случае, если ОП все еще слушает.   -  person IRTFM    schedule 18.12.2014


Ответы (1)


Вероятно, это работало бы более четко, если бы вы передавали значения в ``coxph с помощью аргумента data=dfrm, а затем передавали аргумент newdata для прогнозирования как другой фрейм данных с теми же именами столбцов. Я понимаю, что вы передаете матрицы, которые могут не иметь тех же имен столбцов, что и re, найденные в модели. Сопоставление размерности — не единственное требование для функции predict.coxph.

person IRTFM    schedule 17.12.2014