异常值判断与识别检验处理

81 篇文章 2 订阅
77 篇文章 17 订阅

异常值概念

异常值是指一组测定值中与平均值的偏差超过两倍标准差的测定值,与平均值的偏差超过三倍标准差的测定值,称为高度异常的异常值。

在处理数据时,应剔除高度异常的异常值。异常值是否剔除,视具体情况而定。在统计检验时,指定为检出异常值的显著性水平α=0.05,称为检出水平;指定为检出高度异常的异常值的显著性水平α=0.01,称为舍弃水平,又称剔除水平。

异常值判断

判断异常值的规则:
(1)标准差已知——奈尔(Nair)检验法;

(2)标准差未知——格拉布斯(Grubbs)检验法和狄克逊(Dixon)检验法。

异常值检验

1.格拉布斯(Grubbs)检验法

(1)计算统计量

μ=(X1+X2+…+Xn)/n

s=(∑(Xi-μ)/(n-1))½(i=1,2…n)

Gn=(X(n)-μ)/s

式中μ——样本平均值;

s——样本标准差;

Gn——格拉布斯检验统计量。

(2)确定检出水平α,查表(见GB4883)得出对应n,α的格拉布斯检验临界值G1-α(n)。

(3)当Gn>G1-α(n),则判断Xn为异常值,否则无异常值。

(4)给出剔除水平α’的G1-α’(n),当当Gn>G1-α’(n)时,Xn为高度异常值,应剔除。

2.正态分布判断

在这里插入图片描述
根据正态分布的定义可知,距离平均值3δ之外的概率为 P(|x-μ|>3δ) <= 0.003 ,这属于极小概率事件,在默认情况下我们可以认定,距离超过平均值3δ的样本是不存在的。 因此,当样本距离平均值大于3δ,则认定该样本为异常值。

3. 箱线图判断异常值

在这里插入图片描述

超出箱线图上下四分位数的数值点视为异常值。

4. 回归线附近判断

在这里插入图片描述

数据整体围绕在回归线周围,那偏离回归线的可能较大概率是异常值。

5.库克距离判断异常值

在这里插入图片描述
通过库克距离得出数据记录中的那些数值是异常值。

  • 1
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 可以使用以下代码来识别处理异常值: #include <stdio.h> #include <stdlib.h> void handle_exception(int value) { if (value < 0 || value > 100) { printf("Error: Invalid value %d\n", value); exit(1); } else { printf("Value %d is valid\n", value); } } int main() { int value = 110; handle_exception(value); return 0; } 这个函数可以检查一个值是否在0到100之间,如果不是,就会输出一个错误信息并退出程序。如果值在范围内,就会输出一个确认信息。 ### 回答2: C语言编写异常值识别处理函数可以通过以下方式实现: 首先,定义一个函数来检测异常值,函数可以接收一个数组作为参数,并返回一个布尔值来表示该数组是否存在异常值。函数内部可以使用循环遍历数组中的每个元素,通过一定的条件判断是否满足异常值的条件。例如,可以检查数组中的元素是否超出了某个特定范围,或者是否满足某种模式。如果存在异常值,则返回true,否则返回false。 其次,可以定义一个处理异常值的函数,该函数可以接收一个数组作为参数,并对异常值进行处理处理方式可以根据实际需求而定,例如可以将异常值替换为指定的默认值,或者将其忽略掉。函数内部也可以使用循环遍历数组中的每个元素,并根据异常值的条件进行相应的处理操作。 最后,可以在主函数中调用这两个函数来完成异常值识别处理工作。首先调用检测异常值的函数,如果返回true,则调用处理异常值的函数进行处理。否则,继续执行其他的程序逻辑。 需要注意的是,异常值的定义与处理方式应根据具体的应用场景进行确定。在实际编写代码时,还需要考虑异常值检测与处理函数的输入参数、返回值以及异常值的定义条件等方面的设计。 ### 回答3: 在C语言中,异常值识别处理可以通过编写特定的函数来实现。以下是一个简单的函数示例: ```c #include<stdio.h> // 异常值识别处理函数 void handleException(int value) { if(value < 0) { printf("发现负数异常值:%d\n", value); // 处理负数异常值的逻辑 } else if (value > 100) { printf("发现超过100的异常值:%d\n", value); // 处理超过100的异常值的逻辑 } else { printf("正常值:%d\n", value); // 处理正常值的逻辑 } } // 主函数 int main() { int num = -10; handleException(num); num = 200; handleException(num); num = 50; handleException(num); return 0; } ``` 在上述代码中,我们定义了一个名为`handleException`的函数,它的参数`value`代表需要进行异常值处理的值。函数内部通过一系列的条件判断,对不同的异常情况进行处理。当`value`小于0时,我们输出"发现负数异常值:"并打印具体的异常值;当`value`大于100时,我们相应地输出"发现超过100的异常值:"并打印具体的异常值;其他情况被视为正常值,并输出"正常值:"并打印具体的值。 在`main`函数中,我们分别测试了一个负数异常值(-10)、一个超过100的异常值(200)以及一个正常值(50),通过调用`handleException`函数来进行异常值识别处理。 需要注意的是,这只是一个简单示例,实际应用中的异常值识别处理函数会更加复杂,具体逻辑需要根据实际需求进行设计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值