Jag använder Fishers metod för att kombinera p -värden och har märkt något konstigt beteende för stora p-värden och stora $ n. $

I mitt fall har jag ett stort antal icke statistiskt signifikanta resultat (t.ex. .1 till .5), och Jag använder Fishers metod för att kombinera dem. Men jag märkte att Fishers metod verkar visa instabilt beteende för dessa stora p-värden. Att ändra p-värdena från .367 till .368 resulterade alltså i drastiska förändringar för det kombinerade p-värdet. Varför är detta?

p_value=fisherIntegration(rep(.367,10000000) #p_value=1.965095e-14 p_value=fisherIntegration(rep(.368,10000000) #pvalue=0.8499356 

Däremot, för låga p-värden och små $ n, $ uppförde sig detta mycket snyggt. Till exempel:

p_value=fisherIntegration(rep(.05,10)) #pvalue=7.341634e-06 

Här är den funktion jag använder för Fisher-integrering:

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) 

}

EDIT Detta inlägg är något relaterat men tar inte upp varför .367 är ett magiskt nummer i detta sammanhang: Varför ger Fisher ' s metod $ p \ gg 0,5 $ när man kombinerar flera p-värden som alla är lika med $ 0,5 $?

Kommentarer

  • Har du märkt att $ 0,367 \ lt e ^ {- 1} \ lt 0,368 $? (Det skulle vara den enda punkten i en övning som påstår sig kombinera $ 10 ^ 7 $ p-värden på detta sätt: det har ingen statistisk användning.)
  • I märkte inte ' det. Jag ' Jag slår vad om att detta har något att göra med det konstiga beteendet, men jag är inte säker på varför.
  • Från andra hållet, vad ' är medelvärdet av chi-kvadratfördelningen?
  • Jag tror att du kanske hittar denna Q & En intressant speciellt Christoph Hanck ' s svar stats.stackexchange.com/questions/243003/…

Svar

Som förklaras i https://stats.stackexchange.com/a/314739/919 , Fishers metod kombinerar p-värden $ p_1, p_2, \ ldots, p_n $ under antagandet att de uppstår oberoende under nollhypoteser med kontinuerlig teststatistik. Detta betyder att var och en är oberoende fördelat jämnt mellan $ 0 $ och $ 1. $ En enkel beräkning fastställer att $ -2 \ log (p_i) $ har en $ \ chi ^ 2 (2) $ distribution, varifrån

$$ P = \ sum_ {i = 1} ^ n -2 \ log (p_i) $$

har en $ \ chi ^ 2 (2n) $ distribution. För stora $ n $ (som garanteras av Central Limit Theorem) är denna fördelning ungefär normal. Den har ett medelvärde på $ 2n $ och variansen på $ 4n, $ som vi lätt kan beräkna.

Antag nu att $ P $ är ”mycket” annorlunda än detta medelvärde. ”Mycket” betyder, som vanligt, i jämförelse med standardavvikelsen. Antag med andra ord att $ P $ skiljer sig från $ 2n $ med mer än några multiplar av $ \ sqrt {4n} = 2 \ sqrt {n}. $ Från grundläggande information om normala distributioner innebär detta att $ P $ är antingen ovanligt liten eller ovanligt stor. Följaktligen, eftersom $ P $ varierar från $ 2n-2K \ sqrt {n} $ till $ 2n + 2K \ sqrt {n} $ för $ K \ ca 3, tilldelar $ Fishers metod en kumulativ sannolikhet (det vill säga kombinerad p-värde) som sträcker sig från nästan $ 0 $ till nästan $ 1. $

Med andra ord förekommer all ”intressant” sannolikhet för $ P $ inom intervallet $ (2n-2K \ sqrt {n}, 2n + 2K \ sqrt {n}) $ för små $ K $. När $ n $ växer minskar detta intervall relativt sitt centrum (vid $ 2n $).

En slutsats som vi kan dra av detta resultat är att när $ \ sqrt {n} $ är tillräckligt stor för att dominera $ 2K $ – det vill säga när $ n $ är mycket större än $ (2 \ times3) ^ 2 \ ca 40 $ eller så, då kan Fishers metod nå gränserna för dess användbarhet.


Under omständigheterna med frågan, $ n = 10 ^ 7. $ Det intressanta intervallet för genomsnittet log p-värde, $ -P / (2n), $ är därför ungefär

$$ – (2n-2K \ sqrt {n}, 2n + 2K \ sqrt {n}) / (2n) \ approx (-0.999051, -1.00095) $$

när $ K = 3. $

Motsvarande g eometriska medelvärden för p-värden är

$$ e ^ {- 0.999051} = 0.368229 \ text {och} e ^ {- 1.00095} = 0.367531. $$

Det lägre värdet på $ 0,367 $ som används i frågan ligger utanför detta intervall, vilket ger i princip noll (nedre) svanssannolikhet, medan det övre värdet på $ 0,368 $ ligger inom detta intervall, vilket ger en sannolikhet som fortfarande är märkbart mindre än $ 1. $ Detta är ett extremt exempel på vår tidigare slutsats, som kan omräknas så här:

När den genomsnittliga naturliga logaritmen för p-värdena skiljer sig mycket från $ -1 , $ Fishers metod ger ett kombinerat p-värde extremt nära $ 0 $ eller nära $ 1 $. ”Mycket” är proportionellt mot $ 1 / \ sqrt {2n}. $

Kommentarer

  • Baserat på det här svaret, skulle du hävda att stoufferintegration är lämpligare i fall av stort n?
  • Jag tror att eftersom en så stor mängd information slängs för att kombinera ett stort antal p-värden, och eftersom resultatet med stora $ n $ är känsligt för antagandet om oberoende (som sällan verkligen håller) , ingen metod för att kombinera dem till ett enda beslut är lämpligt under de flesta omständigheter. Stouffer ' metod skiljer sig knappast från Fisher ' metod ändå.
  • Jag don ' håller inte med, eftersom åtminstone Stouffer-integrationen inte visar detta konstiga " tröskel " beteende. Såvitt jag kan säga kommer att ge en vektor med zscores konsekvent över 0 (t.ex. 1000 zscores lika med .5) alltid en slutlig zscore ovanför originalet, vilket är logiskt. Fisher ' s metod här är i mitt sinne en ' bug '
  • Oavsett skillnaderna kan vara varken metoden avsedd för eller användbar för att kombinera miljontals p-värden. I sina användbara områden brukar de inte skilja sig mycket. Det finns ' ingen " bug " i Fisher ' s tillvägagångssätt: det ' är helt korrekt, med tanke på dess antaganden och sitt mål. Stouffer ' s är lite ad hoc, och förlitar sig implicit på ytterligare antaganden. För att vara mer konstruktiv: när du har många (oberoende) p-värden kommer du att få mycket mer information ur dem genom att studera hur deras fördelning avviker från enhetlighet än vad du kommer från någon kombinerad statistik.
  • Ok. Jag håller inte ' verkligen med dig angående Fishers ' -metod. I likhet med det konkreta exemplet diskuterade vi " fisherIntegration (rep (.367,1000)) =. 4999 " men " fisherIntegration (rep (.367,10000000)) = 1,965095e-14 " är intuitivt dumt. Vilken metod som helst kan motiveras med tanke på dess antaganden / mål, men i det här fallet skulle denna typ av tröskelberoende beteende inte passa vad de flesta användare tycker är rimliga. Naturligtvis håller jag med dig om att en sammanfattande statistik kommer att vara sämre än att noggrannare undersöka distributionen.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *