收藏 分销(赏)

用格拉布斯准则判断异常数据教学内容.doc

上传人:天**** 文档编号:3864567 上传时间:2024-07-22 格式:DOC 页数:5 大小:39.04KB 下载积分:6 金币
下载 相关 举报
用格拉布斯准则判断异常数据教学内容.doc_第1页
第1页 / 共5页
用格拉布斯准则判断异常数据教学内容.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
用格拉布斯准则判断异常数据 精品资料 用格拉布斯准则判断异常数据 一、实验目的 1.通过实验加深对格拉布斯准则的理解。 2.掌握实验中异常数据的处理方法。 二、实验要求 用C语言或其它高级语言编写一程序,输入一组测量数据(9~15个,程序可设定),根据格拉布斯准则判断有无异常数据。如有,则剔除异常数据并重新计算,直到无异常数据为止。具体要求如下: 1. 数据个数可输入; 2. 格拉布斯系数g以表的形式存于数组中; 3. 显示均值、标准偏差等中间结果、被剔除的异常数据、显示无异常数据的测量数据等。 三、实验原理 在无系统误差的情况下,测量中大误差出现的概率是很小的。在正态分布下,误差绝对值超过2.57的概率仅为1%,误差绝对值超过3的概率仅为0.27%≈1/370。对于误差绝对值较大的测量数据,就值得怀疑,可以列为可疑数据。可疑数据对测量值的平均值及实验标准偏差都有较大的影响,造成测量结果的不正确,因此在这种情况下要分清可疑数据是由于测量仪器、测量方法或人为错误等因素造成的异常数据,还是由于正常的大误差出现的可能性。首先,要对测时过程进行分析,是否有外界干扰,如电力网电压的突然跳动,是否有人为错误,如小数点读错等。其次,可以在等精度条件下增加测量次数,以减少个别离散数据对最终统计估值的影响。 在不明原因的情况下,就应该根据统计学的方法来判别可疑数据是否是粗差。这种方法的基本思想是:给定一置信概率,确定相应的置信区间,凡超过置信区间的误差就认为是粗差,并予以剔除。用于粗差剔除的常见方法有莱特检验方法和格拉布斯检验方法。 1. 莱特检验方法 莱特检验法是一种正态分布情况下判别异常值的方法。判别方法如下: 假设在一列等精度测量结果中,第i项测量值xi所对应的残差vi的绝对值,则该误差为粗差,所对应的测量值xi为异常数值,应剔除不用。 此处,残差,标准偏差估计(贝塞尔公式),均值。 本检验方法简单,使用方便,当测量次数n较大时,是比较好的方法。一般适用于n>10的情况,n<10时,莱特检验法失去判别能力。 2. 格拉布斯检验法 格拉布斯检验法是在未知总体标准偏差的情况下,对正态样本或接近正态样本异常值进行判别的一种方法,是一种从理论上就很严密,概率意义明确,以经实验证明效果较好的判据。具体方法如下:对一系列重复测量中的最大或最小数据,用格拉布斯检验法检验,若残差,则判断此值为异常数据,应予以剔除。g值按重复测量次数及置信概率由表2-1给出。 表2-1 格拉布斯检验法g值 1-pc  n 3 4 5 6 7 8 9 10 11 12 5% 1.15 1.46 1.67 1.82 1.94 2.03 2.11 2.18 2.23 2.29 1% 1.15 1.49 1.75 1.94 2.10 2.22 2.32 2.41 2.48 2.55 1-pc  n 13 14 15 16 17 18 19 20 5% 2.33 2.37 2.41 2.44 2.47 2.50 2.53 2.56 1% 2.61 2.66 2.70 2.74 2.78 2.82 2.85 2.85 四、可供选择的仪器与设备 1. 微机 一台 2. C语言集成开发环境或其它高级语言开发环境 五、实验预习要求 熟悉有关异常数据处理的的基本知识,掌握格拉布斯检验法检验异常数据的基本方法。 六、实验报告要求 1. 简述实验目的、原理、方法、步骤。 2. 列出全部实验数据,记录实验结果(计算机屏幕显示内容)。 3. 画出程序流程图。 七、思考题 1. 本实验中,为什么n<10时,莱特检验法失去判别能力?而格拉布斯检验法却可以? 实验程序: # include<stdio.h> # include<math.h> void main() { int i,n,j=1; float a[200],b[200],v[200],v.a[200],aver,suma,sumb,c,d,daver,n.a,; printf(“enter array a:\n”); for(i=1;i<=n;i++) scanf(“%f,%d”,&a[i],n); printf(“\n”); suma=a[1]; for(i=2;i<=n;i++) { suma=suma+a[i]; aver=suma/n; } printf(“average is %f\n”,aver); for(i=1;i<=n;i++) { b[i]=a[i]*a[i]; sumb=sumb+b[i]; } c=sumb/(n-1); d=float sqrt (float c); n.a=float sqrt(float d); daver=d/n.a; daver=daver*3; for(i=1;i<=n;i++) { v[i]=a[i]-aver; v.a[i]=float fabs(fabs v[i]); if(v.a[i]>daver) printf(“%f”,&a[i]); else c[j]=&a[i]; j++; printf() printf ( “%f”,&c[j]); } } 仅供学习与交流,如有侵权请联系网站删除 谢谢5
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服