如何使用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(t∣Xi)={exp⁡(αβ0)if Xi=0,exp⁡(γ+α(β0+β1+β2t))if Xi=1.

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

Λ(t∣Xi)={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中编写代码,但是如果您需要任何其他帮助,请通过评论让我知道。XiU∼Uniform(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.