ECI*_*CII 9 r survival-analysis
该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.object fit有一些条目fit1$msemin,fit1$var.min,fit1$haz.est然而,它们的长度是一半fit1$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似乎有效,每个bootstrap样本都有相同的估计网格点.然而,CI获得,没有多大意义.通常我会期望在t = 0时间隔很窄并且随着时间变得越来越宽(信息越少,不确定性越大),但所获得的间隔似乎或多或少随时间变化.

Bootstrapping 提供了评论者建议的答案。您的直觉是正确的,您应该期望 CI 随着风险数量的减少而扩大。但是,这种影响将通过平滑过程减弱,应用平滑的时间间隔越长,您就越不应该注意到 CI 大小的变化。尝试在足够短的时间间隔内进行平滑,您应该注意到 CI 更明显地变宽。
您可能会发现,这些平滑的危险图的用途非常有限,并且对平滑的完成方式非常敏感。作为练习,从形状参数设置为 0.8、1.0、1.2 的一系列威布尔分布中模拟生存时间是有益的,然后查看这些平滑的危险图并尝试对它们进行分类。就这些图提供的信息而言,根据风险函数的趋势率,应该很容易区分这三个曲线之间的差异。YMMV,但是当我以与肿瘤学临床试验一致的合理样本量进行此测试时,结果并没有给我留下深刻印象。
作为平滑风险图的替代方法,您可以尝试使用 Han 等人的方法拟合分段指数曲线。(http://www.ncbi.nlm.nih.gov/pubmed/23900779)并引导它。他们的算法将识别出危险率在统计上发生显着变化的断点,并且可能比平滑的危险图更能让您了解危险率的趋势。它也将避免平滑参数的一些随意但重要的选择。
| 归档时间: | 
 | 
| 查看次数: | 1062 次 | 
| 最近记录: |