Sto utilizzando il metodo di Fisher per combinare p -values, e ho notato un comportamento strano per valori p grandi e $ n. $
Nel mio caso ho un gran numero di risultati non statisticamente significativi (ad es. da .1 a .5), e Sto usando il metodo di Fisher per combinarli. Tuttavia, ho notato che il metodo di Fisher sembra mostrare un comportamento instabile per questi valori di p elevati. Pertanto, la modifica dei valori di p da .367 a .368 ha comportato cambiamenti drastici per il valore di p combinato. Perché?
p_value=fisherIntegration(rep(.367,10000000) #p_value=1.965095e-14 p_value=fisherIntegration(rep(.368,10000000) #pvalue=0.8499356
Al contrario, per valori p bassi e $ n piccolo, $ si è comportato molto bene. Ad esempio:
p_value=fisherIntegration(rep(.05,10)) #pvalue=7.341634e-06
Ecco la funzione che utilizzo per lintegrazione con 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)
}
MODIFICA Questo post è in qualche modo correlato ma non spiega perché .367 è un numero magico in questo contesto: Perché il metodo di Fisher ' produce $ p \ gg 0,5 $ quando si combinano diversi valori p tutti uguali a $ 0,5 $?
Commenti
- Hai notato che $ 0,367 \ lt e ^ {- 1} \ lt 0,368 $? (Questo sarebbe lunico punto di un esercizio che pretende di combinare $ 10 ^ 7 $ valori p in questo modo: non ha alcun uso statistico.)
- I ' non lha notato. ' scommetto che questo ha qualcosa a che fare con il comportamento strano, ma non sono sicuro del perché.
- Dallaltra parte, cosa ' è la media della distribuzione chi quadrato?
- Penso che potresti trovare questo Q & Un interessante soprattutto Christoph Hanck ' s answer stats.stackexchange.com/questions/243003/…
Risposta
Come spiegato in https://stats.stackexchange.com/a/314739/919 , il metodo di Fisher combina i valori p $ p_1, p_2, \ ldots, p_n $ presupponendo che sorgano indipendentemente in ipotesi nulle con statistiche di test continue. Ciò significa che ognuno è distribuito indipendentemente in modo uniforme tra $ 0 $ e $ 1. $ Un semplice calcolo stabilisce che $ -2 \ log (p_i) $ ha una distribuzione $ \ chi ^ 2 (2) $, da cui
$$ P = \ sum_ {i = 1} ^ n -2 \ log (p_i) $$
ha una distribuzione $ \ chi ^ 2 (2n) $. Per $ n $ grandi (come garantito dal teorema del limite centrale) questa distribuzione è approssimativamente normale. Ha una media di $ 2n $ e una varianza di $ 4n, $ come possiamo facilmente calcolare.
Supponiamo, ora, che $ P $ sia “molto” diverso da questa media. “Molto” significa, come al solito, rispetto alla deviazione standard. In altre parole, supponiamo che $ P $ differisca da $ 2n $ per più di alcuni multipli di $ \ sqrt {4n} = 2 \ sqrt {n}. $ Dalle informazioni di base sulle distribuzioni Normali ciò implica che $ P $ sia insolitamente piccolo o insolitamente grande. Di conseguenza, poiché $ P $ varia da $ 2n-2K \ sqrt {n} $ a $ 2n + 2K \ sqrt {n} $ per $ K \ approx 3, il metodo di $ Fisher assegna una probabilità cumulativa (cioè combinata valore p) compreso tra quasi $ 0 $ e quasi $ 1. $
In altre parole, tutta la probabilità “interessante” per $ P $ si verifica entro lintervallo $ (2n-2K \ sqrt {n}, 2n + 2K \ sqrt {n}) $ per $ K $ piccoli. Man mano che $ n $ cresce, questo intervallo si restringe rispetto al suo centro (a $ 2n $).
Una conclusione che possiamo trarre da questo risultato è che quando $ \ sqrt {n} $ è abbastanza grande da dominare $ 2K $, cioè quando $ n $ è molto più grande di $ (2 \ times3) ^ 2 \ circa 40 $ circa, quindi il metodo di Fisher potrebbe raggiungere i limiti della sua utilità.
Nelle circostanze di la domanda, $ n = 10 ^ 7. $ Lintervallo interessante per il valore p del log medio , $ -P / (2n), $ è quindi approssimativamente
$$ – (2n-2K \ sqrt {n}, 2n + 2K \ sqrt {n}) / (2n) \ approx (-0.999051, -1.00095) $$
quando $ K = 3. $
Il corrispondente g I valori p medi eometrici sono
$$ e ^ {- 0.999051} = 0.368229 \ text {e} e ^ {- 1.00095} = 0.367531. $$
Il valore inferiore di $ 0,367 $ utilizzato nella domanda è al di fuori di questo intervallo, fornendo una probabilità di coda essenzialmente pari a zero (inferiore), mentre il valore superiore di $ 0,368 $ si trova allinterno di questo intervallo, dando una probabilità che è ancora sensibilmente inferiore a $ 1. $ Questo è un esempio estremo della nostra conclusione precedente, che potrebbe essere riformulato in questo modo:
Quando il logaritmo naturale medio dei valori p differisce molto da $ -1 Il metodo di $ Fisher produrrà un valore p combinato estremamente vicino a $ 0 $ o vicino a $ 1 $. “Much” è proporzionale a $ 1 / \ sqrt {2n}. $
Commenti
- Sulla base di questa risposta, diresti che lintegrazione di stouffer è più appropriata nei casi di grande n?
- Credo che dal momento che una tale enorme quantità di informazioni viene scartata combinando un gran numero di valori p e poiché il risultato con $ n $ grandi è sensibile al presupposto di indipendenza (che raramente è vero) , nessun metodo per combinarli in ununica decisione è adatto nella maggior parte delle circostanze. Il metodo di Stouffer ' differisce appena dal metodo ' di Fisher.
- Io non ' sono daccordo, in quanto almeno lintegrazione di Stouffer non mostra questo strano comportamento della " soglia ". Per quanto ne so, passare un vettore di punteggi z costantemente sopra 0 (ad esempio 1000 punteggi z uguali a 0,5) produrrà sempre un punteggio z finale sopra loriginale, il che è logico. Il metodo di Fisher ' qui è nella mia mente un ' bug '
- Qualunque siano le differenze, nessuno dei due metodi è stato concepito né è utile per combinare milioni di valori p. Nelle loro aree di applicazione utile tendono a non differire molto. ' nessun " bug " in Fisher ' s approccio: ' è perfettamente accurato, dati i suoi presupposti e il suo obiettivo. Stouffer ' s è un po ad hoc che si basa implicitamente su presupposti aggiuntivi. Per essere più costruttivi: quando hai molti valori p (indipendenti), otterrai molte più informazioni da essi studiando come la loro distribuzione si discosta dalluniformità di quanto non ne otterrai da una singola statistica combinata.
- Ok. Non ' veramente daccordo con te riguardo al metodo di Fisher '. Simile allesempio concreto che abbiamo discusso di " fisherIntegration (rep (.367,1000)) =. 4999 " ma " fisherIntegration (rep (.367,10000000)) = 1.965095e-14 " è intuitivamente sciocco. Qualsiasi metodo può essere giustificato in base alle sue ipotesi / obiettivi, ma in questo caso questo tipo di comportamento dipendente dalla soglia non si adatterebbe a ciò che la maggior parte degli utenti riterrebbe ragionevole. Naturalmente, sono daccordo con te sul fatto che una singola statistica riassuntiva sarà peggio che esaminare più attentamente la distribuzione.