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

猜你喜欢

转载自blog.csdn.net/W_weiying/article/details/81127714