grubbs检测c语言,Grubbs算法检测离群值

▲概述:一组测量数据中,如果个别数据偏离平均值很远,那么这个(这些)数据称作“可疑值”。如果用统计方法—例如格拉布斯(Grubbs)法判断,能将“可疑值”从此组测量数据中剔除而不参与平均值的计算,那么该“可疑值”就称作“异常值(粗大误差)”。本文就是介绍如何用格拉布斯法判断“可疑值”是否为“异常值”。

▲测量数据:例如测量10次(n=10),获得以下数据:8.2、5.4、14.0、7.3、4.7、9.0、6.5、10.1、7.7、6.0。

▲排列数据:将上述测量数据按从小到大的顺序排列,得到4.7、5.4、6.0、6.5、7.3、7.7、8.2、9.0、10.1、14.0。可以肯定,可疑值不是最小值就是最大值。

▲计算平均值x-和标准差s:x-=7.89;标准差s=2.704。计算时,必须将所有10个数据全部包含在内。

▲计算偏离值:平均值与最小值之差为7.89-4.7=3.19;最大值与平均值之差为14.0-7.89=6.11。

▲确定一个可疑值:比较起来,最大值与平均值之差6.11大于平均值与最小值之差3.19,因此认为最大值14.0是可疑值。

▲计算Gi值:Gi=(xi-x-)/s;其中i是可疑值的排列序号

——10号;因此G10=( x10-x-)/s=(14.0-7.89)/2.704=2.260。由于x10-x-是残差,而s是标准差,因而可认为G10是残差与标准差的比值。下面要把计算值Gi与格拉布斯表给出的临界值GP(n)比较,如果计算的Gi值大于表中的临界值GP(n),则能判断该测量数据是异常值,可以剔除。但是要提醒,临界值GP(n)与两个参数有关:检出水平α (与置信概率P有关)和测量次数n (与自由度f有关)。

▲定检出水平α:如果要求严格,检出水平α可以定得小一些,例如定α=0.01,那么置信概率P=1-α=0.99;如果要求不严格,α可以定得大一些,例如定α=0.10,即P=0.90;通常定α=0.05,P=0.95。

▲查格拉布斯表获得临界值:根据选定的P值(此处为0.95)和测量次数n(此处为10),查格拉布斯表,横竖相交得临界值G95(10)=2.176。

▲比较计算值Gi和临界值G95(10):Gi=2.260,G95(10)=2.176,Gi>G95(10)。

▲判断是否为异常值:因为Gi>G95(10),可以判断测量值14.0为异常值,将它从10个测量数据中剔除。

▲余下数据考虑:剩余的9个数据再按以上步骤计算,如果计算的Gi>G95(9),仍然是异常值,剔除;如果Gi<G95(9),不是异常值,则不剔除。本例余下的9个数据中没有异常值。

格拉布斯表——临界值GP(n)

P

n

0.95

0.99

P

n

0.95

0.99

3

1.135

1.155

17

2.475

2.785

4

1.463

1.492

18

2.504

2.821

5

1.672

1.749

19

2.532

2.854

6

1.822

1.944

20

2.557

2.884

7

1.938

2.097

21

2.580

2.912

8

2.032

2.231

22

2.603

2.939

9

2.110

2.323

23

2.624

2.963

10

2.176

2.410

24

2.644

2.987

11

2.234

2.485

25

2.663

3.009

12

2.285

2.550

30

2.745

3.103

13

2.331

2.607

35

2.811

3.178

14

2.371

2.659

40

2.866

3.240

15

2.409

2.705

45

2.914

3.292

16

2.443

2.747

50

2.956

3.336

对异常值及统计检验法的解释

■测量过程是对一个无限大总体的抽样:对固定条件下的一种测量,理论上可以无限次测量下去,可以得到无穷多的测量数据,这些测量数据构成一个容量为无限大的总体;或者换一个角度看,本来就存在一个包含无穷多测量数据的总体。实际的测量只不过是从该无限大总体中随机抽取一个容量为n(例如n=10)的样本。这种样本也可以有无数个,每个样本相当于总体所含测量数据的不同随机组合。样本中的正常值应当来自该总体。通常的目的是用样本的统计量来估计总体参量。总体一般假设为正态分布。

