Jak wykonać test rang podpisany przez Wilcoxona dla danych dotyczących przeżycia w R?

9

Powiedz, że masz takie dane o przeżyciu:

obs <- data.frame(
  time = c(floor(runif(100) * 30), floor((runif(100)^2) * 30)),
  status = c(rbinom(100, 1, 0.2), rbinom(100, 1, 0.7)),
  group = gl(2,100)
  )

Aby wykonać standardowy test rang dziennika, można użyć

survdiff(Surv(time, status) ~ group, data = obs, rho = 0)

dobrze?

Ale co z innym testem? Jak mógłbyś wykonać test rangi podpisany przez Wilcoxona, test Peto lub test Fleminga-Harringtona?

R zapewnia możliwość przeprowadzenia testu Wilcoxona , jednak nie znalazłem sposobu, aby pozwolić na uwzględnienie cenzury.

Ponadto doktor stwierdza, że ​​ustawienie rho = 1spowodowałoby, że test byłby „modyfikacją Peto i Peto testu Gehana-Wilcoxona”. Ale czy to to samo, co test Peto?

Marcel
źródło
Nie znam moich danych o przetrwaniu, ale Google wydaje się: Test Wilcoxa. Po przeczytaniu dokumentacji survdiffustawień, rho=1jest to test Peto ...
Justin
tak dziękuję! to jest tak daleko, jak mi się udało. Nie znalazłem jednak sposobu na wilcox.testuwzględnienie cenzury. Ze rho=1jestem pewien, czy jest to test Peto lub test Wilcoxona, jak doc stwierdza „Peto i Peto modyfikację testu Gehan-Wilcoxona”. Nie trzeba głosować.
Marcel

Odpowiedzi:

7

(Prawdopodobnie powinieneś przytoczyć źródło swoich konwencji nazewnictwa i wyjaśnić bardziej szczegółowo, dlaczego powstaje to pytanie. Jeśli jest to przypadek próby dopasowania dokumentacji dla SAS lub SPSS, możemy napotkać trudności międzykulturowe).

Szybka odpowiedź na konkretne pytanie dotyczące sposobu uzyskania „testu Peto” polega na użyciu rho = 1, ale będzie to przybliżenie. Odnosząc się do sekcji z jedną próbą i dwóch prób z rozdziału 7 w „Analizy przetrwania” Kleina i Moeschbergera, czytamy, że wersja Peto-Peto i wersja Gehan były wersjami dwóch prób (ocenzurowanych) Manna-Whitneya Wilcoxona test dwóch próbek, ale wykorzystano różne wersje estymatora funkcji przeżycia. Nie ma jednego „testu Fleminga-Harringtona”, ponieważ termin ten odnosi się do rodziny testów, które redukują się do rangi logarytmicznej i testów typu Wilcoxona przy określonych wartościach rho. (Funkcja R / S surv.diffma parametr q rodziny Fleming-Harrington ustalony na 0 i zmienia tylko parametr p, który nazywa rho.)

Meta-pytanie brzmi: czy powinieneś skupiać się na imionach, a nie na matematycznej substancji? Wybór p = rho = 0 (przy q ustalonej na 0) w rodzinie Fleminga-Harringtona waży różnice (OE) lub różnice między grupami jednakowo w całym zakresie czasów, podczas gdy testy Gehana-Wilcoxona i Peto-Peto ważą wcześnie śmierci silniej. Moim zdaniem (jako lekarza) rozsądne jest, aby ważenie rozważanych wczesnych różnic było bardziej prawdopodobne dla typowego przypadku, ale można sobie wyobrazić konkretne przypadki, w których można by obronić inny wybór.

DWin
źródło
Dziękuję za wyjaśnienie. Moje konwencje nazewnictwa pochodzą z „Kleinbaum & Klein - Survival Analysis” (s. 63ff). Definiują w (t_j) = 1 dla Log Rank, w (t_j) = n_j dla Wilcoxon, w (t_j) = n ^ (1/2) dla Tarone-Ware, w (t_j) = s (t_j) dla Peto, i dość trudne wyrażenie dla Flemington-Harrington. Nie wiem, jakie ciężary będę potrzebować w przyszłości, ale chcę mieć pewność, że będę w stanie je zastosować, zanim będę ich potrzebować :) Ale myślę, że Twoja odpowiedź pomoże mi rozwiązać ten problem. Dziękuję Ci!
Marcel
6

Aby odpowiedzieć na pytanie, jak obliczyć to w R, możesz użyć comp()funkcji z survMiscpakietu. Przykład:

> library(survMisc)
> fit = survfit(Surv(time, status) ~ x, data = aml)
> comp(fit)$tests$lrTests
                              ChiSq df      p
Log-rank                       3.40  1 0.0653
Gehan-Breslow (mod~ Wilcoxon)  2.72  1 0.0989
Tarone-Ware                    2.98  1 0.0842
Peto-Peto                      2.71  1 0.0998
Mod~ Peto-Peto (Andersen)      2.64  1 0.1042
Flem~-Harr~ with p=1, q=1      1.45  1 0.2281

Aby wybrać parametry testu Fleminga-Harringtona (pokazane w ostatnim wierszu), użyj argumentów FHpi FHq. Na przykład,

> comp(fit, FHp=0, FHq=0)$tests$lrTests
[…]
Flem~-Harr~ with p=0, q=0      3.40  1 0.0653

daje ci normalny test log-rank (pokazany również w pierwszym wierszu w pierwszym przykładzie).

Karl Ove Hufthammer
źródło
1
W obecnej wersji survMisc (0.5.4) powinien to byćcomp(ten(fit))
Marcin Kosiński