数学建模缺失数据补充及异常数据修正

  • 格式:doc
  • 大小:157.50 KB
  • 文档页数:10

题目:数据的预处理问题

摘要

数据处理贯穿于社会生产和社会生活的各个领域。数据处理技术的发展及其应用的广度和深度,极大地影响着人类社会发展的进程。数据补充,异常数据的鉴别及修正,在各个领域也起到了重要作用。

对于第一问,我们采用了多元线性回归的方法对缺失数据进行补充,我们将(见附表一)中的数据导入matlab。首先作出散点图,设定y(X59287)与x1(X54511)、x2(X57494)的关系为二元线性回归模型,即y=b0+b1x1+b2x2。之后作多元回归,求出系数b0=,b1=,b2=,所以多元线性回归多项式为:Y=+*x1+*x2。再作出残差分析图验证拟合效果,残差较小,说明回归多项式与源数据吻合得较好。若x1=,x2=时,y的数据缺失,则将x1,x2带入回归多项式,算出缺失值y=。类似地,若x1=,x2=时,y的数据缺失,则将x1,x2带入回归多项式,算出缺失值y=,即可补充缺失数据。

对于第二问,我们使用了异常值检验中标准差未知的t检验法。将除可疑测定值dx以外的其余测定值当做一个总体,并假设该总体服从正态分布。由这些测定值计算平均值x与标准差s,而将可疑值dx当做一个样本容量为1的特殊总体。如果dx与其余测定值同属于一个总体,则它与其余测定值之间不应有显着性差异。检测统计量为:xxkd,假设可由标准差s替代来进行检验,则检测统计量可视为:sxxkd。若统计量值大于相应置信度下的t检验法的临界值T(该临界值通过查表法得出),则将dx判为异常值。由此算法即可鉴别出相应的异常数据。

对于第三问,对于问题三,我们采用了分段线性插值,最近方法插值,三次样条函数插值以及三次多项式方法插值法来修正数据异常。同时也需利用外插法修正最后一个数据的异常。通过各种插值方法的比较,发现三次样条方法较为准确,并较好的对异常数据进行修正。

关键词:多元线性回归,t检验法,分段线性插值,最近方法插值,三次样条插值,三次多项式插值

C38 姓名 学号 专业

队长 康伟振 应数长望

队员一 卜维新 网络工程

队员二 李兰馨 应用气象 一、 问题重述

背景

在数学建模过程中总会遇到大数据问题。一般而言,在提供的数据中,不可避免会出现较多的检测异常值,怎样判断和处理这些异常值,对于提高检测结果的准确性意义重大。

需要解决的问题

(1)给出缺失数据的补充算法;

(2)给出异常数据的鉴别算法;

(3)给出异常数据的修正算法。

二、 模型分析

问题(1)的分析

属性值数据缺失经常发生甚至不可避免。

(一) 较为简单的数据缺失

(1) 平均值填充

如果空值为数值型的,就根据该属性在其他所有对象取值的平均值来填充缺失的属性值;如果空值为非数值型的,则根据众数原理,用该属性在其他所有对象的取值次数最多的值(出现频率最高的值)来补齐缺失的属性值。

(2) 热卡填充(就近补齐)

对于包含空值的数据集,热卡填充法在完整数据中找到一个与其最相似的数据,用此相似对象的值进行填充。

(3) 删除元组

将存在遗漏信息属性值的元组删除。

(二)较为复杂的数据缺失

(1)多元线性回归 当有缺失的一组数据存在多个自变量时,可以考虑使用多元线性回归模型。将所有变量包括因变量都先转化为标准分,再进行线性回归,此时得到的回归系数就能反映对应自变量的重要程度。

问题(2)的分析

属性值异常数据鉴别很重要。

我们可以采用异常值t检验的方法比较前后两组数据的平均值,与临界值相比较即可辨别数据异常并剔除异常数据。

将除可疑测定值dx以外的其余测定值当做一个总体,并假设该总体服从正态分布。由这些测定值计算平均值x与标准差s,而将可疑值dx当做一个样本容量为1的特殊总体。如果dx与其余测定值同属于一个总体,则它与其余测定值之间不应有显着性差异。检测统计量为:xxkd,假设可由标准差s替代来进行检验,则检测统计量可视为:sxxkd。若统计量值大于相应置信度下的t检验法的临界值T(该临界值通过查表法得出),则将dx判为异常值。

问题(3)的分析

对于数据修正,我们采用各种插值算法进行修正,这是一种行之有效的方法。

(1)分段线性插值

将每两个相邻的节点用直线连起来,如此形成的一条折线就是分段线性插值函数,记作xIn,它满足iinyxI,且xIn在每个小区间1,iixx上是线性函数xInni,,1,0。

xIn可以表示为

xIn有良好的收敛性,即对于bax,有,

用 xIn计算x 点的插值时,只用到x 左右的两个节点,计算量与节点个数n 无关。但n 越大,分段越多,插值误差越小。实际上用函数表作插值计算时,分段线性插值就足够了,如数学、物理中用的特殊函数表,数理统计中用的概率分布表等。

