目录
2.如果对个体精度要求不大的数据,可以考虑使用均值和众数进行插补。
一、缺失值的处理
1.如果缺失值比例特别大的话,可以直接把该项指标删除。
clc, clear
a=readmatrix('F:\数学建模\数学建模算法与应用(第3版)源程序\程序及数据\07第7章 数理统计\data7_18.txt');
a
A = ismissing(a) %显示1为缺失值
[m,n]=size(A)
sumj=sum(A)
j=sumj./m %缺失值所占的比列
通过缺失值的比例来判断
2.如果对个体精度要求不大的数据,可以考虑使用均值和众数进行插补。
定量数据,比如一群人的年龄、身高等,可以考虑用均值插补
定性数据,比如一群人的性别,文化程度,可以考虑用众数插补
插补均值例子 [1500,1550,1610,NAN,NAN]
v=mean(a(1:3,4))
F = fillmissing(a(:,4),'constant',v)
结果:1.0e+03 *
1.5000
1.5500
1.6100
1.5533
1.5533
3.对指标数据有精准要求 ,可以考虑用三次样条插值
%spline用三次样条插值
x = [-4*pi:0.1:0, 0.1:0.2:4*pi];
A = sin(x);
A(A < 0.75 & A > 0.5) = NaN;
[F,TF] = fillmissing(A,'spline','SamplePoints',x)
plot(x,A,'.', x(TF),F(TF),'o')
xlabel('x');
ylabel('sin(x)')
legend('Original Data','Filled Missing Data')
二、异常值处理
1、3-σ准则
步骤:
1. 要求数据服从正态分布
2.计算μ为数据均值,σ为数据标准差
3.判断每个数据是否在(μ—3σ,μ+3σ)内,不在则为异常值
2、箱线图法
在箱线图中,第一四分位数Q1:又称“下四分位数”,等于该样本中所有数值由小到大排列后第25%的数字。中位数F:又称第二四分位数(Q2),又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字。第三四分位数(Q3):又称“上四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。例如:x = [12 15 17 19 20 23 25 28 30 33 34 35 36 37];
1、下四分位数Q1
Q1所在的位置=(14+1)/4=3.75,
Q1=0.25×第三项+0.75×第四项=0.25×17+0.75×19=18.5;
2、中位数(第二个四分位数)Q2
Q2所在的位置=2(14+1)/4=7.5,
Q2=0.5×第七项+0.5×第八项=0.5×25+0.5×28=26.5
3、上四分位数Q3
Q3所在的位置=3(14+1)/4=11.25,
Q3=0.75×第十一项+0.25×第十二项=0.75×34+0.25×35=34.25。
4.四分位距IQR=Q3-Q1=34.25-18.5=15.75
5、上限
上限是非异常范围内的最大值。
上限=Q3+1.5IQR=34.25+1.5*15.75= 57.8750
6、下限
下限是非异常范围内的最小值。
下限=Q1-1.5*IQR=18.5-1.5*15.75=-5.1250
7.异常值被定义为小于Q1-1.5*IQR或大于Q3+1.5*IQR的值,对其进行剔除。
x = [12 15 17 19 20 23 25 28 30 33 34 35 36 37];
boxplot(x)
3.异常值处理
1.直接删除
2.设为缺失值,然后通过缺失值来处理