Как выполнить ранговый тест Уилкоксона для данных о выживаемости в R?


9

Скажем, у вас есть данные о выживании, как это:

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

Чтобы выполнить стандартный тест ранга журнала, можно использовать

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

правильно?

Но как насчет другого теста? Как вы могли бы выполнить ранговый тест Уилкоксона, тест Пето или тест Флеминга-Харрингтона?

R предоставляет возможность выполнить тест Уилкоксона , однако я не нашел, как позволить ему принять во внимание цензуру.

Кроме того, в документе говорится, что эта настройка rho = 1сделает тест «модификацией Пето и Пето теста Гехана-Уилкоксона». Но так ли это, как тест Пето?


Я не знаю своих данных о выживании, но, похоже, Google: тест Уилкокса, а чтение документов для survdiffнастройки rho=1превращает его в тест Пето ...
Джастин,

да спасибо! это насколько я понял. Однако я не нашел способа wilcox.testпринять цензуру во внимание. С rho=1Я уверен , если это тест Пето или тест Вилкоксона, как документ гласит «модификации Пето и Пето теста Gehan-Вилкоксона». Не нужно понижать голос.
Марсель

Ответы:


7

(Вам, вероятно, следует привести источник ваших соглашений об именах и объяснить более подробно, почему этот вопрос ставится. Если это попытка сопоставить документацию по SAS или SPSS, у нас могут возникнуть межкультурные трудности.)

Быстрый ответ на ваш конкретный вопрос о том, как пройти «тест Пето», заключается в использовании rho = 1, но это будет приблизительное значение. Обращаясь к разделам с одной выборкой и двумя выборками главы 7 в «Анализе выживания» Кляйна и Мешбергера, мы читаем, что версия Пето-Пето и версии Гехана были версиями Манна-Уитни Уилкоксона с двумя выборками (с цензурой) тест с двумя выборками, но использовались разные варианты оценки функции выживания. Единого «теста Флеминга-Харрингтона» не существует, поскольку этот термин относится к семейству тестов, которые сводятся к лог-рангу и тестам типа Уилкоксона при указанных значениях rho. (Функция R / S surv.diffимеет q-параметр семейства Флеминга-Харрингтона, установленный на 0, и изменяет только p-параметр, который она называет rho.)

Мета-вопрос заключается в том, следует ли вам сосредоточиться на именах, а не на математической субстанции? Выбор p = rho = 0 (с q, установленным в 0) в семействе Флеминг-Харрингтон взвешивает (OE) или различия между группами в равной степени в диапазоне времен, тогда как тесты Gehan-Wilcoxon и Peto-Peto взвешивают ранние смерти сильнее. Мое мнение (как врача) заключается в том, что разумно иметь взвешивание ранних различий, которое более вероятно для типичного случая, но может представлять конкретные случаи, когда можно было бы защитить другой выбор.


Спасибо за ваше объяснение. Мои соглашения об именах взяты из «Kleinbaum & Klein - Survival Analysis» (стр. 63 и далее). Они определяют w (t_j) = 1 для Log Rank, w (t_j) = n_j для Уилкоксона, w (t_j) = n ^ (1/2) для Tarone-Ware, w (t_j) = s (t_j) для Пето, и довольно сложное выражение для Флемингтона-Харрингтона. Я не знаю, какие веса мне понадобятся в будущем, но я хочу быть уверен, что смогу применить их раньше, чем они понадобятся :) Но я думаю, что ваш ответ поможет мне с этой проблемой. Спасибо!
Марсель

5

Чтобы ответить на ваш вопрос о том, как рассчитать это в R, вы можете использовать comp()функцию из survMiscпакета. Пример:

> 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

Чтобы выбрать параметры для теста Флеминг-Harrington (показано в последней строке), вы используете FHpи FHqаргументы. Например,

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

дает нормальный тест лог-ранга (также показан в первой строке в первом примере).


1
В текущей версии SurvMisc (0.5.4) это должно бытьcomp(ten(fit))
Marcin Kosiński
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.