[英]Plotting the Hazard Function in R using survminer?
我們可以使用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
包的方法,部分是為了保持一致性。
謝謝
在 rms 包中,您可以使用 survplot 函數將“what”參數指定為“hazard”來繪制危害函數與時間的關系圖。
晚了幾年,但這里是為了其他人。
如果估計值是由psm
函數創建的,則survplot
只能用於繪制風險圖。 rms
庫的psm
函數適合參數生存模型的加速失效時間系列(默認為 Weibull 分布)。 survreg 包的文檔中提供了其他可用的發行版:
這些包括“威布爾”、“指數”、“高斯”、“邏輯”、“對數正態”和“邏輯邏輯”。 否則,假定為符合 survreg.distributions 中描述的格式的用戶定義列表
library(rms)
mod.lung <- psm(Surv(time, status) ~ 1, data = lung)
survplot(mod.lung, what="hazard")
對於非參數生存模型,muhaz 庫可能更有用。 此示例使用默認的“epanechnikov”邊界核函數。 您可能希望探索不同的帶寬選項 - 請參閱muhaz 包文檔。
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.