1. 程式人生 > >Python利用置信區間進行資料清理

Python利用置信區間進行資料清理

當我們利用python進行資料清理和篩選時,有時候一串資料的噪點很多,我們需要抽取一部分資料作為樣本來進行分析,下面推薦一種基本的資料篩選方法,利用置信區間,例:樣本滿足正態分佈

置信區間:當給出某個估計值的95%置信區間為 [a, b] 時,可以理解為有95%的信心可以說說樣本的平均值介於a到b之間,而發生錯誤的概率為5%。

計算方式:

第一步:計算樣本\small (X_{1}, ..., X_{2}})均值 \small M=(\sum _{i=1}^{n}X_{i})/n

第二步:計算樣本標準差:\small \sigma =\sqrt{1/n\sum_{i=1} ^{n}(X_{i}-M)^{2}}

第三步:取90%置信區間時:\small [M-1.645\sigma , M+1.645\sigma ]

              取95%置信區間時:\small [M-1.96\sigma , M+1.96sigma ]

              取99%置信區間時:\small [M-2.576sigma , M+2.576\sigma ]

程式碼:

import pandas as pd
def confidenceinterval(data):#求置信區間
    data=pd.read_excel("檔案位置")
    data=data["某列"]
    StandardDeviation_sum=0
#返回樣本數量   
    Sizeofdata=len(data)
    data=np.array(data)
    print(data)
    Sumdata=sum(data)
#計算平均值
    Meanvalue=Sumdata/Sizeofdata
    #print(Meanvalue)
#計算標準差
    for index in data:
        StandardDeviation_sum=StandardDeviation_sum+(index-Meanvalue)**2    
    StandardDeviation_sum=StandardDeviation_sum/Sizeofdata    
    StandardDeviationOfData=StandardDeviation_sum**0.5
    #print(StandardDeviationOfData)
#計算置信區間  
    LowerLimitingValue=Meanvalue-1.645*StandardDeviationOfData
    UpperLimitingValue=Meanvalue+1.645*StandardDeviationOfData    
    return LowerLimitingValue, UpperLimitingValue