Является ли перекрытие между несколькими группами значительным?(R) - перестановка? - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть шесть групп наблюдений (в формате 128_A, 16001_T и т. Д.).Используя пакет UpSetR в R, я нашел специфичные перекрывающиеся наблюдения между моими 6 группами, т.е.наблюдения, разделенные на 2,3,4,5,6 группы или специфичные для группы.

Размеры группы:

Группа 1: 1565

Группа 2: 379

Группа 3: 703

Группа 4: 1700

Группа 5: 1788

Группа 6: 548

Количество различных наблюдений: 3821

(теоретическое количество возможных наблюдений: 65196)

Я обнаружил, что перекрытие , специфичное для группы 1/4/5, равно 429. Возможно, имеются другие общие наблюдениямежду этими тремя группами, но затем они также совместно используются другими группами.

library(UpSetR)
listInput = list(
  G1 = c(G1),
  G2 = c(G2),
  G3 = c(G3),
  G4 = c(G4),
  G5 = c(G5),
  G6 = c(G6)
)
upset(fromList(listInput))

Теперь я хочу знать, является ли это перекрытие значительным, то есть является ли это перекрытие больше, чем можно было бы ожидать случайно.

Мои навыки для выполнения этого строго ограничены ... Я привык делать t.test или wilcox.test, но я не знаю, как обращаться с этими непостоянными переменными.Я думаю, что мне нужно выполнить тест перестановки - это правильно?Кто-нибудь может привести меня к примеру, как выполнить этот тест?Я посмотрел на пакет coin, но не вижу способа выполнить это три способа, и во многих примерах, которые я могу найти при сравнении трех групп, есть непрерывные переменные.

Я пытался использовать SuperExactTest в R, и это работает довольно хорошо.Тем не менее, при взгляде на перекрывающиеся группы, он не делает такого же специфического перекрытия групп, которое я получаю при использовании UpSetR, которое я хотел бы получить (т.е. если наблюдения найдены в G1 / 2/3, перекрываются онитакже будет учитываться в перекрывающихся группах G1 / 2 и G1 / 3 и G2 / 3).

library(SuperExactTest)
list.data = list(G1,G2,G3,G4,G5,G6)
res = supertest(list.data,n=3821)
plot(res)

Для перекрытия двух групп я выполнил fisher.test:

data = matrix(
  c(O,G1,G2,A),
  nrow = 2,
  dimnames = list(G2 = c("Yes","No"),
                  G1 = c("Yes","No"))
)

fisher.test(data)

, где O = перекрытие, специфичное для G1 / G2, G1 = Наблюдения, характерные для G1, G2= Наблюдения, характерные для G2, A = Общее количество наблюдений во всех 6 группах.Но даже в этом я не уверен.Одним из требований к перекрытию является то, что оно является специфичным для двух групп по сравнению со всеми шестыми группами.И это здесь не учитывается, верно?

Я надеюсь, что кто-то может направить меня в правильном направлении :) (Я обучаюсь в лаборатории по молекулярной биологии, а не по статистике / математике, пожалуйста, сохраните этопри ответе - спасибо!)

Я могу жить с результатами SuperExactTest, но я бы очень хотел сделать это вместо этого .. :)

...