一维坐标中的离群点检测
一、箱线法
data0=xlsread('F:\数据一.xls');
[m,n]=size(data0);
w1=round(m/4); %第一四分位地位,
%m1=m/2%中位数地位,
w3=round(3*m/4);%第三四分位地位
%变量1的异样值解决
bl1=data0(:,1); %在这里定义检索的范畴
[a1,b1]=sort(bl1)%[a,b]=sort(x);是从小到大排列,a是排序后后果,b是a后果中各元素的原始地位。
q11=a1(w1,1); %第一四分位数
q13=a1(w3,1); %第三四分位数
qr1=q13-q11; %四分位距
sx1=q13+1.5*qr1; %下限
xx1=q11-1.5*qr1; %上限
ycz1=[];%异样值矩阵
s1=1;
%异样值被定义为小于Q1-1.5IQR或大于Q3+1.5IQR的值。尽管这种规范有点任意性,但它来源于教训判断,教训表明它在解决须要特地留神的数据方面体现不错。
for i=1:m
if bl1(i,1)>sx1||bl1(i,1)<xx1
ycz1(s1,1)=bl1(i,1);
ycz1(s1,2)=i;
s1=s1+1;
end
end
ycz1 %输入离群点
二、3西格玛办法(拉伊达准则)
data0=xlsread('F:\数据一.xls');
%变量1的异样值解决
bl1=data0(:,1); %在这里定义检索的范畴
[m,n]=size(bl1);
ave=mean(bl1)%均值
sigma=sqrt((bl1'-ave)*(bl1-ave)/m)
jicha=max(bl1)-min(bl1);%极差
%要求数据遵从正态分布,认为大于μ+3σ或小于μ—3σ的试验数据值作为异样值,其中μ为数据均值,σ为数据标准差
sx=ave+3*sigma
xx=ave-3*sigma
ycz=[];
zcz=[];
s=1;
s1=1;
for i=1:m
if bl1(i,1)<xx||bl1(i,1)>sx
ycz(s,1)=bl1(i,1);
ycz(s,2)=i;
s=s+1;
end
end
ycz %输入离群点
发表回复