(2) 三次多项式算法插值 当用已知的n+1个数据点求出插值多项式后,又获得了新的数据点,要用它连同原有的n+1个数据点一起求出插值多项式,从原已计算出的n次插值多项式计算出新的n+1次插值多项式很困难,而此算法可以克服这一缺点。

(3)三次样条函数插值[4]

数学上将具有一定光滑性的分段多项式称为样条函数。三次样条函数为:对于ba,上的分划:nxxxa10=b,则,

利用样条函数进行插值,即取插值函数为样条函数,称为样条插值。

三、 模型假设

1.假设只有因变量存在数据缺失,而自变量不存在缺失。

2.利用t检验法时,将除可疑测定值dx以外的其余测定值当做一个总体,并假设该总体服从正态分布。

四、

问题(1)的分析与求解

问题分析

本题需要对缺失数据进行补充,情况可分为数据集中单一元素缺失及某一元组缺失两种情况。因此,对数据处理采用同上模型分析的处理方法。

问题处理

我们将(见附表一)中的数据导入matlab(程序见附录一)。首先作出散点图。

设定y(X59287)与x1(X54511)、x2(X57494)的关系为二元线性回归模型,即y=b0+b1x1+b2x2。之后作多元回归,求出系数b0=,b1=,b2=,所以多元线性回归多项式为:Y=+*x1+*x2。由matlab编程所得结果图如下4-2所示。

图4-2

再作出残差分析图验证拟合效果,残差较小,说明回归多项式与源数据吻合得较好。若x1=,x2=时,y的数据缺失,则将x1,x2带入回归多项式,算出缺失值y=。类似地,若x1=,x2=时,y的数据缺失,则将x1,x2带入回归多项式,算出缺失值y=,即可补充缺失数据。

五、 问题(2)的分析与求解 问题分析

本题需要对给定缺失数据进行鉴别,可以采用的方法为t检验检测法。T检验用t分布理论来推论差异发生的概率,从而比较两个平均数的差异是否显着。

问题处理

(一)随机产生数据

由R系统随机产生数据对其进行缺失数据鉴别,代码如附录四所示,结果图如下5-1,5-2,5-3所示。

图5-1

图5-2

图5-3

(二)给定相应数据

对于问题二,在数据完整但出现异常的情况下,可以考虑使用异常值检验中标准差未知的t检验法。将除可疑测定值dx以外的其余测定值当做一个总体,并假设该总体服从正态分布。由这些测定值计算平均值x与标准差s,而将可疑值dx当做一个样本容量为1的特殊总体。如果dx与其余测定值同属于一个总体,则它与其余测定值之间不应有显着性差异。检测统计量为:xxkd,假设可由标准差s替代来进行检验,则检测统计量可视为:sxxkd。若统计量值大于相应置信度下的t检验法的临界值T(该临界值通过查表法得出),则将dx判为异常值。具体数据见附表二,具体程序详见附录二,结果图如下5-4所示。

图5-4

六、 问题(3)的分析与求解

问题分析

对于问题三,我们采用了分段线性插值,最近方法插值,三次样条函数插值以及三次多项式方法插值法来修正数据异常。同时也需利用外插法修正最后一个数据的异常。详见对问题三的处理原理。

具体代码见附录三。

附录一 多元线性回归matlab程序

clear; data1=xlsread('C:\Users\Lenovo\Desktop\');

%做出散点图

figure(1)

scatter3(data1(:,4),data1(:,5),data1(:,6),'r');

x=[ones(262,1),data1(:,4),data1(:,5)];

y=data1(:,6);

[b,bint,r,rint,stats]=regress(y,x);

xlabel('X54511(x1)');

ylabel('X57494(x2)');

zlabel('X59287(y)');

text,,,'回归方程式为:y=++','color','b');

title('x1,x2,y的关系:','color','m');

%做残差分析图

figure(2)

reoplot(r,rint);

xlabel('数据');ylabel('残差');

title('残差绘制图');

%补缺失数据

x1=[,];

y1=x1*b;

x2=[,];

y2=x2*b;

附录二 t检验spss代码

GET DATA

/TYPE=XLS /FILE='C:\Users\bwx\Desktop\'

/SHEET=name 'Sheet1'

/CELLRANGE=full

/READNAMES=on

/ASSUMEDSTRWIDTH=32767.

EXECUTE.

DATASET NAME 数据集2 WINDOW=FRONT.

T-TEST

/TESTVAL=0

/MISSING=ANALYSIS

/VARIABLES=y

/CRITERIA=CI(.95).

附录三 插值修正数据matlab代码

clear

>> T=0:5:65

T =

0 5 10 15 20 25 30 35 40 45 50

55 60 65

>> X=2:5:57

X =

2 7 12 17 22 27 32 37 42 47 52

57

>> F=[,,,,,,,,,,,,,];

>> F1=interp1(T,F,X)

F1 =

+003 *