我们可以使用survminer
来绘制生存函数或累积危害函数,但是我看不到使用它来绘制危害函数的方法。
例如,
library(survival)
library(tidyverse)
library(survminer)
data(lung)
# Run Kaplan-Meier on the data
mod.lung <- survfit(Surv(time, status) ~ 1, data = lung)
# Kaplan-Meier Survival Curve
ggsurvplot(mod.lung)
# Cumulative Hazard
ggsurvplot(mod.lung, fun = function(y) -log(y))
由于累积危害函数为H(t) = -log(S(t))
,所以我只需要添加fun = function(y) -log(y)
即可获得累积危害图。
危险函数是h(t) = -d/dt log(S(t))
,所以我不确定如何使用它来获取survminer图中的危险函数。
危险函数的另一种定义是h(t) = f(t)/S(t)
,但是,我不确定如何使用它来获取图。
例如,我已经找到了使用ggplot2
获取危险图的方法
survival.table1 <- broom::tidy(mod.lung) %>% filter(n.event > 0)
survival.table1 <- survival.table1 %>% mutate(hazard = n.event / (n.risk * (lead(time) - time)))
ggplot() +
geom_step(data = survival.table1, aes(x = time, y = hazard)) +
labs(x = "Time", y = "Hazard")
但是,我主要希望找到一种使用survminer
软件包的方法,部分是为了保持一致性。
谢谢
答案 0 :(得分:2)
在rms软件包中,可以将survplot函数与“ what”参数指定为“ hazard”一起使用,以绘制危害函数的时间。
答案 1 :(得分:0)
晚了几年,但对于其他人来说。
如果估计值是由survplot
函数创建的,则 psm
只能用于绘制风险图。 psm
库的 rms
函数适合参数生存模型的加速失效时间系列(默认为 Weibull 分布)。 survreg 包的文档中提供了其他可用的发行版:
这些包括“weibull”、“exponential”、“gaussian”、“logistic”、“lognormal”和“loglogistic”。否则,假定为符合 survreg.distributions
中描述的格式的用户定义列表library(rms)
mod.lung <- psm(Surv(time, status) ~ 1, data = lung)
survplot(mod.lung, what="hazard")
对于非参数生存模型,muhaz 库可能更有用。此示例使用默认的“epanechnikov”边界核函数。您可能希望探索不同的带宽选项 - 请参阅 muhaz package documentation。
library(muhaz)
mod.lung <- muhaz(lung$time, lung$status - 1) # status must be 1 for failure and 0 for censored
plot(mod.lung)
或者,要对风险应用 B 样条而不是核密度平滑,请查看 bshazard
库
library(bshazard)
mod.lung <- bshazard(Surv(time, status) ~ 1, data = lung)
plot(mod.lung)