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.

Cheik
la source
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(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.

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.

XiUUniform(0,1)UX i tS(t)Xit

tristan
la source
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