Come generare dati di sopravvivenza con covariate dipendenti dal tempo usando R


9

Voglio generare tempo di sopravvivenza da un modello di rischi proporzionali di Cox che contiene covariata dipendente dal tempo. Il modello è

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

dove è generato da Binomial (1,0.5) e .m i ( t ) = β 0 + β 1 X i + β 2 X i tXimi(t)=β0+β1Xi+β2Xit

I valori dei parametri effettivi vengono utilizzati comeγ=1.5,β0=0,β1=1,β2=1.5,h0(t)=1

Per la covariata indipendente dal tempo (cioè ho generato come segueh(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)

Qualcuno può aiutarmi a generare dati di sopravvivenza con una covariata variabile nel tempo.


Che tipo di funzione è ? È continuo? Costante a tratti? Un algoritmo diverso sarà probabilmente necessario di conseguenza. mi(t)
tristan,

mi(t) è una covariata dipendente dal tempo, per semplicità puoi considerare una relazione proporzionale con il tempo.
Sheikh,

Ho modificato la mia domanda, considerando una funzione dimi(t)
Sheikh

come hai eseguito il codice R dall'equazione sopra? significa che ad ogni tempo di morte all'interno dello stesso ID il programma deve capire quali sono le covariate per tutti che sia x sia uguale a 1 o 0. se tutte uguali a 1 accumulano il pericolo. successivamente calcola la funzione di sopravvivenza. consente di scegliere la riga giusta per ogni argomento.
Qas Amell,

Come sottolinea Z. Zhang, dai un'occhiata a questo articolo . Inoltre, puoi vedere la mia risposta alla sua domanda in cui mostro come simulare per quelli nel gruppo in R.Xi=1
Benjamin Christoffersen,

Risposte:


9

OK dal tuo codice R stai assumendo una distribuzione esponenziale (rischio costante) per il tuo rischio di base. Le funzioni di pericolo sono quindi:

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.

Questi poi ci danno le funzioni di sopravvivenza:

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)US(t)Xit


1
Grazie mille per l'algebra. Codificherò in R e ti contatterò per ulteriore aiuto.
Sheikh,

che risposta perfetta, @tristan. Ho avuto una domanda simile e ho trovato la tua risposta. Semplicemente fantastico.
Sam,

@tristan Sono un po 'confuso sul significato di alfa nella prima equazione che dai dove Xi = 0. Ti dispiacerebbe espandere un po' su quello? Grazie.
Statwonk,

1
@Statwonk deriva dall'equazione della percentuale di rischio fornita dal poster originale
tristan

Siamo spiacenti, ma non sono sicuro di come utilizzare la funzione S (t) per simulare i tempi. Penso che dovresti calcolare S ^ {- 1} e questa funzione non è banale per il caso X_i = 1.
Pmc
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.