Точная проверка по специальной попарной системе Фишера - PullRequest
1 голос
/ 23 сентября 2010

Раньше у меня был двухфакторный эксперимент, который превращался в трехфакторный двухуровневый эксперимент.

Используя пасту, я мог создать 4 уникальные группы из двух моих факторов и запустить тест Фишера сВ результате выяснилось, жив ли или умер организм.

fisher.test(mortal$alv.dead,paste(mortal$Strain,mortal$capsule))

Но затем, когда я захотел исследовать парные сравнения между отдельными группами, мне пришлось провести некую нечеткую фильтрацию, чтобы в анализ одновременно входили только две группы.,Теперь, когда у меня есть больше групп, слишком утомительно кодировать каждую обработку.Итак, вот тест Фишера для проверки всех групп в одном анализе

fisher.test(mortal$alv.dead,paste(mortal$Strain,mortal$capsule,mortal$cassette))

Как настроить метод, который создает и проверяет все возможные пары?

1 Ответ

2 голосов
/ 23 сентября 2010

Довольно легко с помощью функции combn (). Единственное, что вы должны принять во внимание, это то, что combn не будет правильно возвращать имена групп, когда вы помещаете вызов fisher.test () в функцию.

Таким образом, нам нужно соответствующим образом настроить элемент в списке:

Некоторые данные игрушек:

mortal <- data.frame(
      alv.dead = sample(c("alv","dead"),30,replace=T),
      train = sample(letters[1:3],30,replace=T),
      capsule = sample(letters[4:5],30,replace=T),
      cassette = sample(letters[6:7],30,replace=T)
      )

Некоторые дополнительные переменные

mortal$groups <- paste(mortal$train,mortal$capsule,mortal$cassette,sep="")
unique.groups <- unique(mortal$groups)

И хитрость:

combn(unique.groups,2,function(x){
    id <- mortal$groups %in% x
    test <- fisher.test(table(mortal$alv.dead[id],mortal$groups[id]))
    test$data.name <-
      paste(
        unique(
          as.character(mortal$groups[id])
        ),collapse="-")
    return(test)}
  ,simplify=FALSE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...