Cumming (2008) 聲稱在復制中獲得的 p 值分佈僅取決於原始 p 值。怎麼可能是真的?
我一直在閱讀 Geoff Cumming 2008 年的論文Replication and間隔:值只能模糊地預測未來,但置信區間的效果要好得多 [在 Google Scholar 中被引用約 200 次] ——並且對其核心主張之一感到困惑。這是卡明反對的一系列論文中的一篇-值和有利於置信區間;然而,我的問題與這場辯論無關,只涉及一個關於-價值觀。
讓我從摘要中引用:
本文表明,如果初始實驗的結果是雙尾, 有一個 機會單尾- 來自複制的值將落在區間內, 一個機會, 並且完全機會. 值得注意的是,這個區間——稱為間隔——無論樣本量多大,都這麼寬嗎?
卡明聲稱這“區間”,實際上是整個分佈-在復制原始實驗(具有相同的固定樣本量)時獲得的值僅取決於原始實驗-價值並且不依賴於真實的效果大小、功效、樣本大小或其他任何東西:
[…] 的概率分佈可以在不知道或假設值的情況下推導出(或權力)。[…] 我們不假設任何先驗知識, 我們只使用信息[觀察到的組間差異]給出了大約作為給定計算的基礎的分佈 和間隔。
我對此感到困惑,因為在我看來,-價值觀強烈依賴於權力,而原來的它本身並沒有提供任何有關它的信息。真實的效果大小可能是然後分佈是均勻的;或者也許真正的效果大小是巨大的,然後我們應該期望大多非常小-價值觀。當然,人們可以先假設一些可能的效果大小並對其進行整合,但卡明似乎聲稱這不是他正在做的事情。
**問題:**這裡到底發生了什麼?
請注意,此主題與以下問題相關:在第一次實驗的 95% 置信區間內,有多少重複實驗會產生影響?@whuber 的出色回答。Cumming 有一篇關於這個主題的論文:Cumming & Maillardet,2006,置信區間和復制:下一個均值會落在哪裡?——但那是明確的,沒有問題的。
我還注意到卡明的主張在 2015 年的《自然方法》論文中多次重複。value 會產生不可重現的結果,你們中的一些人可能會遇到過(它在 Google Scholar 中已經有大約 100 次引用):
[…] 會有很大的變化重複實驗的價值。實際上,實驗很少重複。我們不知道接下來有多麼不同可能。但它可能會非常不同。例如,無論實驗的統計功效如何,如果單個複制返回一個的價值, 有一個重複實驗返回的機會之間的值和(和一個改變[原文如此]會更大)。
(注意,順便說一句,無論卡明的陳述是否正確,Nature Methods 論文如何引用它都不准確:根據卡明,它只是以上概率. 是的,論文確實說“20% 的變化*”*。噗。)
**總結:**訣竅似乎是貝葉斯方法,它假設隱藏參數 (在論文的附錄 B 中,這裡)。
我相信可能有一種貝葉斯式的方法來獲得論文附錄 B 中給出的方程。
據我了解,實驗歸結為一個統計數據. 均值的抽樣分佈是未知的,但在原假設下消失,.
調用實驗觀察到的統計量. 那麼如果我們在之前假設一個“統一”(不正確),貝葉斯後驗是. 如果我們然後通過邊緣化來更新原始採樣分佈,後驗變成. (雙倍方差是由於高斯卷積造成的。)
至少在數學上,這似乎可行。它解釋瞭如何因子“神奇地”出現從方程 B2 到方程 B3。
討論
這個結果如何與標準的零假設檢驗框架相協調?一種可能的解釋如下。
在標準框架中,原假設在某種意義上是“默認”(例如,我們說“拒絕原假設”)。在上述貝葉斯上下文中,這將是一個不均勻的先驗,它更喜歡. 如果我們認為這是, 那麼方差代表我們先前的不確定性。
通過上面的分析,我們發現
由此我們可以看出,在極限我們恢復上面的分析。但在極限我們的“後驗”變成了空,和,所以我們恢復標準結果,. (對於重複研究,上面提出了一個有趣的問題,即貝葉斯更新與薈萃分析的“傳統”方法的含義。不過,我對薈萃分析的主題完全一無所知!)
附錄
根據評論中的要求,這是一個比較圖。這是論文中公式的相對簡單的應用。但是我會寫出來以確保沒有歧義。
讓表示統計量的單側 p 值,並將其(後)CDF 表示為. 那麼附錄中的方程 B3 等價於
在哪裡是標準的正常 CDF。那麼對應的密度就是
在哪裡是標準的普通 PDF,並且如 CDF 公式。最後,如果我們表示觀察到的兩側p 值對應於,那麼我們有
使用這些方程可以得到下圖,它應該與問題中引用的論文圖 5 相當。
(這是由以下 Matlab 代碼生成的;在此處運行。)
phat2=[1e-3,1e-2,5e-2,0.2]'; zhat=norminv(1-phat2/2); np=1e3+1; p1=(1:np)/(np+1); z=norminv(1-p1); p1pdf=normpdf((z-zhat)/sqrt(2))./(sqrt(2)*normpdf(z)); plot(p1,p1pdf,'LineWidth',1); axis([0,1,0,6]); xlabel('p'); ylabel('PDF p|p_{obs}'); legend(arrayfun(@(p)sprintf('p_{obs} = %g',p),phat2,'uni',0));