数学建模缺失数据补充及异常数据修正
更新时间:2024-06-01 09:42:01 阅读量: 综合文库 文档下载
- 数学建模缺失数据的补充推荐度:
- 相关推荐
题目:数据的预处理问题
摘要
数据处理贯穿于社会生产和社会生活的各个领域。数据处理技术的发展及其应用的广度和深度,极大地影响着人类社会发展的进程。数据补充,异常数据的鉴别及修正,在各个领域也起到了重要作用。 对于第一问,我们采用了多元线性回归的方法对缺失数据进行补充,我们将1960-2015.xls(见附表一)中的数据导入matlab。首先作出散点图,设定y(X59287)与x1(X54511)、x2(X57494)的关系为二元线性回归模型,即y=b0+b1x1+b2x2。之后作多元回归,求出系数b0=18.014,b1=0.051,b2=0.354,所以多元线性回归多项式为:Y=18.014+0.051*x1+0.354*x2。再作出残差分析图验证拟合效果,残差较小,说明回归多项式与源数据吻合得较好。若x1=30.4,x2=28.6时,y的数据缺失,则将x1,x2带入回归多项式,算出缺失值y=29.6888。类似地,若x1=40.6,x2=30.4时,y的数据缺失,则将x1,x2带入回归多项式,算出缺失值y=30.8462,即可补充缺失数据。 对于第二问,我们使用了异常值检验中标准差未知的t检验法。将除可疑测定值xd以外的其余测定值当做一个总体,并假设该总体服从正态分布。由这些测定值计算平均值x与标准差s,而将可疑值xd当做一个样本容量为1的特殊总体。如果xd与其余测定值同属于一个总体,则它与其余测定值之间不应有显著性差异。检测统计量为:k?xd?x?,假设可由标准差s替代?来进行检验,则检测统计量可视为:k?xd?xs。若统计量值大于相应置信度?下的t检验法的临界值T?(该临界值通过查表法得出),则将xd判为异常值。由此算法即可鉴别出相应的异常数据。 对于第三问,对于问题三,我们采用了分段线性插值,最近方法插值,三次样条函数插值以及三次多项式方法插值法来修正数据异常。同时也需利用外插法修正最后一个数据的异常。通过各种插值方法的比较,发现三次样条方法较为准确,并较好的对异常数据进行修正。 关键词:多元线性回归,t检验法,分段线性插值,最近方法插值,三次样条插值,三次多项式插值 C38 姓名 学号 专业 队长 康伟振 20141387032 应数长望 队员一 卜维新 20141346033 网络工程 队员二 李兰馨 20141302059 应用气象 一、 问题重述
1.1背景
在数学建模过程中总会遇到大数据问题。一般而言,在提供的数据中,不可避免会出现较多的检测异常值,怎样判断和处理这些异常值,对于提高检测结果的准确性意义重大。 1.2需要解决的问题
(1)给出缺失数据的补充算法; (2)给出异常数据的鉴别算法; (3)给出异常数据的修正算法。
二、 模型分析
2.1问题(1)的分析
属性值数据缺失经常发生甚至不可避免。 (一)较为简单的数据缺失
(1) 平均值填充
如果空值为数值型的,就根据该属性在其他所有对象取值的平均值来填充缺失的属性值;如果空值为非数值型的,则根据众数原理,用该属性在其他所有对象的取值次数最多的值(出现频率最高的值)来补齐缺失的属性值。
(2)热卡填充(就近补齐)
对于包含空值的数据集,热卡填充法在完整数据中找到一个与其最相似的数据,用此相似对象的值进行填充。
(3) 删除元组
将存在遗漏信息属性值的元组删除。
(二)较为复杂的数据缺失 (1)多元线性回归
当有缺失的一组数据存在多个自变量时,可以考虑使用多元线性回归模型。将所有变量包括因变量都先转化为标准分,再进行线性回归,此时得到的回归系数就能反映对应自变量的重要程度。
2.2问题(2)的分析
属性值异常数据鉴别很重要。
我们可以采用异常值t检验的方法比较前后两组数据的平均值,与临界值相比较即可辨别数据异常并剔除异常数据。 将除可疑测定值xd以外的其余测定值当做一个总体,并假设该总体服从正态分布。由这些测定值计算平均值x与标准差s,而将可疑值xd当做一个样本容量为1的特殊总体。如果xd与其余测定值同属于一个总体,则它与其余测定值之间不应有显著性差异。检测统计量为:k?xd?x?,假设可由标准差s替代?来进行检验,则检测统计量可视为:k?xd?xs。若统计量值大于相应置信度?下的t检验法的临界值T?(该临界值通过查表法得出),则将xd判为异常值。 2.3问题(3)的分析
对于数据修正,我们采用各种插值算法进行修正,这是一种行之有效的方法。 (1)分段线性插值
将每两个相邻的节点用直线连起来,如此形成的一条折线就是分段线性插值函数,记作In?x?,它满足In?xi??yi,且In?x?在每个小区间?xi,xi?1?上是线性函数In?x??i?0,1,???,n?。
In?x?可以表示为
In?x?有良好的收敛性,即对于x??a,b?有,
用 In?x?计算x 点的插值时,只用到x 左右的两个节点,计算量与节点个数n 无关。但n 越大,分段越多,插值误差越小。实际上用函数表作插值计算时,分段线性插值就足够了,如数学、物理中用的特殊函数表,数理统计中用的概率分布表等。
(2) 三次多项式算法插值
当用已知的n+1个数据点求出插值多项式后,又获得了新的数据点,要用它连同原有的n+1个数据点一起求出插值多项式,从原已计算出的n次插值多项式计算出新的n+1次插值多项式很困难,而此算法可以克服这一缺点。 (3)三次样条函数插值[4]
数学上将具有一定光滑性的分段多项式称为样条函数。三次样条函数为:对于?a,b?上的分划?:a?x0?x1?????xn=b,则,
利用样条函数进行插值,即取插值函数为样条函数,称为样条插值。
三、 模型假设
1.假设只有因变量存在数据缺失,而自变量不存在缺失。
2.利用t检验法时,将除可疑测定值xd以外的其余测定值当做一个总体,并假设该总体服从正态分布。
四、 问题(1)的分析与求解
4.1问题分析
本题需要对缺失数据进行补充,情况可分为数据集中单一元素缺失及某一元组缺失两种情况。因此,对数据处理采用同上模型分析2.1的处理方法。 4.2问题处理
我们将1960-2015.xls(见附表一)中的数据导入matlab(程序见附录一)。首先作出散点图。
设定y(X59287)与x1(X54511)、x2(X57494)的关系为二元线性回归模型,即y=b0+b1x1+b2x2。之后作多元回归,求出系数b0=18.014,b1=0.051,b2=0.354,所以多元线性回归多项式为:Y=18.014+0.051*x1+0.354*x2。由matlab编程所得结果图如下4-2所示。
图4-2
再作出残差分析图验证拟合效果,残差较小,说明回归多项式与源数据吻合得较
好。若x1=30.4,x2=28.6时,y的数据缺失,则将x1,x2带入回归多项式,算出缺失值y=29.6888。类似地,若x1=40.6,x2=30.4时,y的数据缺失,则将x1,x2带入回归多项式,算出缺失值y=30.8462,即可补充缺失数据。
五、 问题(2)的分析与求解
5.1问题分析
本题需要对给定缺失数据进行鉴别,可以采用的方法为t检验检测法。T检验用t分布理论来推论差异发生的概率,从而比较两个平均数的差异是否显著。 5.2问题处理
(一)随机产生数据
由R系统随机产生数据对其进行缺失数据鉴别,代码如附录四所示,结果图如下5-1,5-2,5-3所示。
图5-1
图5-2
图5-3 (二)给定相应数据 对于问题二,在数据完整但出现异常的情况下,可以考虑使用异常值检验中标准差未知的t检验法。将除可疑测定值xd以外的其余测定值当做一个总体,并假设该总体服从正态分布。由这些测定值计算平均值x与标准差s,而将可疑值xd当做一个样本容量为1的特殊总体。如果xd与其余测定值同属于一个总体,则它与其余测定值之间不应有显著性差异。检测统计量为:k?xd?x?,假设可由标准差s替代?来进行检验,则检测统计量可视为:k?xd?xs。若统计量值大于相应置信度?下的t检验法的临界值T?(该临界值通过查表法得出),则将xd判为异常值。具体数据见附表二,具体程序详见附录二,结果图如下5-4所示。 图5-4 六、 问题(3)的分析与求解
6.1问题分析
对于问题三,我们采用了分段线性插值,最近方法插值,三次样条函数插值以及三次多项式方法插值法来修正数据异常。同时也需利用外插法修正最后一个数据的异常。详见2.3对问题三的处理原理。 具体代码见附录三。
附录一 多元线性回归matlab程序 clear;
data1=xlsread('C:\\Users\\Lenovo\\Desktop\\1960-2005.xls'); %做出散点图 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(0.1,0.06,0.2,'回归方程式为:y=18.014+0.051x1+0.352x2','color','b'); title('x1,x2,y的关系:','color','m'); %做残差分析图 figure(2)
reoplot(r,rint);
xlabel('数据');ylabel('残差'); title('残差绘制图'); %补缺失数据 x1=[32.6,31.3]; y1=x1*b;
x2=[33.2,26.5]; y2=x2*b;
附录二 t检验spss代码
GET DATA /TYPE=XLS
/FILE='C:\\Users\\bwx\\Desktop\\2.xls' /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=[3.2015,2.2560,879.5,1835.9,2968.8,4136.2,5237.9,6152.7,6725.3,6848.3,6403.5,6824.7,7328.5,7857.6]; >> F1=interp1(T,F,X) F1 =
1.0e+003 *
Columns 1 through 10
0.0028 0.3532 1.2621 2.2891 5.6038 6.3817 6.7745 6.6704
Columns 11 through 12
6.5720 7.0262
>> F1=interp1(T,F,X,'nearest') F1 =
1.0e+003 *
Columns 1 through 10
0.0032 0.0023 0.8795 1.8359 5.2379 6.1527 6.7253 6.8483
Columns 11 through 12
6.4035 6.8247
>> F1=interp1(T,F,X,'nearest')%最近方法插值 F1 =
1.0e+003 *
3.4358 2.9688 4.5769 4.1362 Columns 1 through 10
0.0032 0.0023 0.8795 1.8359 2.9688 4.1362 5.2379 6.1527 6.7253 6.8483
Columns 11 through 12
6.4035 6.8247
>> F1=interp1(T,F,X,'spline')%三次样条方法插值 F1 =
1.0e+003 *
-0.1702 0.3070 1.2560 2.2698 5.6370 6.4229 6.8593 6.6535 6.4817 7.0441
>> F1=interp1(T,F,X,'cubic')%三次多项式方法插值 F1 =
1.0e+003 *
0.0025 0.2232 1.2484 2.2736 5.6362 6.4362 6.7978 6.6917 6.5077 7.0186
附录四 随机数据缺失鉴别R语言代码 set.seed(2016) > x<-rnorm(100) > summary(x)
Min. 1st Qu. Median Mean 3rd Qu. Max. -3.3150 -0.4837 0.1867 0.1098 0.7120 2.6860 > summary(x)
Min. 1st Qu. Median Mean 3rd Qu. Max. -3.3150 -0.4837 0.1867 0.1098 0.7120 2.6860 > # outliers
> boxplot.stats(x)#out $stats
[1] -1.9338617 -0.4858811 0.1866546 0.7267571 1.9850002 $n
[1] 100
3.4396 3.4365 4.5896 4.5913 $conf
[1] -0.004942252 0.378251413 $out
[1] -3.315391 2.685922 -3.055717 2.571203
> boxplot.stats(x)$out
[1] -3.315391 2.685922 -3.055717 2.571203 > boxplot(x) > y<-rnorm(100)
> df<-data.frame(x,y) > rm(x,y) > head(df)
x y 1 -3.31539150 0.7619774 2 -0.04765067 -0.6404403 3 0.69720806 0.7645655 4 0.35979073 0.3131930 5 0.18644193 0.1709528 6 0.27493834 -0.8441813 > attach(df)
> # find the index of outliers from x
> (a <-which(x %in% boxplot.stats(x)$out)) [1] 1 33 64 74
> # find the index of outliers from y
> (b <-which(y %in% boxplot.stats(y)$out)) [1] 24 25 49 64 74 > detach(df)
> # outliers in both x and y > (outlier.list<-intersect(a,b)) [1] 64 74 > plot(df)
> points(df[outlier.list,],col=\
$conf
[1] -0.004942252 0.378251413 $out
[1] -3.315391 2.685922 -3.055717 2.571203
> boxplot.stats(x)$out
[1] -3.315391 2.685922 -3.055717 2.571203 > boxplot(x) > y<-rnorm(100)
> df<-data.frame(x,y) > rm(x,y) > head(df)
x y 1 -3.31539150 0.7619774 2 -0.04765067 -0.6404403 3 0.69720806 0.7645655 4 0.35979073 0.3131930 5 0.18644193 0.1709528 6 0.27493834 -0.8441813 > attach(df)
> # find the index of outliers from x
> (a <-which(x %in% boxplot.stats(x)$out)) [1] 1 33 64 74
> # find the index of outliers from y
> (b <-which(y %in% boxplot.stats(y)$out)) [1] 24 25 49 64 74 > detach(df)
> # outliers in both x and y > (outlier.list<-intersect(a,b)) [1] 64 74 > plot(df)
> points(df[outlier.list,],col=\
正在阅读:
数学建模缺失数据补充及异常数据修正06-01
2018年对外经济贸易大学金融学院396经济类联考综合能力之概率论与数理统计考研冲刺狂背五套题05-05
电信行业服务器托管协议03-18
南京农业大学遗传学练习与参考答案11-30
北师大版七年级下册数学(全册知识点考点梳理、重点题型分类巩固练习)(提高版)(家教、补习、复习用)12-01
桥下空间安全使用协议04-11
安徽省《出生医学证明》管理办法03-08
部编版人教版一年级上册2.iuvyw01-24
学风建设主题班会开场白12-25
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 数据
- 数学建模
- 缺失
- 修正
- 异常
- 补充
- 桥梁预应力精细化施工手册 - 图文
- scantools
- 浙江省土地权属争议行政处理程序规定(浙江省人民政府令第235号
- 煤炭行业第一批免试中国工程建设职业经理人
- 第五课时:亿以内数的改写
- 班主任素质大赛情景答辩试题
- 吉林大学新编物理题册下
- 七年级数学下册拓展题2
- 2014年广东高考作文范文
- 生化测试
- 盐类的水解教学案例
- 《新时期道德修养》学习计划
- 《微生物学检验》复习思考题参考答案(1)
- PTT之一 演-表达能力训练(课后测试)
- 深圳交通问题论文 - 图文
- 海洋生物资源管理期末复习 - 图文
- 各地土地增值税政策法规比较 (关于普通标准住宅)
- 爱立信DT学习笔记
- 【真题】2018年四川宜宾市中考英语试题含答案解析(Word版)
- 初中数学新课标理念与目标分析