拉依达准则——(3σ)

拉依达准则——(3σ)

引言

有时在数据分析上,需要对某些偏离点进行剔除,我们可以考虑拉依达法则(3σ),以提高数据的准确性。

概念

假设一组检测数据只含有随机误差,对其进行计算处理得到标准偏差,按一定概率确定一个区间,认为凡超过这个区间的误差,就不属于随机误差而是粗大误差,含有该误差的数据应予以剔除

这种判别处理原理及方法仅局限于对正态或近似正态分布的样本数据处理,它是以测量次数充分大为前提。

此方法对于数据量较小的数据集是不可靠的,需要选择其他方法进行剔除偏离点。

使用原理

在正态分布中σ代表标准差,μ代表均值。x=μ即为图像的对称轴

3σ原则

数值分布在(μ-σ,μ+σ)中的概率为 0.6826

数值分布在(μ-2σ,μ+2σ)中的概率为0.9544

数值分布在(μ-3σ,μ+3σ)中的概率为0.9974

可以认为,y 的取值几乎全部集中在(μ-3σ,μ+3σ)区间内,超出这个范围的可能性仅占不到0.3%。

剔除偏离点:

设对被测量进行等精度测量,独立得到x1,x2, … , xn,算出其算术平均值x及剩余误差vi=xi-x(i=1, 2, …, n),并计算出标准差σ,若某个测量值xi的剩余误差vi(1<=i<=n),满足下式
∣ v i ∣ = ∣ x i − x ∣ > 3 σ |v_i|=|x_i-x|>3\sigma vi=xix>3σ
则认为xi应予剔除

演示如下代码(为了清晰明了,并未满足大数据量的要求,请谅解)

>> x=[1, 1.1, 1.2, 1.3, 1.4, 2, 1.2, 1.3, 1.5, 0.9, 0.8, 1.1, 11];
>> inlier = [];outlier = [];
>> len = length(x);
>> average1 = mean(x);  % x中所有元素的均值
>> standard1 = std(x);  % x的标准差
>> for i = 1:len  % 遍历x向量,判断是否为偏离点,不是偏离点则存入inline
     if abs(x(i)-average1)<standard1*3
       inlier = [inlier x(i)];
     end
   end
>> inlier

inlier =

    1.0000    1.1000    1.2000    1.3000    1.4000    2.0000    1.2000    1.3000    1.5000    0.9000    0.8000    1.1000

>> average2 = mean(inlier);
>> standard2 = std(inlier);
>> for i = 1:len  % 遍历x向量,判断是否为偏离点,不是偏离点则存入outline
     if abs(x(i)-average2) >= standard2*3
       outlier = [outlier x(i)];
     end
   end
>> outlier

outlier =

    11
  • 21
    点赞
  • 149
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
拉依达准则(Pau'ta Criteron)是一种用于识别异常值的统计方法。该方法首先假设数据集中只包含随机误差,然后根据一定的准则计算标准偏差,并基于一定的概率确定一个区间。如果数据点不在这个区间内,就被认为是异常值。在Python中,可以使用统计库中的函数来实现拉依达准则。 一个实现拉依达准则的Python代码示例如下: ```python import numpy as np def outlier_detection(data): mean = np.mean(data) std = np.std(data) lower_bound = mean - 3 * std upper_bound = mean + 3 * std outliers = [x for x in data if x < lower_bound or x > upper_bound] return outliers # 示例数据 data = [1222, 87, 77, 92, 68, 80, 78, 84, 77, 81, 80, 80, 77, 92, 86, 76, 80, 81, 75, 77, 72, 81, 72, 84, 86, 80, 68, 77, 87, 76, 77, 78, 92, 75, 80, 78, 123, 3, 1223, 1232] outliers = outlier_detection(data) print("拉依达准则检测到的异常值如下:") print(outliers) ``` 以上代码会输出拉依达准则检测到的异常值,即不在平均值-3标准差和平均值+3标准差之间的数据点。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Python:使用拉依达准则(3σ准则)剔除excel表中异常数据](https://blog.csdn.net/weixin_43996337/article/details/120830794)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [【python 机器学习】正态分布检验以及异常值处理3σ原则](https://blog.csdn.net/u013421629/article/details/103870567)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路过的风666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值