簡體   English   中英

使用 survminer 在 R 中繪制危害函數?

[英]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”來繪制危害函數與時間的關系圖。

https://rdrr.io/cran/rms/man/survplot.html

晚了幾年,但這里是為了其他人。

如果估計值是由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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM