Comment générer des données de survie avec des covariables dépendantes du temps en utilisant R


9

Je veux générer le temps de survie à partir d'un modèle de risques proportionnels de Cox qui contient une covariable dépendante du temps. Le modèle est

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

où est généré à partir de Binomial (1,0,5) et .m i ( t ) = β 0 + β 1 X i + β 2 X i tXimi(t)=β0+β1Xi+β2Xit

Les vraies valeurs des paramètres sont utilisées commeγ=1.5,β0=0,β1=−1,β2=−1.5,h0(t)=1

Pour une covariable indépendante du temps (c'est-à-dire j'ai généré comme suith(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)

Quelqu'un peut-il m'aider à générer des données de survie avec une covariable variant dans le temps.


Quelle sorte de fonction est ? Est-ce continu? Constamment constant? Un algorithme différent sera probablement nécessaire en conséquence. mi(t)
— tristan

est une covariable dépendante du temps, pour simplifier vous pouvez considérer une relation proportionnelle avec le temps. mi(t)
— Sheikh

J'ai édité ma question, considérant une fonction de mi(t)
— Sheikh

comment avez-vous exécuté le code R de l'équation ci-dessus? signifie qu'à chaque heure de décès dans le même identifiant, le programme doit déterminer quelles sont les covariables pour tout le monde qui est soit x est égal à 1 ou 0. si tous égaux à 1 cumsum le danger. calculez ensuite la fonction de survie. permet de choisir la bonne ligne pour chaque sujet.
— Qas Amell

Comme le souligne Z. Zhang, jetez un œil à cet article . De plus, vous pouvez voir ma réponse à sa question où je montre comment simuler pour ceux du groupe dans R.Xi=1
— Benjamin Christoffersen

Réponses:


9

OK à partir de votre code R, vous supposez une distribution exponentielle (danger constant) pour votre risque de base. Vos fonctions de danger sont donc:

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.

Celles-ci nous donnent alors les fonctions de survie:

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

XiU∼Uniform(0,1)UX i tS(t)Xit


1
Merci beaucoup pour l'algèbre. Je coderai en R et vous contacterai pour plus d'aide.
— Sheikh

quelle réponse parfaite, @tristan. J'avais une question similaire et j'ai trouvé votre réponse. Tout simplement génial.
— Sam

@tristan Je suis un peu confus quant à la signification de l'alpha dans la première équation que vous donnez où Xi = 0. Pourriez-vous développer un peu cela? Merci.
— Statwonk

1
@Statwonk, il découle de l'équation du taux de risque fournie par l'affiche originale
— tristan

Désolé, mais je ne sais pas comment utiliser la fonction S (t) pour simuler les temps. Je pense que vous devriez calculer S ^ {- 1} et cette fonction n'est pas triviale pour le cas X_i = 1.
— Pmc
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.