Jak oszacować wyjściową funkcję hazardu w modelu Coxa z R.

13

Muszę oszacować wyjściową funkcję hazardu w zależnym od czasu modelu Coxaλ0(t)

λ(t)=λ0(t)exp(Z(t)β)

Podczas kursu Survival pamiętam, że bezpośrednia pochodna skumulowanej funkcji hazardu ( ) nie byłaby dobrym estymatorem, ponieważ estymator Breslowa daje funkcję krokową.λ0(t)dt=dΛ0(t)

Czy w R jest jakaś funkcja, z której mógłbym korzystać bezpośrednio? Lub jakieś odniesienia na ten temat?

Nie jestem pewien, czy warto otworzyć kolejne pytanie, więc dodam tylko tło, dlaczego podstawowa funkcja hazardu jest dla mnie ważna. Poniższy wzór szacuje prawdopodobieństwo, że czas przeżycia jednego pacjenta jest dłuższy niż inny. W ustawieniu modelu Coxa wymagana jest podstawowa funkcja hazardu λ0(t) .

P(T1>T2)=0S1(t)dS2(t)=0S1(t)S2(t)λ2(t)dt

wydłużony
źródło
O szacunkach Breslowa: stats.stackexchange.com/questions/20747/…
Stéphane Laurent
Wzór (4) tego artykułu daje oszacowanie. jstor.org/stable/2530904
elong

Odpowiedzi:

20

Model Coxa został wyraźnie zaprojektowany, aby móc oszacować współczynniki ryzyka bez konieczności szacowania podstawowej funkcji hazardu. To jest siła i słabość. Siła polega na tym, że nie można popełniać błędów w funkcjach, których nie szacuje się. Jest to prawdziwa siła i dlatego ludzie nazywają ją „półparametryczną” i jest w dużej mierze odpowiedzialna za jej popularność. Jest to jednak także prawdziwa słabość, ponieważ gdy chcesz dowiedzieć się czegoś innego niż współczynnik ryzyka, często będziesz potrzebować podstawowej funkcji hazardu, co przeczy celowi modelu Coxa.

Dlatego używam modeli Coxa tylko wtedy, gdy interesują mnie współczynniki ryzyka i nic więcej. Jeśli chcę wiedzieć inne rzeczy, zwykle przechodzę do innych modeli, takich jak te omówione tutaj: http://www.stata.com/bookstore/fiętko-parametryczne- przetrwanie- analiza-stata/

Maarten Buis
źródło
2
+1 Jest to kolejny sposób modelowania parametrycznie podstawowych danych o ryzyku. Procinceton.edu/wws509/notes/c7s4.html
boscovich
3

Podstawową funkcję hazardu można oszacować w R za pomocą funkcji „basehaz”. Plik „pomocy” stwierdza, że ​​jest to funkcja „przewidywanego przeżycia”, której oczywiście nie ma. Jeśli ktoś sprawdza kod, jest to wyraźnie funkcja skumulowanego zagrożenia z survfitobiektu. Dla dalszej głupoty domyślnym ustawieniem jest to, centered=TRUEco: a) nie jest podstawową funkcją hazardu (jak sugeruje nazwa), i b) stosuje przewidywanie środków, które jest zdyskredytowane jako ważne pod każdym względem praktycznym.

I do wcześniejszego punktu: tak, ta funkcja korzysta z funkcji krokowej. Możesz przekształcić ten wynik w funkcję hazardu za pomocą wygładzania. Co najgorsze, jaki jest przedział niepewności dla tej prognozy? Możesz zdobyć medal Fields, jeśli możesz go zdobyć. Nie sądzę, abyśmy nawet wiedzieli, czy ładowanie działa, czy nie.

Jako przykład:

set.seed(1234)
x <- rweibull(1000, 2, 3)
coxfit <- coxph(Surv(x) ~ 1)
bhest <- basehaz(coxfit)
haz <- exp(diff(bhest[, 1])*diff(bhest[, 2]))
time <- (bhest[-1,2] + bhest[-1000, 2])/2
b <- 2^-3

curve(3*b*x, from=0, to=max(x), xlab='Survival time', ylab='Weibull hazard')
points(t <- bhest[-1,2], h <- diff(bhest[, 1])/diff(bhest[, 2]), col='grey')
smooth <- loess.smooth(t, h)
lines(smooth$x, smooth$y, col='red')
legend('topright', lty=c(1,1,0), col=c('black', 'red', 'grey'), pch=c(NA,NA,1), c('Actual hazard fun', 'Smoothed hazard fun', 'Stepped discrete-time hazards'), bg='white')

wprowadź opis zdjęcia tutaj

AdamO
źródło