Estou usando o método de Fisher para combinar p -valores, e notei algum comportamento estranho para valores p grandes e $ n grandes. $
No meu caso, tenho um grande número de resultados não estatisticamente significativos (por exemplo, .1 a .5), e Estou usando o método de Fisher para combiná-los. No entanto, notei que o método de Fisher parece exibir um comportamento instável para esses grandes valores de p. Assim, alterar os valores de p de 0,367 para 0,368 resultou em mudanças drásticas para o valor de p combinado. Por que isso?
p_value=fisherIntegration(rep(.367,10000000) #p_value=1.965095e-14 p_value=fisherIntegration(rep(.368,10000000) #pvalue=0.8499356
Em contraste, para valores p baixos e $ n pequeno, $ this se comportou muito bem. Por exemplo:
p_value=fisherIntegration(rep(.05,10)) #pvalue=7.341634e-06
Esta é a função que uso para integração Fisher:
fisherIntegration <- function (vector){ my_length=length(vector) deg_free=my_length*2 y=-2*sum(log(vector)) p.val <- 1-pchisq(y, df = deg_free); p.val=as.numeric(p.val); return(p.val)
}
EDITAR Esta postagem é um pouco relacionado, mas não aborda por que .367 é um número mágico neste contexto: Por que o método de Fisher ' s produz $ p \ gg 0,5 $ ao combinar vários valores de p, todos iguais a $ 0,5 $?
Comentários
- Você notou que $ 0,367 \ lt e ^ {- 1} \ lt 0,368 $? (Esse seria o único ponto de um exercício que pretende combinar $ 10 ^ 7 $ valores-p desta forma: não tem uso estatístico.)
- I não ' não percebeu isso. Eu ' Aposto que isso tem algo a ver com o comportamento estranho, mas não tenho certeza do motivo.
- Do outro lado, o que ' é a média da distribuição qui-quadrado?
- Acho que você pode encontrar este Q & Um interessante especialmente Christoph Hanck ' s resposta stats.stackexchange.com/questions/243003/…
Resposta
Conforme explicado em https://stats.stackexchange.com/a/314739/919 , o método de Fisher combina p-valores $ p_1, p_2, \ ldots, p_n $ supondo que surjam independentemente sob hipóteses nulas com estatísticas de teste contínuo. independentemente distribuído uniformemente entre $ 0 $ e $ 1. $ Um cálculo simples estabelece que $ -2 \ log (p_i) $ tem uma distribuição $ \ chi ^ 2 (2) $, de onde
$$ P = \ sum_ {i = 1} ^ n -2 \ log (p_i) $$
tem uma distribuição $ \ chi ^ 2 (2n) $. Para $ n $ grandes (conforme garantido pelo Teorema do Limite Central), esta distribuição é aproximadamente Normal. Ele tem uma média de $ 2n $ e uma variação de $ 4n, $ como podemos calcular prontamente.
Suponha, agora, que $ P $ seja “muito” diferente dessa média. “Muito” significa, como de costume, em comparação com o desvio padrão. Em outras palavras, suponha que $ P $ difere de $ 2n $ por mais do que alguns múltiplos de $ \ sqrt {4n} = 2 \ sqrt {n}. $ A partir de informações básicas sobre distribuições normais, isso implica que $ P $ é incomumente pequeno ou incomumente grande. Consequentemente, como $ P $ varia de $ 2n-2K \ sqrt {n} $ a $ 2n + 2K \ sqrt {n} $ para $ K \ approx 3, o método de $ Fisher atribui uma probabilidade cumulativa (isto é, combinada valor-p) variando de quase $ 0 $ a quase $ 1. $
Em outras palavras, toda a probabilidade “interessante” de $ P $ ocorre dentro de o intervalo $ (2n-2K \ sqrt {n}, 2n + 2K \ sqrt {n}) $ para o pequeno $ K $. À medida que $ n $ cresce, este intervalo diminui em relação ao seu centro (em $ 2n $).
Uma conclusão que podemos tirar deste resultado é que quando $ \ sqrt {n} $ é grande o suficiente para dominar $ 2K $ – isto é, quando $ n $ é muito maior do que $ (2 \ times3) ^ 2 \ aproximadamente 40 $ ou mais, então o Método de Fisher pode estar atingindo os limites de sua utilidade.
Nas circunstâncias de a questão, $ n = 10 ^ 7. $ O intervalo interessante para a média log p-valor, $ -P / (2n), $, portanto, é aproximadamente
$$ – (2n-2K \ sqrt {n}, 2n + 2K \ sqrt {n}) / (2n) \ approx (-0.999051, -1.00095) $$
quando $ K = 3. $
O g correspondente valores p médios eométricos são
$$ e ^ {- 0,999051} = 0,368229 \ text {e} e ^ {- 1,00095} = 0,367531. $$
O valor inferior de $ 0,368 $ usado na pergunta está fora desse intervalo, dando essencialmente zero (menor) probabilidade de cauda, enquanto o valor superior de $ 0,368 $ está dentro desse intervalo, dando uma probabilidade que ainda é consideravelmente menor que $ 1. $ Isso é um exemplo extremo de nossa conclusão anterior, que poderia ser reafirmada assim:
Quando o logaritmo natural médio dos valores p difere muito de $ -1 O método de $ Fisher produzirá um valor p combinado extremamente próximo a $ 0 $ ou próximo a $ 1 $. “Muito” é proporcional a $ 1 / \ sqrt {2n}. $
Comentários
- Com base nessa resposta, você argumentaria que a integração mais ampla é mais apropriada em casos de n grande?
- Eu acredito que, uma vez que uma quantidade tão grande de informações é descartada na combinação de grandes números de valores p, e porque o resultado com $ n $ grande é sensível à suposição de independência (que raramente é verdadeira) , nenhum método de combiná-los em uma única decisão é adequado na maioria das circunstâncias. O método de Stouffer ' dificilmente difere do método de Fisher ' de qualquer maneira.
- Eu não ' Não concordo, pelo menos a integração de Stouffer não exibe este comportamento " limite " estranho. Pelo que eu posso dizer, passar um vetor de zscores consistentemente acima de 0 (por exemplo, 1000 zscores igual a 0,5) sempre produzirá um zscore final acima do original, o que é lógico. O método de Fisher ' aqui é, em minha mente, um ' bug '
- Quaisquer que sejam as diferenças, nenhum dos métodos foi planejado nem é útil para combinar milhões de valores p. Em suas áreas de aplicação útil, eles tendem a não diferir muito. Há ' s não " bug " em Fisher ': é ' perfeitamente precisa, dados seus pressupostos e seu objetivo. Stouffer ' s é um pouco ad hoc, baseando-se implicitamente em suposições adicionais. Para ser mais construtivo: quando você tem muitos valores de p (independentes), você obterá muito mais informações deles estudando como sua distribuição diverge da uniformidade do que de qualquer estatística combinada única.
- OK. Não ' realmente não concordo com você a respeito do método de Fisher '. Semelhante ao exemplo concreto, discutimos " fisherIntegration (rep (.367,1000)) =. 4999 ", mas " fisherIntegration (rep (.367,10000000)) = 1.965095e-14 " é intuitivamente bobo. Qualquer método pode ser justificado de acordo com suas suposições / objetivos, mas, neste caso, esse tipo de comportamento dependente do limite não se encaixaria no que a maioria dos usuários consideraria razoável. Claro, concordo com você que um único resumo estatístico será pior do que examinar a distribuição com mais cuidado.