对数正态生存函数的平均生存时间


10

我发现了大量公式可以显示如何找到指数分布或Weibull分布的平均生存时间,但对数正态生存函数的运气却要差得多。

给定以下生存函数:

S(t)=1ϕ[ln(t)μσ]

如何找到平均生存时间。据我了解,是估计的比例参数,而参数生存模型的exp(\ beta)是\ mu。虽然我觉得我可以操纵它象征性地获得牛逼全部由自己设定S(T)= 0.5后,有什么特别绊倒我是如何处理\披的东西如R时,它实际上归结为输入所有的估计和获得与此同时。β μσβμϕ

到目前为止,我一直在生成生存函数(及相关曲线),如下所示:

beta0 <- 2.00
beta1 <- 0.80
scale <- 1.10

exposure <- c(0, 1)
t <- seq(0, 180)
linmod <- beta0 + (beta1 * exposure)
names(linmod) <- c("unexposed", "exposed")

## Generate s(t) from lognormal AFT model

s0.lnorm <- 1 - pnorm((log(t) - linmod["unexposed"]) / scale)
s1.lnorm <- 1 - pnorm((log(t) - linmod["exposed"]) / scale)

## Plot survival
plot(t,s0.lnorm,type="l",lwd=2,ylim=c(0,1),xlab="Time",ylab="Proportion Surviving")
lines(t,s1.lnorm,col="blue",lwd=2)

结果如下:

在此处输入图片说明


3
我猜您的意思是“中位生存时间”,而不是“平均生存时间”。很容易发现中位生存时间为。tmed=exp(μ)
ocram,2012年

@ocram-嗯,那很容易。将其转换为答案,我会接受。但是出于好奇,您为什么要假设我的意思是“中位数”而不是“平均”?
Fomite

1
如果您的意思是平均值而不是中位数,那么您无需设置S(t)= 0.5。对数正态分布高度偏斜,均值和中位数不同。平均生存时间比中位数复杂。
Michael R. Chernick

@EpiGard:由于Michael C指出的原因,我假设使用“中位数”而不是“平均值”。;-)我将把我的评论转换为答案。
ocram 2012年

1
平均生存时间不是很复杂。看我的答案。(也可以相对容易地计算出各个时刻。)
马克·阿德勒

Answers:


7

中位生存时间是;在这种情况下,。这是因为当表示标准正态随机变量的累积分布函数时,。 S t = 1tmed tmed=expμΦ0=1S(t)=12tmed=exp(μ) ΦΦ(0)=12Φ


当,中位生存时间约为,如下图所示。20.1μ=320.1

在此处输入图片说明


平均生存时间最容易通过将其表示为在评估的正常随机变量的矩生成函数来表示。t=1
主教

5

R rms软件包可以帮助:

require(rms)
f <- psm(Surv(dtime, event) ~ ..., dist='lognormal')
m <- Mean(f)
m   # see analytic form
m(c(.1,.2)) # evaluate mean at linear predictor values .1, .2
m(predict(f, expand.grid(age=10:20, sex=c('male','female'))))
# evaluates mean survival time at combinations of covariate values

可能对未来很有帮助,但实际的生存数据本身不在R中-有时会在列表中进行转换,但现在只是系数,而其他所有操作都在SAS中完成。
Fomite

您会发现R的生存分析功能领先于SAS。
Frank Harrell,2012年

同意-因此“就在翻译清单上”,但我不太了解R,尽管这一点很简单,但该项目的扩展部分要复杂得多,并且已经在SAS中实现。
2012年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.