Estou tentando aplicar o teste exato de Fisher em um problema genético simulado, mas os valores de p parecem distorcidos à direita. Sendo biólogo, acho que estou perdendo algo óbvio para todos os estatísticos, por isso gostaria muito de receber sua ajuda.
Minha configuração é a seguinte: (configuração 1, marginais não corrigidos)
Duas amostras de 0s e 1s são geradas aleatoriamente em R. Cada amostra n = 500, as probabilidades de amostragem 0 e 1 são iguais. Comparo as proporções de 0/1 em cada amostra com o teste exato de Fisher (apenas fisher.test
; também tentei outro software com resultados semelhantes). A amostragem e o teste são repetidos 30 000 vezes. Os valores p resultantes são distribuídos assim:
A média de todos os valores de p é de 0,55, percentil 5 a 0,0577. Até a distribuição aparece descontínua no lado direito.
Eu tenho lido tudo o que posso, mas não encontro nenhuma indicação de que esse comportamento seja normal - por outro lado, são apenas dados simulados, portanto não vejo fontes de viés. Há algum ajuste que eu perdi? Tamanhos de amostra muito pequenos? Ou talvez não deva ser distribuído uniformemente, e os valores-p são interpretados de maneira diferente?
Ou devo repetir isso um milhão de vezes, encontrar o quantil 0,05 e usá-lo como ponto de corte de significância quando aplico isso aos dados reais?
Obrigado!
Atualizar:
Michael M sugeriu fixar os valores marginais de 0 e 1. Agora, os valores-p oferecem uma distribuição muito melhor - infelizmente, não é uniforme, nem de qualquer outra forma que reconheço:
adicionando o código R real: (configuração 2, marginais corrigidos)
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="")
Edição final: Como o whuber aponta nos comentários, as áreas parecem distorcidas devido ao binning. Estou anexando os gráficos QQ para a configuração 1 (margens livres) e a configuração 2 (margens fixas). Gráficos similares são vistos nas simulações de Glen abaixo, e todos esses resultados parecem bastante uniformes. Obrigado pela ajuda!
fonte
Respostas:
O problema é que os dados são discretos para que os histogramas possam enganar. Codifiquei uma simulação com qqplots que mostra uma distribuição uniforme aproximada.
fonte