從自舉重採樣中獲取的置信區間的含義是什麼?
我一直在這個網站上查看有關引導和置信區間的許多問題,但我仍然感到困惑。我感到困惑的部分原因可能是我的統計知識不夠先進,無法理解很多答案。我的統計學入門課程已經過了一半,而我的數學水平只有代數 II 的中級,所以任何超過那個水平的東西都會讓我感到困惑。如果該站點上的一位知識淵博的人可以在我的水平上解釋這個問題,那將非常有幫助。
我們在課堂上學習如何使用 bootstrap 方法進行重新採樣,並使用這些方法為我們想要測量的一些統計數據建立置信區間。例如,假設我們從大量人口中抽取樣本,發現 40% 的人表示他們會投票給候選人 A。我們假設這個樣本非常準確地反映了原始人口,在這種情況下,我們可以從它是為了發現一些關於人口的事情。因此,我們重新採樣並發現(使用 95% 的置信水平)得到的置信區間在 35% 到 45% 之間。
我的問題是,這個置信區間實際上是什麼意思?
我一直在讀到(頻率主義者)置信區間和(貝葉斯)可信區間之間存在差異。如果我理解正確,可信區間會說在我們的情況下,真實參數有 95% 的機會在給定的區間內(35%-45%),而置信區間會說有 95% 的概率在這個區間內情況的類型(但不一定在我們的具體情況下)我們使用的方法將準確地報告真實參數在給定的區間內。
假設這個定義是正確的,我的問題是:當使用使用 bootstrap 方法建立的置信區間時,我們正在談論的“真實參數”是什麼?我們指的是(a)原始總體的真實參數,還是(b)樣本的真實參數?如果是 (a),那麼我們會說 95% 的時間引導方法將準確地報告關於原始人口的真實陳述。但我們怎麼可能知道呢?整個引導方法不是基於假設嗎原始樣本是否準確反映了樣本的來源?如果(b)那麼我根本不理解置信區間的含義。我們不是已經知道樣本的真實參數了嗎?這是一個簡單的測量!
我和老師討論過這個問題,她很有幫助。但我還是很困惑。
如果引導程序和置信區間的形成正確執行,則意味著與任何其他置信區間相同。從頻率論者的角度來看,95% CI 意味著如果整個研究無限重複,則以這種方式形成的 95% 的置信區間將包括真實值。當然,在您的研究或任何給定的個人研究中,置信區間要么包含真實值,要么不包含真實值,但您不知道是哪個。為了進一步理解這些想法,它可能會幫助您在這裡閱讀我的答案:為什麼 95% 置信區間 (CI) 並不意味著 95% 的機會包含平均值?
關於您的進一步問題,“真實值”是指相關人群的實際參數。(樣本沒有參數,它們有統計量;例如,樣本均值,, 是樣本統計量,但總體均值,, 是人口參數。)至於我們如何知道這一點,實際上我們不知道。你是對的,我們依賴於一些假設——我們一直都是。如果這些假設是正確的,則可以證明這些屬性成立。這就是 Efron 在 1970 年代末和 1980 年代初的工作重點,但大多數人很難理解數學。有關引導程序的某種數學解釋,請參閱@StasK 在此處的回答:向外行解釋為什麼引導程序有效。對於缺少數學的快速演示,請考慮使用以下模擬
R
:# a function to perform bootstrapping boot.mean.sampling.distribution = function(raw.data, B=1000){ # this function will take 1,000 (by default) bootsamples calculate the mean of # each one, store it, & return the bootstrapped sampling distribution of the mean boot.dist = vector(length=B) # this will store the means N = length(raw.data) # this is the N from your data for(i in 1:B){ boot.sample = sample(x=raw.data, size=N, replace=TRUE) boot.dist[i] = mean(boot.sample) } boot.dist = sort(boot.dist) return(boot.dist) } # simulate bootstrapped CI from a population w/ true mean = 0 on each pass through # the loop, we will get a sample of data from the population, get the bootstrapped # sampling distribution of the mean, & see if the population mean is included in the # 95% confidence interval implied by that sampling distribution set.seed(00) # this makes the simulation reproducible includes = vector(length=1000) # this will store our results for(i in 1:1000){ sim.data = rnorm(100, mean=0, sd=1) boot.dist = boot.mean.sampling.distribution(raw.data=sim.data) includes[i] = boot.dist[25]<0 & 0<boot.dist[976] } mean(includes) # this tells us the % of CIs that included the true mean [1] 0.952