■异常值区分:样本中的正常值应当属于同一总体;而异常值有两种情况:第一种情况异常值不属于该总体,抽样抽错了,从另外一个总体抽出一个(一些)数据,其值与总体平均值相差较大;第二种情况异常值虽属于该总体,但可能是该总体固有随机变异性的极端表现,比如说超过3σ的数据,出现的概率很小。用统计判断方法就是将异常值找出来,舍去。

■犯错误1:将本来不属于该总体的、第一种情况的异常值判断出来舍去,不会犯错误;将本来属于该总体的、出现的概率小的、第二种情况的异常值判断出来舍去,就会犯错误。

■犯错误2:还有一种情况,不属于该总体但数值又和该总体平均值接近的数据被抽样抽出来,统计检验方法判断不出它是异常值,就会犯另外一种错误。

■异常值检验法:判断异常值的统计检验法有很多种,例如格拉布斯法、狄克逊法、偏度-峰度法、拉依达法、奈尔法等等。每种方法都有其适用范围和优缺点。

■格拉布斯法最佳:每种统计检验法都会犯犯错误1和错误2。但是有人做过统计,在所有方法中,格拉布斯法犯这两种错误的概率最小,所以推荐使用格拉布斯法。

■多种方法结合使用:为了减少犯错误的概率,可以将3种以上统计检验法结合使用,根据多数方法的判断结果,确定可疑值是否为异常值。

■异常值来源:测量仪器不正常,测量环境偏离正常值较大,计算机出错,看错,读错,抄错,算错,转移错误。

——

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499126.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

将十个数进行从大到小的顺序进行排列_如何进行商品ABC分类管理

​ ABC管理法是根据事物的经济、技术等方面的主要特征,运用数理统计方法,进行统计、排列和分析,抓住主要矛盾,分清重点与一般,从而有区别地采取管理方式的一种定量管理方法。又称主次分析法 、ABC分析法、分类管理法、…

c语言around用法,KET基础语法:介词among和around的用法及例句

孩子们开始学习KET考试后,标志着他们开始系统地学习语法,对孩子们来说是不小的挑战。复杂的语法时态、不同类型的介词、短语等,都要求他们掌握正确的复习方法,才能避免学习语法后,而不知道如何运用的误区。而学会错题整…

vue函数如何调用其他函数?_python函数调用的四种方式

第一种:参数按顺序从第一个参数往后排#标准调用运行结果:第二种:#关键字调用注意:关键调用从哪开始的,从哪以后都必须使用关键字调用除了‘*’收集参数。不能写成这样的:keyword_invoke(y1, 2),…

c语言酒店管理系统设计目的,C语言酒店管理系统设计.doc

《C程序设计》课程设计报告《C程序设计》课程设计报告班级 计科101班 学号 37 姓名 毛翔 得分一 目的加深对C/C语言知识的理解,扩大相关知识面,培养对这些知识的应用能力。通过一个实际问题的C/C语言源程序的编写和调试,提高综合运用C/C语言、…

android 基类封装用法,Android 基类封装之Fragment【原创】

现在的Android开发中,Activity和Fragment都是必不可少的,正如上篇博客所写,我们都会封装一个基类的Activity来做一些公共基础的操作。对于Fragment应用的越发广泛,在实际开发中,我们也应当封装一个基础的Fragment&…

fastjson 序列化 不包括转义字符_Java 反序列化工具 gadgetinspector 初窥 (上)

作者:Longofo知道创宇404实验室时间:2019年9月4日起因一开始是听Badcode师傅说的这个工具,在Black Hat 2018的一个议题提出来的。这是一个基于字节码静态分析的、利用已知技巧自动查找从source到sink的反序列化利用链工具。看了几遍作者在Bla…

linux gentoo安装,Gentoo安装教程——萌新向

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼手动配置内核激动人心的时刻到了,手动配置内核!先下载内核源代码,官方推荐使用gentoo-source,然后进入源代码目录,进行设置。详细的设置可以看金步国的文章。这里我只说说…

char类型怎么输入 c语言_C语言中的char

C语言中的char是用于声明单个字符的关键字。char关键字具有一些很奇怪的特点,但是想要了解这些奇怪的特点为什么会存在,我们就要先了解char关键字的原理。char关键字会在内存中找到一字节的空闲空间,并且在里面写入一个从0到255的整型&#x…

