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?


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(t∣Xi)={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

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

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 tXiU∼Uniform(0,1)US(t)Xit


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.