11

该软件包使用核平滑方法从右删失数据中估计风险muhaz函数我的问题是,有没有办法获得计算的危险函数的置信区间?muhaz

options(scipen=999)
library(muhaz)
data(ovarian, package="survival")
attach(ovarian)
fit1 <- muhaz(futime, fustat)
plot(fit1, lwd=3, ylim=c(0,0.002))

muhaz 危险函数

在上面的示例中,有muhaz.object fit一些条目fit1$msemin,但是它们的长度是 的一半。fit1$var.minfit1$haz.estfit1$haz.est

如果可以提取危险函数的置信区间,有什么想法吗?

编辑:我根据@user20650 的建议尝试了以下内容

options(scipen=999)
library(muhaz)
data(ovarian, package="survival")
fit1 <- muhaz(ovarian$futime, ovarian$fustat,min.time=0, max.time=744)


h.df<-data.frame(est=fit1$est.grid, h.orig=fit1$haz.est)

for (i in 1:10000){
d.s.onarian<-ovarian[sample(1:nrow(ovarian), nrow(ovarian), replace = T),]
d.s.muhaz<-muhaz(d.s.onarian$futime, d.s.onarian$fustat, min.time=0, max.time=744 )
h.df<-cbind(h.df, d.s.muhaz$haz.est)
}


h.df$upper.ci<-apply(h.df[,c(-1,-2)], 1,  FUN=function(x) quantile(x, probs = 0.975))
h.df$lower.ci<-apply(h.df[,c(-1,-2)], 1,  FUN=function(x) quantile(x, probs = 0.025))
plot(h.df$est, h.df$h.orig, type="l", ylim=c(0,0.003), lwd=3)
lines(h.df$est, h.df$upper.ci,  lty=3, lwd=3)
lines(h.df$est, h.df$lower.ci,  lty=3, lwd=3)

设置 max.time 似乎有效,每个引导样本都有相同的估计网格点。然而,获得的 CI 意义不大。通常我希望间隔在 t=0 时很窄,并且随着时间的推移变得更宽(信息更少,不确定性更多),但获得的间隔似乎或多或少随时间保持不变。

在此处输入图像描述

4

1 回答 1

5

Bootstrapping 提供了评论者建议的答案。您的直觉是正确的,您应该期望 CI 会随着风险数量的减少而扩大。但是,这种影响会因平滑过程而减弱,并且应用平滑的时间间隔越长,您就越不会注意到 CI 大小的变化。尝试在足够短的时间间隔内进行平滑处理,您应该会注意到 CI 更明显地变宽。

您可能会发现,这些平滑的危险图的用途可能非常有限,并且对平滑的完成方式高度敏感。作为练习,从形状参数设置为 0.8、1.0、1.2 的一系列 Weibull 分布中模拟生存时间,然后查看这些平滑的危险图并尝试对它们进行分类是有益的。就这些图提供的信息而言,应该很容易根据危险函数的趋势率来区分这三个曲线之间的差异。YMMV,但是当我使用与肿瘤学临床试验一致的合理样本量进行此测试时,结果并没有给我留下深刻的印象。

作为平滑风险图的替代方法,您可以尝试使用 Han 等人的方法拟合分段指数曲线。(http://www.ncbi.nlm.nih.gov/pubmed/23900779)并引导它。他们的算法将识别危险率在统计上显着变化的断点,并且可以让您比平滑的危险图更好地了解危险率的趋势。它还将避免平滑参数的一些武断但必然的选择。

于 2015-05-26T02:12:17.243 回答