如何使用R生成具有时间相关协变量的生存数据


9

我想从包含时间相关协变量的Cox比例风险模型生成生存时间。该模型是

h(t|Xi)=h0(t)exp(γXi+αmi(t))

其中是从Binomial(1,0.5)和。Ximi(t)=β0+β1Xi+β2Xit

真实参数值用作γ=1.5,β0=0,β1=1,β2=1.5,h0(t)=1

对于与时间无关的协变量(即我生成如下h(t|Xi)=h0(t)exp(γXi)

#For time independent case
# h_0(t) = 1
gamma <- -1
u <- runif(n=100,min=0,max=1)
Xi <- rbinom(n=100,size=1,prob=0.5)
T <- -log(u)/exp(gamma*Xi)

谁能帮我生成时变协变量的生存数据。


是什么函数?它是连续的吗?分段常数?因此,可能需要使用其他算法。mi(t)
tristan 2014年

mi(t)是时间相关的协变量,为简单起见,您可以考虑与时间成比例关系。
谢赫

考虑到的函数,我已经编辑了我的问题mi(t)
Sheikh

您如何根据上述公式执行R代码?意味着在同一id内的每个死亡时间,程序都需要找出每个人的协变量,即x等于1或0。如果所有等于1,则危害加总。之后计算生存函数。让它为每个主题选择正确的行。
卡斯·阿梅尔2015年

正如Z. Zhang指出的那样看一下这篇文章。此外,你可以看到我的回答他的问题,我展示了如何模拟对于那些在组R.Xi=1
本杰明·克里斯托弗森

Answers:


9

从您的R代码中可以,您可以假定基线危害为指数分布(恒定危害)。因此,您的危险功能是:

h(tXi)={exp(αβ0)if Xi=0,exp(γ+α(β0+β1+β2t))if Xi=1.

然后,我们针对对它们进行积分以获得累积危害函数:t

Λ(tXi)={texp(αβ0)if Xi=0,0texp(γ+α(β0+β1+β2τ))dτif Xi=1.={texp(αβ0)if Xi=0,exp(γ+α(β0+β1))1αβ2(exp(αβ2t)1)if Xi=1.

然后这些给我们生存功能:

S(t)=exp(Λ(t))={exp(texp(αβ0))if Xi=0,exp(exp(γ+α(β0+β1))1αβ2(exp(αβ2t)1))if Xi=1.

然后,通过采样生成和,用用于并重新排列适当的公式(基于)来模拟。这应该是简单的代数,您可以在R中编写代码,但是如果您需要任何其他帮助,请通过评论让我知道。XiUUniform(0,1)US(t)Xit


1
非常感谢您的代数。我将在R中进行编码,并将与您联系以获取更多帮助。
谢赫

完美的答案,@ tristan。我有一个类似的问题,找到了您的答案。太棒了
2015年

@tristan对于第一个给出的Xi = 0方程式中的alpha含义,我有些困惑。您介意对此进行扩展吗?谢谢。
Statwonk '16

1
@Statwonk它从由原始的海报提供的危险率方程如下
特里斯坦

抱歉,但是我不确定如何使用函数S(t)来模拟时间。我认为您应该计算S ^ {-1},并且对于X_i = 1而言,此函数并非微不足道。
Pmc
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.