用格拉布斯准则判断异常数据.doc

用格拉布斯准则判断异常数据.doc

ID:51943405

大小:37.50 KB

页数:4页

时间:2020-03-20

用格拉布斯准则判断异常数据.doc_第1页
用格拉布斯准则判断异常数据.doc_第2页
用格拉布斯准则判断异常数据.doc_第3页
用格拉布斯准则判断异常数据.doc_第4页
资源描述:

《用格拉布斯准则判断异常数据.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、用格拉布斯准则判断异常数据一、实验目的1.通过实验加深对格拉布斯准则的理解。2.掌握实验中异常数据的处理方法。二、实验要求用C语言或其它高级语言编写一程序,输入一组测量数据(9~15个,程序可设定),根据格拉布斯准则判断有无异常数据。如有,则剔除异常数据并重新计算,直到无异常数据为止。具体要求如下:1.数据个数可输入;2.格拉布斯系数g以表的形式存于数组中;3.显示均值、标准偏差等中间结果、被剔除的异常数据、显示无异常数据的测量数据等。三、实验原理在无系统误差的情况下,测量中大误差出现的概率是很小的。

2、在正态分布下,误差绝对值超过2.57的概率仅为1%,误差绝对值超过3的概率仅为0.27%≈1/370。对于误差绝对值较大的测量数据,就值得怀疑,可以列为可疑数据。可疑数据对测量值的平均值及实验标准偏差都有较大的影响,造成测量结果的不正确,因此在这种情况下要分清可疑数据是由于测量仪器、测量方法或人为错误等因素造成的异常数据,还是由于正常的大误差出现的可能性。首先,要对测时过程进行分析,是否有外界干扰,如电力网电压的突然跳动,是否有人为错误,如小数点读错等。其次,可以在等精度条件下增加测量次数,以减少个别

3、离散数据对最终统计估值的影响。在不明原因的情况下,就应该根据统计学的方法来判别可疑数据是否是粗差。这种方法的基本思想是:给定一置信概率,确定相应的置信区间,凡超过置信区间的误差就认为是粗差,并予以剔除。用于粗差剔除的常见方法有莱特检验方法和格拉布斯检验方法。1.莱特检验方法莱特检验法是一种正态分布情况下判别异常值的方法。判别方法如下:假设在一列等精度测量结果中,第i项测量值xi所对应的残差vi的绝对值,则该误差为粗差,所对应的测量值xi为异常数值,应剔除不用。此处,残差,标准偏差估计(贝塞尔公式),均

4、值。本检验方法简单,使用方便,当测量次数n较大时,是比较好的方法。一般适用于n>10的情况,n<10时,莱特检验法失去判别能力。2.格拉布斯检验法格拉布斯检验法是在未知总体标准偏差的情况下,对正态样本或接近正态样本异常值进行判别的一种方法,是一种从理论上就很严密,概率意义明确,以经实验证明效果较好的判据。具体方法如下:对一系列重复测量中的最大或最小数据,用格拉布斯检验法检验,若残差,则判断此值为异常数据,应予以剔除。g值按重复测量次数及置信概率由表2-1给出。表2-1格拉布斯检验法g值1-pc n34

5、567891011125%1.151.461.671.821.942.032.112.182.232.291%1.151.491.751.942.102.222.322.412.482.551-pc n13141516171819205%2.332.372.412.442.472.502.532.561%2.612.662.702.742.782.822.852.85四、可供选择的仪器与设备1.微机一台2.C语言集成开发环境或其它高级语言开发环境五、实验预习要求熟悉有关异常数据处理的的基本知识,掌握格

6、拉布斯检验法检验异常数据的基本方法。六、实验报告要求1.简述实验目的、原理、方法、步骤。1.列出全部实验数据,记录实验结果(计算机屏幕显示内容)。2.画出程序流程图。七、思考题1.本实验中,为什么n<10时,莱特检验法失去判别能力?而格拉布斯检验法却可以?实验程序:#include#includevoidmain(){inti,n,j=1;floata[200],b[200],v[200],v.a[200],aver,suma,sumb,c,d,daver,n.a,;

7、printf(“enterarraya:”);for(i=1;i<=n;i++)scanf(“%f,%d”,&a[i],n);printf(“”);suma=a[1];for(i=2;i<=n;i++){suma=suma+a[i];aver=suma/n;}printf(“averageis%f”,aver);for(i=1;i<=n;i++){b[i]=a[i]*a[i];sumb=sumb+b[i];}c=sumb/(n-1);d=floatsqrt(floatc);n.a=floa

8、tsqrt(floatd);daver=d/n.a;daver=daver*3;for(i=1;i<=n;i++){v[i]=a[i]-aver;v.a[i]=floatfabs(fabsv[i]);if(v.a[i]>daver)printf(“%f”,&a[i]);elsec[j]=&a[i];j++;printf()printf(“%f”,&c[j]);}}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。