Я пытаюсь применить точный критерий Фишера в задаче с имитацией генетики, но значения p кажутся искаженными вправо. Будучи биологом, я думаю, я просто упускаю что-то очевидное для каждого статистика, поэтому я был бы очень признателен за вашу помощь.
Моя установка такова: (настройка 1, маргиналы не фиксированы)
Две выборки 0 и 1 случайным образом генерируются в R. Каждая выборка n = 500, вероятности выборки 0 и 1 равны. Затем я сравниваю пропорции 0/1 в каждом образце с точным тестом Фишера (просто fisher.test
; также пробовал другое программное обеспечение с похожими результатами). Отбор проб и тестирование повторяют 30 000 раз. Результирующие значения p распределяются следующим образом:
Среднее значение всех значений р составляет около 0,55, 5-й процентиль 0,0577. Даже распределение кажется прерывистым на правой стороне.
Я читал все, что мог, но я не нахожу никаких признаков того, что это нормальное поведение - с другой стороны, это просто симулированные данные, поэтому я не вижу источников какого-либо смещения. Есть ли какие-то корректировки, которые я пропустил? Слишком маленький размер выборки? Или, может быть, он не должен быть равномерно распределен, а значения p интерпретируются по-разному?
Или я должен просто повторить это миллион раз, найти квантиль 0,05 и использовать это в качестве предела значимости, когда я применяю это к фактическим данным?
Благодаря!
Обновить:
Майкл М предложил исправить предельные значения 0 и 1. Теперь p-значения дают гораздо более приятное распределение - к сожалению, оно не однородное и не какой-либо другой формы, которую я узнаю:
добавление фактического кода R: (настройка 2, маргиналы исправлены)
samples=c(rep(1,500),rep(2,500))
alleles=c(rep(0,500),rep(1,500))
p=NULL
for(i in 1:30000){
alleles=sample(alleles)
p[i]=fisher.test(samples,alleles)$p.value
}
hist(p,breaks=50,col="grey",xlab="p-values",main="")
Окончательное редактирование:
как указано в комментариях, области просто выглядят искаженными из-за разбивки. Я прилагаю QQ-графики для установки 1 (свободные маргиналы) и установки 2 (фиксированные маргиналы). Подобные графики видны при моделировании Глена ниже, и все эти результаты на самом деле кажутся довольно однородными. Спасибо за помощь!
источник
Ответы:
Проблема в том, что данные являются дискретными, поэтому гистограммы могут быть обманчивыми. Я кодировал симуляцию с помощью qqplots, которые показывают примерное равномерное распределение.
источник