Wie man mit R Überlebensdaten mit zeitabhängigen Kovariaten generiert

9

Ich möchte die Überlebenszeit aus einem Cox-Proportional-Hazards-Modell generieren, das eine zeitabhängige Kovariate enthält. Das Modell ist

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

wobei aus Binomial (1,0.5) und .m i ( t ) = β 0 + β 1 X i + β 2 X i tXimi(t)=β0+β1Xi+β2Xit

Die wahren Parameterwerte werden verwendet alsγ=1.5,β0=0,β1=1,β2=1.5,h0(t)=1

Für die zeitunabhängige Kovariate (dh ich wie folgt erzeugth(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)

Kann mir bitte jemand helfen, Überlebensdaten mit zeitlich variierender Kovariate zu generieren?

Scheich
quelle
Was für eine Funktion ist ? Ist es kontinuierlich? Stückweise konstant? Ein anderer Algorithmus wird wahrscheinlich entsprechend benötigt. mi(t)
Tristan
mi(t) ist eine zeitabhängige Kovariate. Der Einfachheit halber können Sie eine proportionale Beziehung zur Zeit betrachten.
Sheikh
Ich habe meine Frage unter Berücksichtigung einer Funktion vonmi(t)
Sheikh
Wie haben Sie den R-Code aus der obigen Gleichung ausgeführt? bedeutet, dass das Programm zu jedem Todeszeitpunkt innerhalb derselben ID herausfinden muss, wie die Kovariaten für alle sind, die entweder x gleich 1 oder 0 sind, wenn alle gleich 1 sind, die Gefahr zusammenfassen. danach berechnen Sie die Überlebensfunktion. Ermöglicht die Auswahl der richtigen Linie für jedes Motiv.
Qas Amell
Wie Z. Zhang betont, schauen Sie sich diesen Artikel an . Außerdem können Sie meine Antwort auf seine Frage sehen, in der ich zeige, wie man für diejenigen in der Gruppe in R.Xi=1
Benjamin Christoffersen

Antworten:

9

OK, von Ihrem R-Code gehen Sie von einer Exponentialverteilung (konstantes Risiko) für Ihr Basisrisiko aus. Ihre Gefahrenfunktionen sind daher:

h(tXi)={exp(αβ0)if Xi=0,exp(γ+α(β0+β1+β2t))if Xi=1.

Wir integrieren diese dann in Bezug auf , um die kumulative Gefahrenfunktion zu erhalten: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.

Diese geben uns dann die Überlebensfunktionen:

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

Sie erzeugen dann durch Abtasten und , unter Substitution für und Umordnen die entsprechende Formel (basierend auf ) zum Simulieren . Dies sollte eine einfache Algebra sein, die Sie dann in R codieren können. Bitte lassen Sie mich per Kommentar wissen, wenn Sie weitere Hilfe benötigen. U ~ U n i f o r m ( 0 , 1 ) U S ( t ) , X i tXiUUniform(0,1)US(t)Xit

Tristan
quelle
1
Vielen Dank für die Algebra. Ich werde in R codieren und Sie für weitere Hilfe kontaktieren.
Sheikh
Was für eine perfekte Antwort, @tristan. Ich hatte eine ähnliche Frage und fand Ihre Antwort. Einfach super.
Sam
@tristan Ich bin etwas verwirrt über die Bedeutung von Alpha in der ersten Gleichung, die Sie angeben, wobei Xi = 0. Würde es Ihnen etwas ausmachen, das etwas zu erweitern? Vielen Dank.
Statwonk
1
@Statwonk folgt aus der Gefährdungsratengleichung des Originalplakats
Tristan
Entschuldigung, aber ich bin nicht sicher, wie ich die Funktion S (t) zur Simulation der Zeiten verwenden soll. Ich denke, Sie sollten S ^ {- 1} berechnen und diese Funktion ist für den Fall X_i = 1 nicht trivial.
Pmc