2016-11-08 1340 views
1

我想使用python中的引導方法來計算均值的置信區間。假設我有一個向量a有100個條目,我的目標是使用bootstrap來計算這100個值的平均值及其95%置信區間。到目前爲止,我已經設法使用np.random.choice函數從我的矢量重新採樣1000次。然後,對於每個有100個條目的引導向量,我計算了平均值。所以現在我有1000個bootstrap平均值和一個來自我的初始向量的單個樣本平均值,但我不知道如何從這裏開始。我怎麼能使用這些平均值來找到我的初始向量的平均值的置信區間?我在python中比較新,而且這是我第一次遇到bootstrap的方法,所以任何幫助都會很感激。如何使用Bootstrap方法計算95%的置信區間

回答

3

您可以對1000個平均值的數組進行排序,並使用第50個和第950個元素作爲90%的自舉置信區間。

您的1000個均值的集合基本上是均值估計的分佈樣本(均值的抽樣分佈)。因此,您可以對來自發行版的樣本進行的任何操作都可以在此處完成。

0

首先,我建議您加深對引導方法及其用法的理解,主要想法是處理數據缺乏的情況,並且希望複製更多的情況。

其次,關於置信區間,您可以使用Wilson Score Interval來幫助您對二項模型進行排序。 I found this Ipython notebook這也解釋了你問什麼

威爾遜間隔

import math 


def ci(positive, n, z): 
    # z = 1.96 
    phat = positive/n 

    return (phat + z * z/(2 * n) - z * math.sqrt((phat * (1 - phat) + z * z/(4 * n))/n))/(1 + z * z/n), \ 
      (phat + z * z/(2 * n) + z * math.sqrt((phat * (1 - phat) + z * z/(4 * n))/n))/(1 + z * z/n) 


sample_size = [50, 100, 200, 400, 8000] 
z_rate_confidence = {'95%': 1.96, '90%': 1.92, '75%': 1.02} 
success_rate = [0.6, 0.7, 0.8] 
for confidence, z in z_rate_confidence.iteritems(): 
    print 'confidence: '+confidence + '\n' 
    for n in sample_size: 
     print 'sample size: ',n 
     for s in success_rate: 
      print ci(s * n, n, z) 
0

的簡短的例子,我有一個簡單的統計解決方案: 置信區間是基於標準錯誤。 您的情況的標準錯誤是您的1000自舉方式的標準偏差。假設您的參數(均值)的抽樣分佈的正態分佈(應由中心極限定理的性質保證),只需將所需置信區間的等效Z-分數乘以標準偏差即可。因此:

下邊界=您的引導意味着平均值 - 1.96 * std。開發。你的bootstrap的意思是

上邊界=你的引導意味着平均值+ 1.96 * std。開發。你的引導手段的情況下

95%,從平均

希望之內1.96個標準差的正態分佈坐這有助於