图3 残差分析图
残差绘制图0.080.060.040.02残差0-0.02-0.04-0.06-0.0850100数据150200250
五、对问题二的分析和处理
5.1 异常值t检验法原理 对于问题二,在数据完整但出现异常的情况下,可以考虑使用异常值检验中标准差未知的t检验法。将除可疑测定值xd以外的其余测定值当做一个总体,并假设该总体服从正态分布。由这些测定值计算平均值x与标准差s,而将可疑值xd当做一个样本容量为1的特殊总体。如果xd与其余测定值同属于一个总体,则它与其余测定值之间不应有显著性差异。检测统计量为:k?xd?x?,假设可由标准差s替代?来进行检验,则检测统计量可视为:k?xd?xs。若统计量值大于相应置信度?下的t检验法的临界值T?(该临界值通过查表法得出),则将xd判为异常值[2]。 5.2 举例建模找出异常值 我们将data.txt(见附表二)中的数据[5]导入matlab,首先利用matlab绘制火柴棒图(该模型程序见附录三)观察可疑数据,火柴棒图如下: 5
图4 火柴棒图 通过观察上图,得到可疑值为第6,9,13,23,26,29,35,36,45,53行的数据。 剔除这些数据后,用剩余数据计算平均值x与标准差s。检测统计量为:k?xd?xs。置信度?=?,样本容量n=44时,利用查表法易得t检验法的临界值T?=1.6802。 部分t分布表[3]如下: 表2 t分布表 n α=0.25 0.10 0.05 41 0.6805 1.3025 1.6829 42 0.6804 1.3020 1.6820 43 0.6802 1.3016 1.6811 44 0.6801 1.3011 1.6802 45 0.6800 1.3006 1.6794 若统计量值大于临界值T?,则将xd判为异常值,根据程序结果,第6,9,13,23,26,29,35,36,45,53行的数据都是异常值。
六、对问题三的分析和处理
6
对于问题三,我们采用了分段线性插值、三次样条函数插值以及分段三次Hermite插值法来修正数据异常。同时也需利用外插法修正最后一个数据的异常。本问题使用的是问题二中剔除异常点的数据(数据见附表三)。
6.1 原理简介
(1)分段线性插值[4]
将每两个相邻的节点用直线连起来,如此形成的一条折线就是分段线性插值函数,记作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)三次样条函数插值[4]
数学上将具有一定光滑性的分段多项式称为样条函数。三次样条函数为:对于?a,b?上的分划?:a?x0?x1?????xn=b,则,
7
利用样条函数进行插值,即取插值函数为样条函数,称为样条插值。 (3)分段三次Hermite插值[4]
如果对插值函数,不仅要求它在节点处与函数同值,而且要求它与函数有相同的一阶、二阶甚至更高阶的导数值,这就是Hermite 插值问题。
Hermite插值多项式为:
6.2 模型求解 利用matlab编程(程序见附录四),可作出利用三种插值法修正异常值的图。图如下: 图5 分段线性插值图 图6 三次样条函数插值图 图7 分段三次Hermite插值图 根据程序运行结果,可得到分段线性插值的修正结果如表3: 表3 分段线性插值修正结果 行号 修正 结果 6 0.44821 9 0.53229 13 0.40949 23 0.42683 26 0.49538 29 0.46451 36 0.28125 45 0.41264 53 0.55435 8
三次样条函数插值的修正结果如表4: 表4 三次样条函数插值修正结果 行号 修正 结果 6 0.42682 9 0.59417 13 0.43222 23 0.43262 26 0.51929 29 0.43251 36 0.43327 45 0.41015 53 0.28295 之后利用第二问中的t检验判断修正后的值是否仍为异常值(matlab程序见附录五)。检验结果显示:分段线性插值和三次样条函数插值所修正的数据中,第36行的数据0.28125和0.43327仍为异常值,第53行的数据0.55435和0.28295也仍为异常值。 分段三次Hermite插值的修正结果如表5: 表5 分段三次Hermite插值修正结果 行号 修正结果 6 0.44689 9 0.53794 13 0.40949 23 0.42683 26 0.50419 29 0.46264 36 0.43618 45 0.41264 53 0.4689 经过t检验,分段三次Hermite插值所得到的修正值全都不是异常值。所以运用分段三次Hermite插值得到的结果较准确。 七、模型评价和推广
问题一采用的一元多项式回归和多元线性回归能够较好地解决补充缺失数据的问题,并且该两种模型兼顾了只有一个自变量和有多个自变量的情况。一元多项式回归均方根误差较小,说明拟合曲线与源数据吻合得较好,故补充的缺失数据准确度也较高。多元线性回归残差较小,说明回归多项式与源数据吻合得较好,故补充的缺失数据是可信的。
问题二采用的异常值检验中标准差未知的t检验法能够较准确地判断出异常值。但如果样本容量太小,由标准差s替代σ来进行检验,可能会产生误差。
问题三采用的分段三次Hermite插值能够较好地修正异常数据。并且我们把经过修正的数据采用问题二的方法进行检验,证明所得到的修正值全都不是异常值。因此,修正后的值是较可信的。
缺失数据地补充及异常数据地修正在很多问题中都是必不可少的和基础的,不作这些数据处理就无法解决问题。本文中的模型可以运用到许多需要补充缺失数据或修正异常数据的问题中去。同时,也可利用该模型算法拓展模型在其他方面的适用范围。
八、参考文献
[1] 李柏年,MATLAB数据分析方法,北京:机械工业出版社,2012年。
[2] 何正风,MATLAB概率与数理统计分析,北京:机械工业出版社,2012年。
9