2015-02-16 16 views
8

Pakiet muhaz szacuje dane hazard function z right censored przy użyciu metod wygładzania jądra. Moje pytanie brzmi, czy istnieje sposób na uzyskanie przedziałów ufności dla funkcji zagrożenia, którą oblicza muhaz?Przedział ufności funkcji zagrożenia pakietu muhaz

options(scipen=999) 
library(muhaz) 
data(ovarian, package="survival") 
attach(ovarian) 
fit1 <- muhaz(futime, fustat) 
plot(fit1, lwd=3, ylim=c(0,0.002)) 

muhaz hazard function

W powyższym przykładzie muhaz.objectfit ma pewne wpisy fit1$msemin, fit1$var.min, fit1$haz.est natomiast ich długość wynosi połowę fit1$haz.est.

Wszelkie pomysły, jeśli możliwe jest wyodrębnienie przedziałów ufności dla funkcji zagrożenia?

EDIT: Próbowałem następujących w oparciu o to, co @ user20650 zasugerował

options(scipen=999) 
library(muhaz) 
data(ovarian, package="survival") 
fit1 <- muhaz(ovarian$futime, ovarian$fustat,min.time=0, max.time=744) 


h.df<-data.frame(est=fit1$est.grid, h.orig=fit1$haz.est) 

for (i in 1:10000){ 
d.s.onarian<-ovarian[sample(1:nrow(ovarian), nrow(ovarian), replace = T),] 
d.s.muhaz<-muhaz(d.s.onarian$futime, d.s.onarian$fustat, min.time=0, max.time=744) 
h.df<-cbind(h.df, d.s.muhaz$haz.est) 
} 


h.df$upper.ci<-apply(h.df[,c(-1,-2)], 1, FUN=function(x) quantile(x, probs = 0.975)) 
h.df$lower.ci<-apply(h.df[,c(-1,-2)], 1, FUN=function(x) quantile(x, probs = 0.025)) 
plot(h.df$est, h.df$h.orig, type="l", ylim=c(0,0.003), lwd=3) 
lines(h.df$est, h.df$upper.ci, lty=3, lwd=3) 
lines(h.df$est, h.df$lower.ci, lty=3, lwd=3) 

Ustawianie max.time wydaje się działa, każda próbka bootstrap któryś z tych samych punktów siatki szacowania. Jednak uzyskany CI nie ma większego sensu. Normalnie spodziewam się, że przedziały są wąskie w czasie t = 0 i stają się szersze w czasie (mniej informacji, więcej niepewności), ale uzyskane interwały wydają się mniej więcej stałe w czasie.

enter image description here

+2

Czy możesz go uruchomić? To 'with (fit1, plot (est.grid, haz.est, type =" l ", lwd = 3, ylim = c (0,0.002)))' daje ten sam wykres, więc będziesz potrzebować oszacowań 'haz .sto w tych samych punktach czasowych jak w przypadku 'fit1'. Jednakże, gdy próbujesz ponownie i zmieniasz model 'muhaz', zmieniają się punkty czasowe. Z szybkiego testu, myślę, że możesz zmusić' est.grid' do tego samego punktu czasowego dla każdego resample jeśli ustawisz 'min.time' i 'max.time' jest taki sam jak w oryginalnym dopasowaniu. tj. 'with (dat, muhaz (futime, fustat, min.time = 0, max.time = 744))', gdzie 'dat' to dane ładowania początkowego. – user20650

+0

Ustawienie maks.czas wydaje się działać, każda próbka bootstrap ma te same punkty siatki szacunkowej. Jednak uzyskany CI nie ma większego sensu. Normalnie spodziewam się, że interwały rozszerzają się wraz z upływem czasu (mniej informacji, więcej niepewności), ale uzyskane interwały wydają się być mniej więcej stałe w czasie. – ECII

Odpowiedz

1

Bootstrapowanie daje odpowiedź jako komentator zaproponował. Twoje intuicje są słuszne, że powinieneś oczekiwać, że CI będą się poszerzać, gdy liczba zagrożona spadnie. Efekt ten zostanie jednak zmniejszony przez proces wygładzania, a im dłuższy jest okres, w którym stosuje się wygładzanie, tym mniej należy zauważyć zmianę wielkości elementu CI. Spróbuj wygładzić w wystarczająco krótkim odstępie, a użytkownik powinien zauważyć, że elementy CI są bardziej widoczne.

Jak można zauważyć, te wygładzone wykresy zagrożenia mogą mieć bardzo ograniczone zastosowanie i są bardzo wrażliwe na sposób wygładzania. Jako ćwiczenie pouczające jest symulowanie czasów przeżycia z serii rozkładów Weibulla z parametrem kształtu ustawionym na 0,8, 1,0, 1,2, a następnie spójrz na te wygładzone wykresy zagrożenia i spróbuj je zaklasyfikować. W zakresie, w jakim wykresy te mają charakter informacyjny, powinno być dość łatwo odróżnić te trzy krzywe w oparciu o wskaźnik trendu funkcji hazardu. YMMV, ale nie byłem pod wrażeniem wyników, kiedy wykonałem te testy z rozsądną wielkością próby zgodną z próbami klinicznymi w onkologii.

Jako alternatywę dla wygładzonych wykresów zagrożenia, możesz spróbować dopasować krzywymi wykładniczymi według krzywych geometrycznych za pomocą metody Han et al. (http://www.ncbi.nlm.nih.gov/pubmed/23900779) i ładowanie tego. Ich algorytm identyfikuje punkty załamania, w których występuje statystycznie istotna zmiana w stopie hazardu i może dać lepsze wyczucie tendencji w stopie hazardu niż wygładzone wykresy zagrożenia. Pozwoli to również uniknąć nieco arbitralnego, ale wynikowego wyboru parametrów wygładzania.

+0

Dziękuję za wyczerpującą odpowiedź. Czy wiesz, czy istnieje pakiet R dla tej procedury? – ECII

+0

Nie sądzę, żeby opublikowały swój kod R jeszcze. Być może uda ci się uzyskać kod od autorów, jeśli wyjaśnisz, w jaki sposób będziesz go używał i ładnie poprosić. Ich papier powinien wyjaśnić tę metodę na tyle dobrze, aby uczynić z niej interesujący projekt. – jrdnmdhl

Powiązane problemy