Использование теста Гехана и весов Tarone и Ware - PullRequest
1 голос
/ 09 марта 2020

Я пытаюсь использовать тест Гехана и веса Тарона и Уэра для проверки гипотезы об отсутствии различий в частоте стафилококковой инфекции у пациентов, у которых были получены ожоги с помощью обычного метода купания по сравнению с теми, чья чистка тела была первоначально проведена с использованием 4% хлоргексидина глюконата по данным (сжигание) от (KMsurv). 1.При использовании кода (gehan.test(T3, D3, Z1) я получаю сообщение об ошибке: gehan.test not found. 2. Что касается Tarone и Ware, какой соответствующий код можно использовать?

Ответы [ 2 ]

1 голос
/ 10 марта 2020

Пакет npsm имеет функцию gehan.test.

library(npsm)
library(KMsurv)  # Contains the "burn" data

data(burn)  # see ?burn for a description of the variables.

# T3: Time to straphylocous aureaus infection or on study time
# D3: Straphylocous aureaus infection: 1=yes 0=no
# Z1: Treatment: 0-routine bathing 1-Body cleansing

with(burn, gehan.test(time=T3, event=D3, trt=Z1) )

statistic =  -1.686689 , p-value =  0.0916631 

Разница в частоте стафилококковой инфекции у пациентов, у которых были получены ожоги с рутинное омовение и очищение тела несущественны (p> 0,05).

Теперь для теста Tarone-Ware. Это доступно в пакете coin .

library(coin)
?logrank_test

Использование описано на странице справки. Нам нужна формула вида y ~ x | block, где y - это объект выживания, а x - фактор. Z1 не является фактором, равно как и другие переменные "Z" в наборе данных записи. Так что конвертируйте их все в факторы. Для этого я буду использовать функцию mutate_at из пакета dplyr .

library (dplyr)

  burn <- burn %>%
             mutate_at(vars(starts_with("Z")), as.factor)

unlist(lapply(burn, class)) # Just to check

Вы также можете добавить метки. А теперь тест:

logrank_test(Surv(T3, D3) ~ Z1, data=burn, type="Tarone-Ware")

    Asymptotic Two-Sample Tarone-Ware Test

data:  Surv(T3, D3) by Z1 (0, 1)
Z = -1.7694, p-value = 0.07683
alternative hypothesis: true theta is not equal to 1

Нет никаких доказательств того, что распределение выживаемости между двумя группами различается.

0 голосов
/ 09 марта 2020

Кажется, что gehan.test больше не работает.

Но в gitbhub есть репозиторий, который предоставляет функцию:

gehan.test<-function(time,event,trt) {


  #  number of times x clearly beats y - number of times y clearly beats x

  if( length(unique(trt)) != 2 ) stop("trt must have two levels")

  nvec<-table(trt)

  n<-sum(nvec)
  U<-matrix(0,nrow=n,ncol=n)
  D<-sign(outer(time,time,'-'))     

  ind11<-outer(event,event,'&')
  ind01<-outer(!event,event,'&')
  ind10<-outer(event,!event,'&')

  U[ind11]<-D[ind11]
  U[ind01&(D>=0)]<- 1
  U[ind10&(D<=0)]<- -1

  W<-apply(U,1,sum)

  statistic<-sum(W[trt==trt[1]])/sqrt(prod(nvec)/sum(nvec)*var(W))

  res<-list(statistic=statistic,p.value=2*pnorm(abs(statistic),lower.tail=FALSE))

  class(res)<-'rank.test'

  res

}

кредиты на: https://github.com/cran/npsm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...