2015-06-23 1 views
1

Я пытаюсь создать участок выживания в R для смертей от воздействия грибковой болезни в течение нескольких недель. У меня есть неделя смерти (непрерывная), были ли они живы (TRUE/FALSE), а также категориальные переменные для диеты (высокий/низкий) и секс (мужчина/женщина). Я запустить coxph модель:Использование функции ggsurv в версии R 3.1.0

surv1 <- coxph(Surv(week_died,alive) ~ exposed + diet + sex, 
     data=surv) 

Я хотел бы построить кривую выживания, с отдельными линиями для облученных самцов на высоких и низких диет, и то же самое для женщин на высоких и низких диет (в результате 4 человека кривые выживания на одном и том же участке). если я использую это, тогда я получаю только одну кривую.

plot(survfit(surv1), ylim=c(), xlab="Weeks") 

Я также пытался использовать функцию ggsurv созданной Edwin Thoen (http://www.r-statistics.com/2013/07/creating-good-looking-survival-curves-the-ggsurv-function/), но получает сообщение об ошибке для «недействительного типа линии». Я попытался выяснить, что может быть причиной этого, и подумать, что это будет последнее утверждение ifelse, но я не уверен.

pl <- if(strata == 1) {ggsurv.s(s, CI , plot.cens, surv.col , 
           cens.col, lty.est, lty.ci, 
           cens.shape, back.white, xlab, 
           ylab, main) 
} else {ggsurv.m(s, CI, plot.cens, surv.col , 
       cens.col, lty.est, lty.ci, 
       cens.shape, back.white, xlab, 
       ylab, main)} 

Кто-нибудь есть какие-либо идеи о том, что является причиной этой ошибки /, как это исправить, или если я полностью пытаюсь сделать неправильную вещь, чтобы построить эти кривые.

Большое спасибо!

+0

Пример для '? Coxph' упоминает' strata': 'Он идентифицирует переменные стратификации, когда они появляются в правой части формулы. '. –

ответ

2

survfit модель coxph без каких-либо других характеристик дает кривую выживаемости для случая, чьи ковариационные предиктора являются средними для населения, с которым была создана модель. С помощью для survfit.coxph

Серьезное было дано удаление значения по умолчанию для newdata, который должен использовать один «псевдо» объекта с ковариат значениями, равными средствами набора данных, так как результирующей кривой (ы) почти никогда не имеет смысла. ... Два особенно вопиющих примера - это факторные переменные и взаимодействия. Предположим, что один изучал межвидовую передачу вируса, а набор данных имеет факторную переменную с уровнями («свиньи», «цыпленок») и примерно равное количество наблюдений для каждого. «Средний» уровень ковариации будет 1/2 - это летающая свинья? ... Пользователям настоятельно рекомендуется использовать аргумент newdata.

Таким образом, после вы вычислили surv1,

sf <- survfit(surv1, 
       newdata = expand.grid(diet = unique(surv$diet), 
            sex = unique(surv$sex))) 

plot(sf) 

sf должен также работать в качестве аргумента ggsurv, хотя я не проверял.