在R 3.1.0中使用ggsurv函数

时间:2015-06-23 11:12:52

标签: r plot ggplot2 analysis

我试图在R中创建一个生存情节,用于在数周内因暴露于真菌疾病而死亡。我有死亡周(连续),他们是否还活着(真/假),以及饮食(高/低)和性别(男/女)的分类变量。我运行了一个coxph模型:

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

我想绘制一条生存曲线,在高和低日粮中暴露雄性的个体系,以及高和低日粮上的雌性相同(在同一图上产生4条个体生存曲线)。如果我使用它,那么我只得到一条曲线。

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

我还尝试使用Edwin Thoen(http://www.r-statistics.com/2013/07/creating-good-looking-survival-curves-the-ggsurv-function/)创建的ggsurv函数,但是对于&#34;无效的行类型&#34;一直出现错误。我试图弄清楚可能导致这种情况的原因并认为这将是最后一个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)}

有没有人知道造成这个错误的原因/如何修复它,或者我是否完全试图做错误的事情来绘制这些曲线。

非常感谢!

1 个答案:

答案 0 :(得分: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的参数,但我还没有测试过。