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(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.

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.

XiU∼Uniform(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.