android webview网页显示不完整,【报Bug】webview页面内容显示不全

详细问题描述更新到2.6.0之后,进入webview页面,嵌入的html页面无法完全显示,部分内容被遮挡[内容]重现步骤[步骤]进入webview页面[结果]内容无法完全显示,部分内容被遮挡[期望]内容显示正常[如果语言难以表述清晰,拍一…

无法创建ole db取值函数。请查看列元数据是否有效_[C++ Primer plus 心得]3.处理数据...

本章内容包括:C变量的命名规则。C内置的整型----unsigned long、long、unsigned int、int、unsigned short、short、char、unsigned char、singed char 和boot。C11新增的整型:unsigned long long 和long long。表示各种整型的数字字面值(常量)使用const…

android+ios打印机,Android/iOS手机安装HP打印机的详细方法和操作步骤

如今人们越来越依赖手机,手机几乎成为了生活必需品,其功能越来越多,对其他电子设备的操控能力也越来越强,那么手机如何操控打印机呢?今天小编就跟大家分享一下手机是如何通过无线安装打印机的。备注:本文以Android系统…

微信 小程序 python 渲染_你用python写过那些好玩的微信小程序?

教你用Py来玩跳一跳小程序教程项目地址 2017 年 12 月 28 日下午,微信发布了 6.6.1 版本,加入了「小游戏」功能,并提供了官方 DEMO「跳一跳」。 这是一个 2.5D 插画风格的益智游戏,玩家可以通过按压屏幕时间的长短来控制这个「小人…

android log.d 参数,Android log 机制 - logd 总览

Android 早期版本使用的是一个 log 驱动,后来逐渐使用 logd 进程替代(具体哪个版本我就没有去探究了,至少在 Android 8.0 里,log 驱动已经被移除)。原有 log 驱动负责的功能,都由 logd 完成。此外,logd 还可以读取 Lin…

python的requests模块功能_【python】requests模块初探(一)

一、写在前面 Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的&…

麒麟980可以升级鸿蒙吗,这五部麒麟980手机确定能升鸿蒙OS,其中有你吗?

原标题:这五部麒麟980手机确定能升鸿蒙OS,其中有你吗?就在今年九月的华为开发者大会上,余承东“一不小心”吐露出EMUI 11明年能升级鸿蒙OS 2.0的事实,这让许多华为用户兴奋不已,但首先你的手机必须要先能升…

python没有指针如何实现链表_Java、Python中没有指针,怎么实现链表、图等数据结构?...

Java、Python中没有指针,怎么实现链表、图等数据结构? (2016-10-06 11:08:19) 分类: C 其实Java, python完全可以看成在语言层用语法糖隐藏了指针。JAVA中到处充满指针,只不过把C中的指针封装成了对象的引用了,引用就相…

android语言列表+波斯,Android 多语言入门及实战

右键res,选择 New Resource Directory ,选择 locale ,选择自己想要适配的语言类型设置应用内多语言Android 7.0以下/*** 设置多语言*/public void setConfiguration(LocaleList locales, Context context) {Configuration configuration context.getResources().ge…

python接入excel_通过Python导入Excel数据,实现自动化数据测试

一、安装openpyxl pip install openpyxl 二、获取Excel表格数据 以下是我的表格数据 #导入load_workbook工作表 from openpyxl import load_workbook #创建粘贴工作表数据的类 class ParseExcel(): #工作表路径及工作表的名字 def __init__(self,excelPath,sheetName): #加载表…

html长图转换成pdf,将长 html 导入拆分 PDF

我的情况是:单击按钮时,将 html 上的数据导入 PDF 文件。由于此 PDF 必须具有一些复杂的必需样式,因此我的第一步是使用 html2canvas.js 将此页面转换为图像,然后使用 jsPDF.js 将此图像导入 PDF当数据太大时,必须拆分…

python 魔法方法常用_python 常用的魔法方法

1. 构造方法 __new__(cls,[...) 对象实例化时第一个调用的方法,它只取下 cls 参数,并把其他参数传给 __init__ 。 __init__(self,[...]) 使用传入的参数来初始化实例,不能返回除了None的任何值。 __del__(self) 定义了当对象被垃圾回收时的行…