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

У меня есть шесть групп наблюдений (в формате 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, но я бы очень хотел сделать это вместо этого..:)

0 ответов

Другие вопросы по тегам