Jak wygenerować dane o przeżyciu za pomocą współzmiennych zależnych od czasu za pomocą R.


9

Chcę wygenerować czas przeżycia na podstawie proporcjonalnego modelu zagrożeń Coxa, który zawiera zmienną zależną od czasu. Model jest

h(t|Xja)=h0(t)exp(γXja+αmja(t))

gdzie jest generowany z Binomial (1,0.5) i .Xjamja(t)=β0+β1Xja+β2)Xjat

Prawdziwe wartości parametrów są stosowane jakoγ=1.5,β0=0,β1=-1,β2)=-1.5,h0(t)=1

Dla niezależnej od czasu (tj. wygenerowałem w następujący sposóbh(t|Xja)=h0(t)exp(γXja)

#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)

Czy ktoś może mi pomóc w generowaniu danych o przeżyciu ze zmienną towarzyszącą w czasie.


Jaką funkcją jest ? Czy to jest ciągłe? Stała kawałek? Prawdopodobnie potrzebny będzie inny algorytm. mja(t)
tristan

mja(t) jest zależną od czasu zmienną zależną od czasu, dla uproszczenia można rozważyć proporcjonalny związek z czasem.
Szejk

Zredagowałem swoje pytanie, biorąc pod uwagę funkcjęmja(t)
Szejk

jak wykonałeś kod R z powyższego równania? oznacza, że ​​w każdej chwili śmierci w ramach tego samego identyfikatora program musi dowiedzieć się, jakie są zmienne towarzyszące dla każdego, który jest albo x jest równy 1 lub 0. Jeśli wszyscy są równi 1, sumują zagrożenie. następnie obliczyć funkcję przeżycia. pozwala wybrać właściwą linię dla każdego tematu.
Qas Amell

Jak zauważa Z. Zhang, spójrz na ten artykuł . Ponadto, możesz zobaczyć moją odpowiedź na jego pytanie, gdzie pokazuję, jak symulować dla osób z grupy w R.Xi=1
Benjamin Christoffersen,

Odpowiedzi:


9

OK z kodu R zakładasz rozkład wykładniczy (stałe zagrożenie) dla twojego podstawowego zagrożenia. Do twoich funkcji zagrożeń należą zatem:

h(tXja)={exp(αβ0)gdyby Xja=0,exp(γ+α(β0+β1+β2)t))gdyby Xja=1.

Następnie integrujemy je w odniesieniu do aby uzyskać funkcję skumulowanego zagrożenia:t

Λ(tXja)={texp(αβ0)gdyby Xja=0,0texp(γ+α(β0+β1+β2)τ))reτgdyby Xja=1.={texp(αβ0)gdyby Xja=0,exp(γ+α(β0+β1))1αβ2)(exp(αβ2)t)-1)gdyby Xja=1.

To daje nam funkcje przetrwania:

S.(t)=exp(-Λ(t))={exp(-texp(αβ0))gdyby Xja=0,exp(-exp(γ+α(β0+β1))1αβ2)(exp(αβ2)t)-1))gdyby Xja=1.

Następnie generowania na podstawie pobranych próbek i , zastępując o i przegrupowanie odpowiednie formuły (na podstawie ) W celu symulacji . Powinna to być prosta algebra, którą możesz następnie napisać w języku R, ale daj mi znać poprzez komentarz, jeśli potrzebujesz dalszej pomocy.XjaUUniform(0,1)US(t)Xit


1
Dziękuję bardzo za algebrę. Będę kodować w R i skontaktuję się z tobą w celu uzyskania dalszej pomocy.
Szejk

jaka doskonała odpowiedź, @tristan. Miałem podobne pytanie i znalazłem odpowiedź. Po prostu super.
Sam

@ Tristan Jestem trochę zdezorientowany znaczeniem alfa w pierwszym równaniu, które podajesz, gdzie Xi = 0. Czy miałbyś coś przeciwko temu? Dzięki.
Statwonk,

1
@Statwonk wynika z równania współczynnika ryzyka przedstawionego przez oryginalny plakat
tristan

Przepraszam, ale nie jestem pewien, jak użyć funkcji S (t) do symulacji czasów. Myślę, że powinieneś obliczyć S ^ {- 1} i ta funkcja nie jest trywialna dla przypadku X_i = 1.
Pmc
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.