3σ(西格玛)准则又称为拉依达准则,它是先假设一组检测数据只含有随机误差,对其进行计算处理得到标准偏差,按一定概率确定一个区间,认为凡超过这个区间的误差,就不属于随机误差而是粗大误差,含有该误差的数据应予以剔除。
3σ准则是建立在正态分布的等精度重复测量基础上而造成奇异数据的干扰或噪声难以满足正态分布如果一组测量数据中某个测量值的残余误差的绝对值
νi>3σ,则该测量值为坏值,应剔除通常把等于 ±3σ的误差作为极限误差,对于正态分布的随机误差,落在 ±3σ以外的概率只有
027%,它在有限次测量中发生的可能性很小,故存在3σ准则3σ准则是最常用也是最简单的粗大误差判别准则,它一般应用于测量次数充分多( n
≥30)或当 n>10做粗略判别时的情况
正态分布3σ原则
数值分布在(μ—σ,μ+σ)中的概率为06526
数值分布在(μ—2σ,μ+2σ)中的概率为09544
数值分布在(μ—3σ,μ+3σ)中的概率为09974
可以认为,Y 的取值几乎全部集中在(μ-3σ,μ+3σ)区间内,超出这个范围的可能性仅占不到03%
但是:样本量足够大的,可以用均值代替数学期望(其他实验中看到的)
产生的离群点集。离群点是指一个时间序列中,远离序列的一般水平的极端大值和极端小值,基于聚类的离群点检测缺点为是产生的离群点集和它们的得分非常依赖所用的簇的个数和数据中离群点的存在性。1 噪声数据处理噪声时一个测量变量中的随机错误或偏差,包括错误值或偏离期望的孤立点值,在R中可以调用outliers软件包中的outlier()函数寻找噪声点,该函数通过寻找数据集中于其他观测值及均值擦话剧很大的点作为异常值,函数的格式为:
其中x表示一个数据,通常是一个向量,如果x是一个数据框或矩阵,则将逐列计算,opposit为T或F,若为T,给出相反值(如果最大值于均值差异最大,则给出最小值),logical为T或F,若为T,则给出逻辑值,把可能出现噪声的位置用TRUE表示。
installpackages("outliers")
library(outliers)
setseed(1234)
y<-rnorm(100) #随机生成100个标准正太随机数
outlier(y) #找出其中利群最远的值
outlier(y,opposite = T) #找出最远离群值相反的值
dotchart(y) #绘制点图
dim(y)<-c(20,5) #将y中的数据重新划分呈20行5列
outlier(y) #求矩阵中每列的离群值
outlier(y,opposite = T) #求矩阵中每列的离群值的相反值
setseed(1234)
y=rnorm(10) #随机生成10个标准正态随机数
outlier(y,logical = T) #返回相应逻辑值,离群点用TRUE标记
plot(y) #绘制散点图
离群点话还可以通过聚类的方法进行检测,落在“簇”集合之外的值被视为离群点。
在进行噪声见检查后, *** 作实际中常用分箱、回归、计算检查和人工检查结合等方法光滑数据,去掉数据中的噪声。
分箱方法是通过对数据进行排序,利用数据“近邻”来光滑有序数据值的一种局部光滑方法。在分箱方法中,可以使用箱均值、箱中位数或箱边界等进行光滑。箱均值光滑、箱中位数光滑分别为对于每个“箱”,使用其均值或中位数来代替箱中的值;而箱边界光滑则是指将给定箱中的最大值和最小值被视为箱边界,箱中每一个值都被替换为最近边界。一般而言,宽度越大,光滑效果越明显。箱可以是等宽的,即每个箱的区间范围是常量。
下面以等宽均值光滑方法为例:
setseed(1234)
x<-rnorm(12)
x<-sort(x) #对x排序
dim(x)<-c(3,4) #将数据形式转换成3行4列的矩阵,每行代表一个箱
x[1,]<-apply(x,1,mean)[1] #用第1行的均值代替第1行中的数据
x[2,]<-apply(x,1,mean)[2] #用第1行的均值代替第1行中的数据
x[3,]<-apply(x,1,mean)[3] #用第1行的均值代替第1行中的数据
#apply()函数是通过对数组或矩阵的边际应用一个函数而获得的数值列表。x是一个向量或数组,MARGIN取值1表示行,2表示列。
x
回归是指通过一个函数拟合来对数据进行光滑处理。线性回归涉及找出拟合两个变量的“最佳”直线,使得一个属性可以用来预测另一个;多元线性回归是线性回归的扩充,其中涉及的属性多于两个,并且数据拟合到一个多维曲面。
2 数据不一致的处理
当对数据进行批量 *** 作时,可以通过对函数返回值进行约束,根据是否提示错误判断、是否存在数据不一致问题,如vapply函数。
vapply函数的作用是对一个列表或向量进行指定的函数 *** 作,其常用格式如下:
其中X是作为输入变量的列表或向量, FUN是指定函数, FUNVALUE是函数要求的返回值,当USENAMES赋值为TRUE且X是字符型时,若返回值没有变量名则用X作为变量名。
x<-list(a=1:10,beta=exp(-3:3),logic=c(T,F,F,T)) #生成一个列表
x
probs<-c(1:3/4) #设置返回3个数
rtvalue<-c(0,0,0) #设置返回值为3个数字
vapply(x,quantile,FUNVALUE = rtvalue,probs=probs)
probs<-c(1:4/4) #设置返回4个数
rtvalue<-c(0,0,0,"") #设置返回3个数和1个字符串
vapply(x,quantile,FUNVALUE = rtvalue,probs=probs)
由于要求返回值的种类必须是'character',但 FUN(X[[1]I)结果的种类却是'double',导致产生错误提示。
因此可以根据vapply函数的这一功能,使用FUNVALUE参数对数据进行批量检测。
异常值、离群值和极值的联系和区别在于,离群值处理,因为过大或过小的数据可能会影响到分析结果,尤其是在做回归的时候,我们需要对那些离群值进行处理。
实际上离群值和极值是有区别的,因为极值不代表异常,但实际处理中这两个所用方法差不多,所以这里也不强行区分了。
异常值:异常值outlier:一组测定值中与平均值的偏差超过两倍标准差的测定值。
杠杆点:因此残差的方差与杠杆点有关
离群点:是指一个时间序列中,远离序列的一般水平的极端大值和极端小值。因此,也称之为歧异值,有时也称其为野值。离群点是由于系统受外部干扰而造成的。
但是,形成离群点的系统外部干扰是多种多样的。首先可能是采样中的误差,如记录的偏误,工作人员出现笔误,计算错误等,都有可能产生极端大值或者极端小值。其次可能是被研究现象本身由于受各种偶然非正常的因素影响而引起的。
高杠杆点,一个有高杠杆率的观测值未必是一个有影响的观测值,它可能对回归直线的斜率没有什么影响。
影响点:强影响点:即对模型参数估计值影响有些比例失衡的点。例如,若移除模型的一个观测点时,模型会发生巨大的改变,那么你就需要检测一下数据中是否存在强影响点了。
某些离群点既是异常点也是杠杆点。将离群点和强影响点统称为例外点。异常点是指因变量值远离其平均值所对应的数据点,或者说该数据点在轴上的投影明显远离其他数据点在轴上的投影,其中该因变量值称为异常值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)