由于观测手段和观测背景的限制,再加上环境复杂,很多时候只有部分气象观测资料可用,为了在这种背景下进行气象预报,充分完备的气象资料是重要基础,因此基于零散的部分观测数据、先验数据的统计特征和矩阵优化填充技术的气象资料恢复研究具有重要的工程价值和数学意义,其研究在国内外尚属空白。本文旨在通过部分观测资料,充分利用矩阵的低秩性和气象观测数据的内在结构性先验统计信息,应用矩阵填充的奇异值阈值化SVT算法,优化分析得到欠缺数据,从而获得填充的补全数据。实验结果表明,基于结构性先验信息和矩阵优化填充方法得到的数据准确率明显取决于矩阵格式选择和气象数据本身特性,而且本文通过理论和实验分析出最佳的矩阵优化填充模型,表明当可利用的资料占比高于临界采样率时,数据填充误差可控制在10%以内,可以有效地解决预报和分析时的观测资料数据缺失不全的问题。 Because of the limitation of observation means and background, combined with the complex environment, only some observation data are available. For the sake of better weather forecast, the research of meteorological data restoration based on part of observation data and matrix completion would have important scientific significance. This paper aims to, through part of real-time observation data, according to the low rank of a matrix, with applying SVT (Singular Value Thresholding) algorithm of matrix completion, obtain the deficient data so that one can make weather forecast better. The experimental result shows that the accuracy of forecast with matrix completion method is obviously higher than that with classical statistical method. When available data proportion is higher than the critical sampling proportion, errors of data filling can be controlled within 10%, which meet the requirements of meteorological data.
徐冠雷1,2*,王孝通1,周立佳1,邵利民1,徐晓刚2
1海军大连舰艇学院航海系,辽宁 大连
2大连理工大学电子信息与电气工程学部,辽宁 大连
收稿日期:2018年4月1日;录用日期:2018年4月21日;发布日期:2018年4月28日
由于观测手段和观测背景的限制,再加上环境复杂,很多时候只有部分气象观测资料可用,为了在这种背景下进行气象预报,充分完备的气象资料是重要基础,因此基于零散的部分观测数据、先验数据的统计特征和矩阵优化填充技术的气象资料恢复研究具有重要的工程价值和数学意义,其研究在国内外尚属空白。本文旨在通过部分观测资料,充分利用矩阵的低秩性和气象观测数据的内在结构性先验统计信息,应用矩阵填充的奇异值阈值化SVT算法,优化分析得到欠缺数据,从而获得填充的补全数据。实验结果表明,基于结构性先验信息和矩阵优化填充方法得到的数据准确率明显取决于矩阵格式选择和气象数据本身特性,而且本文通过理论和实验分析出最佳的矩阵优化填充模型,表明当可利用的资料占比高于临界采样率时,数据填充误差可控制在10%以内,可以有效地解决预报和分析时的观测资料数据缺失不全的问题。
关键词 :低秩矩阵,矩阵填充,奇异值阈值化算法, 先验统计特征
Copyright © 2018 by authors and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
气象信息数据的获取是进行气象预报的前提,由于观测手段和观测背景的限制,再加上环境复杂,很多时候只有部分气象观测资料可用(可以获取),为了在这种背景下进行气象预报,充分完备的气象资料是重要基础,因此基于部分观测数据和矩阵填充的气象资料恢复研究具有重要的科学意义 [
近几年来,在工程控制、机器学习和计算机视觉等应用科学的众多领域,人们越来越感兴趣于如何利用非常有限的信息恢复出满足某种条件的未知信号 [
同时,研究经验表明,气象数据具有很强的结构性和周期性(先验特征信息) [
一个矩阵如果只观测到了它的一部分元素(这一部分元素可能占该矩阵元素很低的比例),我们要推测出它的其他没有观测到的元素的信息,这便是矩阵填充所研究的问题。如果对于矩阵没有任何条件限制,矩阵填充问题的解将是无穷多的,是不可解的 [
对于给定的矩阵X,矩阵部分数据已知,即下面优化问题即是矩阵填充的数学模型:
min ‖ X ‖ * , s . t . X i , j = M i , j , ( i , j ) ∈ Ω , (1)
如果矩阵中数据采样对于给定的某个常数C满足 m ≥ C n 6 / 5 r log n ,上式就会以较高的概率( 1 − n − 3 )恢复出矩阵缺失元素。这里 ‖ X ‖ * 表示的是矩阵的核范数,即所有奇异值的和,r为矩阵的秩,n为矩阵行数和列数中的最小值,m为矩阵中已知数据个数。由于求解(1)较为困难,上式可以松弛成如下优化问题:
min r a n k ( X ) , s . t . X i , j = M i , j , ( i , j ) ∈ Ω . (2)
进一步,Cai等人把限制条件进行了改进 [
min r a n k ( X ) , s . t . P Ω ( X i , j ) = P Ω ( M i , j ) , ( i , j ) ∈ Ω . (3)
因此,可以通过迭代优化计算方法(4)直到达到某个停止条件,获得最终的优化矩阵X:
{ X k = s h r i n k ( Y k − 1 , τ ) Y k = Y k − 1 + δ k P Ω ( M − X k ) , (4)
其中, Y 0 = 0 , s h r i n k ( Y k − 1 , τ ) 为一个非线性软阈值函数,阈值为 τ , δ k 为k步相应的步长。这里使用了两个重要的特性:稀疏性和低秩性。矩阵在迭代的过程中一直保持着稀疏性,同时矩阵必须是低秩的,否则该方法将失效。
很显然,矩阵填充问题是一个非适定性的问题。一般而言,如果一个矩阵仅仅由少量的采样元素组成,那么完全重构出原矩阵几乎是不可能的,因为对矩阵未知元素的填充有无限种可能性。如果没有其他约束条件,矩阵填充重构出的矩阵将不是唯一的。但是如果我们事先知道原始矩阵数据满足一定的条件,那么矩阵填充将变得可行,这个关键的条件就是矩阵的低秩性 [
在实际的气象数据处理问题中,我们希望恢复的未知矩阵往往都是低秩的或近似低秩的。文献 [
本文主要利用的就是气象观测数据矩阵的低秩性或近似低秩性来填补构造矩阵。在实际情况中,由于观测条件和人为等因素,气象数据有时候会出现缺失(甚至缺失的比例较大),面临很大程度的不完整性,而如何利用已有的部分观测数据获取较为准确且结构性良好的整体数据,这便是本文要解决的问题。
本文选取了大连海区2011年至2015年5年共计1825天完整历史天气数据,数据下载网站为http://tianqi.2345.com/wea_history/54662.htm。其中每一天的数据包括日期、最高气温、最低气温、天气类型、风向以及风力等5类数据。部分数据如表1,表中数据完整,数据量较大,作为本文研究的数据。另外,还可以利用经典统计方法对5年的数据进行相应的统计,获取经验性成果,提高天气形势反演的准确率并验证之。
日期 | 最高气温 | 最低气温 | 天气 | 风向 | 风力 |
---|---|---|---|---|---|
2011-01-02 星期日 | −3℃ | −7℃ | 多云~晴 | 北风~西北风 | 4~5级 |
2011-01-03 星期一 | −3℃ | −8℃ | 晴 | 西北风~北风 | 4~5级 |
2011-01-04 星期二 | −3℃ | −8℃ | 多云 | 西北风~北风 | 5~6级 |
2011-01-05 星期三 | −4℃ | −6℃ | 多云~晴 | 北风~西北风 | 5~6级 |
2011-01-06 星期四 | −3℃ | −6℃ | 晴 | 西北风~北风 | 4~5级 |
2011-01-07 星期五 | −5℃ | −8℃ | 晴 | 北风 | 4~5级 |
2011-01-08 星期六 | −5℃ | −6℃ | 晴 | 北风 | 4~5级 |
2011-01-09 星期日 | −1℃ | −7℃ | 晴 | 西南风 | 4~5级 |
⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
2015-12-25 星期五 | 5 ℃ | −3℃ | 晴 | 西南风~北风 | 5~6级 |
2015-12-26 星期六 | −4℃ | −10℃ | 晴 | 北风 | 6~7级 |
2015-12-27 星期日 | −5℃ | −12℃ | 晴~多云 | 北风~西北风 | 6~7级~4~5级 |
2015-12-28 星期一 | 2 ℃ | −2℃ | 晴~多云 | 西北风~西南风 | 5~6级~4~5级 |
2015-12-29 星期二 | 4 ℃ | 0 ℃ | 多云~阴 | 西南风~北风 | 4~5级 |
2015-12-30 星期三 | 2 ℃ | −4℃ | 阴~多云 | 西北风 | 5~6级 |
2015-12-31 星期四 | 2 ℃ | −3℃ | 晴 | 西北风~西南风 | 4~5级 |
表1. 大连历史天气数据(部分)
由于各物理量之间存在着明显的规律性,比如当时间为冬季的时候,最低气温将会接近其极小值,天气很可能会出现下雪天气;当风力为大风时基本不可能出现大雾天气等等。加之数据量较大,对数据进行统计得到的结果对于本文研究的先验特征具有重要支持依据。
由图1可以看出,自 2011 年 01 月 01 日 到 2015 年 04 月 14 日 ,大连海区共出现晴613天,多云466天,阴41天,雾36天,雨306天,雪86天,沙尘4天。其中最常见的天气是晴天,共出现613天,约占39.5%;沙尘天气最少,仅仅出现过4天,不足1.0%,在后续的数据处理上,由于其占比太低,故将沙尘天气略去;多云天气以及雨雪天气也较为常见,比例分别为30.0%、25.3%,阴、雾天气较少,比例约为2.6%、2.3%。
由图2可以看出,自 2011 年 01 月 01 日 到 2015 年 04 月 14 日 ,大连海区共出现北风390天,东北风142天,东风52天,东南风196天,南风249天,西南风191天,西风66天,西北风266天。大连海区主要以偏北风和偏南风为主,其中仅正北风和正南风而言,二者就占了约41.2%;而东风和西风相对而言出现的频率非常低,仅占约7.6%。这个规律性相当明显,在后续的数据填充中应当加以考虑。
由图3可以看出,自 2011 年 01 月 01 日 到 2015 年 04 月 14 日 ,大连海区共出现3-4级风5天,4-5级风913天,5~6级风525天,6~7级风104天,7~9级风5天。4~5级风是大连地区最常见的风,占了58.8%,频率在一半以上;5~6级风也比较常见,约占33.8%;4~5级风、5~6级风加起来共占92.7%,说明大连地区风的风力基本保持在4~6级左右,其他风力较为少见。由图4可以看出,自 2011 年 01 月 01 日 到 2015 年 04 月 14 日 ,大连海区共出现天最高气温−11~−6℃共21天,天最高气温−5~−1℃共151天,天最高气温0℃~5℃共281天,天最高气温6℃~10℃共168天,天最高气温11~15℃共163天,天最高气温16℃~20℃共183天,天最高气温21℃~25℃共295天,天最高气温26℃~32℃共290天。
由图5可以看出,自 2011 年 01 月 01 日 到 2015 年 04 月 14 日 ,大连海区共出现天最低气温−15℃~−11℃共24天,天最低气温−10℃~−6℃共174天,天最低气温−5℃~−1℃共247天,天最低气温0℃~5℃共237天,天最低气温6℃~10℃共172天,天最低气温11℃~15℃共211天,天最低气温16℃~20℃共288天,天最低气温21℃~25℃共199天。
由图6可以看出,自 2011 年 01 月 01 日 到 2015 年 04 月 14 日 ,大连海区共出现温差0℃~3℃共82天,温差4℃~7℃共1028天,温差8℃~11℃共420天,温差12℃~15℃共22天。大连地区一天的温差
图1. 大连历史天气现象统计
图2. 大连历史风向数据统计
图3. 大连历史风力数据统计
图4. 大连历史最高气温资料统计
图5. 大连历史最低气温资料统计
图6. 大连历史温差资料统计
主要在4℃~7℃左右,说明大连海区一天的温度变化并不大,这与大连海区的地理位置有很大的关系:大连地区靠海,海水的比热容比陆地的大,导致大连地区气温变化不剧烈。
正是上述数据的这种规律统计特性(图1~6),可以说为数据缺失的填充恢复提供了物理基础。事实证明,这种数据的内在统计规律预示了矩阵内在的结构性和稀疏性,为数据填充可行性提供了依据。
在日常生活中我们会发现,不同季节、不同天气的温差是不一样的,这说明温差与它们可能存在一定的关系,如果确实存在这样的关系,那么在矩阵中将会得到体现,即矩阵的低秩性特征。故在此将最高气温减去最低气温得到每日温差数据,以扩展我们的数据矩阵,得到更好的填充效果。经初步处理后部分数据如表2所示。
我们最终要将大连历史天气数据转化成矩阵来使用,而原始数据是由文本组成的,且种类繁多,这需要我们对原始数据进行分类,将相似的物理现象归为一类。下面我们就根据气象数据本身的特征进行分类。
日期 | 最高气温 | 最低气温 | 温差 | 天气 | 风向 | 风力 |
---|---|---|---|---|---|---|
2011-01-01 星期六 | −4℃ | −8℃ | 4℃ | 晴~多云 | 北风 | 5-6级~4-5级 |
2011-01-02 星期日 | −3℃ | −7℃ | 4℃ | 多云~晴 | 北风~西北风 | 4~5级 |
2011-01-03 星期一 | −3℃ | −8℃ | 5℃ | 晴 | 西北风~北风 | 4~5级 |
2011-01-04 星期二 | −3℃ | −8℃ | 5℃ | 多云 | 西北风~北风 | 5~6级 |
2011-01-05 星期三 | −4℃ | −6℃ | 2℃ | 多云~晴 | 北风~西北风 | 5~6级 |
2011-01-06 星期四 | −3℃ | −6℃ | 3℃ | 晴 | 西北风~北风 | 4~5级 |
2011-01-07 星期五 | −5℃ | −8℃ | 3℃ | 晴 | 北风 | 4~5级 |
表2. 大连历史天气数据(部分)
1) 天气类型分类
由于大连海区这5年的数据中天气类型的种类十分复杂,共计123种,而人们日常关心更多的是恶劣天气,所以如果某天的天气类型没有变化,就取当日天气作为最终天气,例如2011年01月03号天气为晴,则最终天气类型便为晴天;如果某天的天气类型有所改变,则取恶劣天气做为当日天气类型,以此简化数据种类,例如 2011 年 04 月 18 日 天气为阵雨~晴,则取“阵雨”为当日分析天气。另外,为了进一步简化数据,削减数据种类,在处理数据时将含有雪的天气都归为一类“雪”,例如大雪、中雪、小雪最后都定为“雪”,按照此方法,最终天气类型被简化成6种基本天气类型,分别是雪、雨、雾、阴、多云、晴。
2) 风向分类
风向和天气一样,种类多样,比较复杂,共计64种。我们研究风矢量的时候和研究天气一样,更多的是关心大风的影响(而非常细化的风向考虑相对少一些)。故如果某日风向无变化则取该风向为当日风向;若风向改变,但风力不变,则取初始风向为当日风向;如果风向改变并且风力也改变,则取较大风力等级对应的风向作为当日风向。例如 2011 年 01 月 01 日 风向为北风,则当日风向为北风; 2011 年 01 月 02 日 风向为北风–西北风,风力4~5级未变,则取初始风向北风作为当日风向;而 2011 年 01 月 21 日 风向为东北风–北风,风力为6~7级~5~6级,则取较大风力6~7级对应风向东北风作为当日风向。最终风向简化成8类,分别是北风、东北风、东风、东南风、南风、西南风、西风、西北风。
3) 风力分类
日常生活中由于我们更多地关心大风的风力影响,所以对于风力的分类处理比较简单,如某日风力未变则该风力为当日风力;如果风力改变则取大风力为当日风力。例如 2011 年 01 月 19 日 风力为4~5级~5~6级,则当日风力为5~6级。
4)气温温差分类
将天最低气温、天最高气温和日气温差数据中的摄氏度符号“℃”直接去掉,然后作为其等级即可。经分类处理之后部分数据如表3所示。
经过上面的数据分类处理之后,我们在合理范围内将数据的种类降低,这对于后续的矩阵处理是非常有利的,而且因为我们更多是关心恶劣天气的影响,所以这对最终数绝填充结果影响并不大。现在
日期 | 最高气温 | 最低气温 | 温差 | 天气 | 风向 | 风力 |
---|---|---|---|---|---|---|
2011-01-01 星期六 | −4 | −8 | 4 | 多云 | 北风 | 5~6级 |
2011-01-02 星期日 | −3 | −7 | 4 | 多云 | 北风 | 4~5级 |
2011-01-03 星期一 | −3 | −8 | 5 | 晴 | 西北风 | 4~5级 |
2011-01-04 星期二 | −3 | −8 | 5 | 多云 | 西北风 | 5~6级 |
2011-01-05 星期三 | −4 | −6 | 2 | 多云 | 北风 | 5~6级 |
2011-01-06 星期四 | −3 | −6 | 3 | 晴 | 西北风 | 4~5级 |
2011-01-07 星期五 | −5 | −8 | 3 | 晴 | 北风 | 4~5级 |
2011-01-08 星期六 | −5 | −6 | 1 | 晴 | 北风 | 4~5级 |
2011-01-09 星期日 | −1 | −7 | 6 | 晴 | 西南风 | 4~5级 |
2011-01-10 星期一 | −4 | −7 | 3 | 阴 | 北风 | 5~6级 |
2011-01-11 星期二 | −3 | −8 | 5 | 晴 | 北风 | 4~5级 |
2011-01-12 星期三 | −4 | −7 | 3 | 晴 | 西南风 | 4~5级 |
2011-01-13 星期四 | −4 | −9 | 5 | 晴 | 北风 | 4~5级 |
表3. 经分类的大连历史天气数据(部分)
我们要将数据进行相应的编号,即结构性等级划分的数字化,得到新的数字矩阵。这样便可以将大连海区的历史数据转化成数据矩阵处理(表4~9)。
经数字化处理之后部分数据如表10所示(日期数据未处理):
时间维对于整个大连海区历史天气数据矩阵而言是非常重要的一维,因为时间对应的一年四季,会出现哪样的天气现象是十分有规律性的,它包含着丰富的物理意义,与其它物理量的内在联系也非常明显,故在此将时间维分四类进行数字化处理,并在之后的处理中比较各类处理方法的优缺点。
1) 按月处理(表11)
1.1) 竖排结构
将5年1825天的数据排成1825 × 7的矩阵,顺序不变。
1.2) 横排结构
将5年1825天的数据排成365 × 35的矩阵,其中1~7列为2011年的数据,8~14列为2012年的数据,15~21列为2013年的数据,22~28列为2014年的数据,29~35列为2015年的数据。
2) 按季处理(表12)
2.1) 竖排结构
和按月处理竖排一样,将5年1825天的数据排成1825 × 7的矩阵,顺序不变。
2.2) 横排结构
同样,将5年1825天的数据排成365 × 35的矩阵,其中1~7列为2011年的数据,8~14列为2012年的数据,15~21列为2013年的数据,22~28列为2014年的数据,29~35列为2015年的数据。
经过将数据进行数字化处理,最终得到了按月处理(竖排)、按月处理(横排)、按季处理(竖排)、按季处理(横排)四种类型的数据。之所以这么做是因为不同结构的数据各物理量表现内在联系的方式不一样,所得到的矩阵的秩也是不一样的,运用这四种结构分别处理得到结果,再进行比较得到最优结构。
范围 | −15℃~−6℃ | −5℃~−1℃ | 0℃~5℃ | 6℃~10℃ |
---|---|---|---|---|
编号 | 1 | 2 | 3 | 4 |
范围 | 11℃~15℃ | 16℃~20℃ | 21℃~25℃ | 26℃~35℃ |
编号 | 5 | 6 | 7 | 8 |
表4. 最高气温数字化
范围 | −15℃~−11℃ | −10℃~−6℃ | −5℃~−1℃ | 0℃~5℃ |
---|---|---|---|---|
编号 | 1 | 2 | 3 | 4 |
范围 | 6℃~10℃ | 11℃~15℃ | 16℃~20℃ | 21℃~25℃ |
编号 | 5 | 6 | 7 | 8 |
表5. 最低气温数字化
范围 | 0℃~4℃ | 5℃~7℃ | 8℃~10℃ | 11℃~15℃ |
---|---|---|---|---|
编号 | 1 | 2 | 3 | 4 |
表6. 温差数字化
天气类型 | 晴 | 多云 | 阴 | 雾 | 雨 | 雪 |
---|---|---|---|---|---|---|
编号 | 1 | 2 | 3 | 4 | 5 | 6 |
表7. 天气类型数字化
风向 | 北风 | 东北风 | 东风 | 东南风 | 南风 | 西南风 | 西风 | 西北风 |
---|---|---|---|---|---|---|---|---|
编号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
表8. 风向数字化
风力 | 3~5级 | 5~6级 | 6~9级 |
---|---|---|---|
编号 | 1 | 2 | 3 |
表9. 风力数字化
本文在研究前人的系列工作上,首先将已经数字化的大连历史天气数据输入到不同矩阵格式中(按季节、按月、竖排、横排等),再利用矩阵填充的SVT算法对数据进行填充。为了测试算法的效能,我们利用不同的采样率随机采样以得到各采样率下的矩阵填充相对误差,比较得到多高的采样率下矩阵填充相对误差能控制在10.00%以内。运算结果如表13所示。
日期 | 最高气温 | 最低气温 | 温差 | 天气 | 风向 | 风力 |
---|---|---|---|---|---|---|
2011-01-01 星期六 | 2 | 2 | 1 | 2 | 1 | 2 |
2011-01-02 星期日 | 2 | 2 | 1 | 2 | 1 | 1 |
2011-01-03 星期一 | 2 | 2 | 2 | 1 | 8 | 1 |
2011-01-04 星期二 | 2 | 2 | 2 | 2 | 8 | 2 |
2011-01-05 星期三 | 2 | 2 | 1 | 2 | 1 | 2 |
2011-01-06 星期四 | 2 | 2 | 1 | 1 | 8 | 1 |
2011-01-07 星期五 | 2 | 2 | 1 | 1 | 1 | 1 |
2011-01-08 星期六 | 2 | 2 | 1 | 1 | 1 | 1 |
表10. 经数字化的大连历史天气数据(部分)
月份 | 1月份 | 2月份 | 3月份 | 4月份 | 5月份 | 6月份 |
---|---|---|---|---|---|---|
编号 | 1 | 2 | 3 | 4 | 5 | 6 |
月份 | 7月份 | 8月份 | 9月份 | 10月份 | 11月份 | 12月份 |
编号 | 7 | 8 | 9 | 10 | 11 | 12 |
表11. 按月处理数字化
季节 | 春季 | 夏季 | 秋季 | 冬季 |
---|---|---|---|---|
月份 | 3、4、5月 | 6、7、8月 | 9、10、11月 | 12、1、2月 |
编号 | 1 | 2 | 3 | 4 |
表12. 按季处理数字化
在相对填充误差10%左右的范围在进一步细化采样率,得到相应的误差率,从而找出相对填充误差为10%对应的临界采样率,结果如下(表14):
将表15中的数据细化(采取更小的步长)分别做成曲线图,如图7、图8所示。
由相对填充误差图可以看出,随着数据采样率的提高,误差在不断减小。其中当数据采样率在50%以下时,随着数据采样率的提高,误差在迅速减小;而当数据采样率在50%以上时,随着数据采样率的提高,误差减小的速率较慢。另外由图可以看出,无论数据是按月处理还是按季处理,横排结构的数据误差都要小于竖排结构的误差,即横排结构优于竖排结构;而观察按月处理或是按季处理,可以看出在正常范围内无论是横排结构还是竖排结构,数据按月处理的误差均小于按季处理的误差,即按月处理优于按季处理。所以最优数据结构为按月处理横排结构,此时数据填充的误差最小,天气数据填充的效果最好。要将误差控制在10.00%以内的的临界采样率如表16所示。
根据SVT算法中矩阵低秩的特性,即对于同样的数据秩最低时SVT填充效果最佳,根据优化方程式(1)
采样率 | 按月处理(竖排) | 按月处理(横排) | 按季处理(竖排) | 按季处理(横排) |
---|---|---|---|---|
相对填充误差 | 相对填充误差 | 相对填充误差 | 相对填充误差 | |
5% | 97.37% | 92.12% | 97.43% | 94.27% |
10% | 75.46% | 70.62% | 77.81% | 79.56% |
15% | 70.03% | 62.29% | 76.68% | 46.74% |
20% | 52.53% | 28.38% | 66.44% | 33.09% |
25% | 43.39% | 11.35% | 52.27% | 21.06% |
30% | 34.77% | 8.17% | 48.22% | 13.31% |
35% | 24.63% | 7.28% | 30.46% | 10.67% |
40% | 19.29% | 5.38% | 27.12% | 8.66% |
45% | 13.73% | 5.37% | 20.35% | 6.74% |
50% | 11.71% | 4.34% | 16.94% | 6.22% |
55% | 9.56% | 3.63% | 13.52% | 5.42% |
60% | 7.64% | 3.17% | 11.99% | 4.53% |
65% | 6.21% | 3.03% | 8.87% | 3.78% |
70% | 4.44% | 2.33% | 7.35% | 3.64% |
75% | 3.42% | 1.99% | 5.86% | 2.65% |
80% | 2.43% | 1.53% | 4.03% | 2.27% |
85% | 1.66% | 1.05% | 2.56% | 1.46% |
90% | 1.00% | 0.77% | 1.71% | 0.99% |
95% | 0.55% | 0.37% | 0.82% | 0.53% |
100% | 0.00% | 0.00% | 0.00% | 0.00% |
表13. 不同采样率下的误差率
采样率 | 按月处理(竖排) | 采样率 | 按月处理(横排) |
---|---|---|---|
50% | 12.15% | 25% | 11.13% |
51% | 11.79% | 26% | 10.56% |
52% | 10.67% | 27% | 10.22% |
53% | 10.26% | 28% | 9.68% |
54% | 9.99% | 29% | 8.95% |
55% | 9.79% | 30% | 8.78% |
表14. 按月处理误差率
可知,如果矩阵中数据采样对于给定的某个常数C满足 m ≥ C n 6 / 5 r log n ,上式就会以较高的概率( 1 − n − 3 )恢复出矩阵缺失元素。所以我们不妨定义一个矩阵恢复测度 ξ :
采样率 | 按季处理(竖排) | 采样率 | 按季处理(横排) |
---|---|---|---|
60% | 11.54% | 30% | 13.81% |
61% | 11.09% | 31% | 11.46% |
62% | 10.51% | 32% | 11.24% |
63% | 10.25% | 33% | 11.21% |
64% | 9.41% | 34% | 10.88% |
65% | 9.35% | 35% | 9.70% |
表15. 按季处理误差率
数据结构 | 按月处理(竖排) | 按月处理(横排) | 按季处理(竖排) | 按季处理(横排) |
---|---|---|---|---|
临界采样率 | 53.7% | 27.3% | 63.2% | 34.7% |
表16. 临界采样率
图7. 不同采样率下的误差率
ξ ∝ M m ⋅ r n , (5)
其中,r为矩阵的秩且满足 r ≤ n ,n为矩阵行数和列数中的最小值,m为矩阵中已知数据个数,M为矩阵数据总个数即总行数和总列数的乘积。显然, ξ 越小,表明矩阵越易于恢复填充,相反 ξ 越大,表明
图8. 不同采样率下的误差率(细化)
矩阵越难于恢复填充。这一点很容易从直观上去解释,如果已知的数据个数m越大(其他参数固定),显然矩阵需要填充的数据就越少,越容易填充,极限情况则是没有数据缺失 m = M ,填充率可达100%。相反,如果 m = 0 即没有已知数据,则 ξ → + ∞ 表示矩阵无法填充。另一方面,如果已知的数据个数m已定的情况下,矩阵的秩r越大, ξ 越大,表明矩阵越难于恢复填充,如果 r = n ,表示满秩,数据填充困难(如果有数据缺失的话)。相反,矩阵的秩r越小, ξ 越小,表明矩阵越易于恢复填充,如果 r = 1 ,且 n ≫ 1 时, ξ → 0 ,表明矩阵数据中只有一行或列就可以表出其他行列数据。特殊情况,如果 r = 0 ,表示矩阵为0矩阵,直接不必填充即可获得结果。
所以,我们只需证明按月横排数据时的矩阵具有最小的矩阵恢复测度 ξ 即可。
假定有T年数据,每年固定数据量为p个,每个数据包含q个变量(比如日期,最高气温,最低气温,温差,天气,风向,风力等q个要素),这些数据按照时间顺序写成矩阵形式则为
X T p × q = [ x 1 , 1 x 1 , 2 ⋯ x 1 , q x 2 , 1 x 2 , 2 ⋯ x 2 , q ⋮ x p , 1 x p , 2 ⋯ x p , q ⋮ x T p , 1 x T p , 2 ⋯ x T p , q ] , (6)
即为一个 T p × q 的矩阵,不过是按照时间先后序列按照行进行排列。
那么,根据我们本文提出的四种模式:按月竖排处理、按月横排处理、按季竖排处理、按季横排处理四种类型的数据,不同的方式得到的矩阵分别为:
按月竖排:
X m o n , T p × q = X T p × q , (7)
按月横排:
X m o n , p × T q = [ x 1 , 1 x 1 , 2 ⋯ x 1 , q x p + 1 , 1 ⋯ x ( T − 1 ) p + 1 , q x 2 , 1 x 2 , 2 ⋯ x 2 , q x p + 2 , 1 ⋯ x ( T − 1 ) p + 2 , q ⋮ ⋮ x p , 1 x p , 2 ⋯ x p , q x 2 p , 1 ⋯ x T p , q ] , (8)
按季竖排:
X s e , T p × q = X T p × q , (9)
按季横排:
X s e , p × T q = X m o n , p × T q . (10)
可见,按月竖排处理和按季竖排处理具有相同的矩阵结构形式,按月横排处理和按季横排处理也具有相同的矩阵结构形式。不同的是(见本文3.3部分)按月处理与按季处理时数据的分级不同。把数据(这里我们不仅采用大连地区多年的气象观测数据,同时我们测试了沈阳、青岛、北京等三个城市的多年数据)代入到不同的各自矩阵形式中,进行SVD(奇异值分解)分解得到如下结构(其他矩阵类似,省略):
X m o n , T p × q = U m o n , T p × T p [ σ 1 ⋱ σ r 1 ] V ′ m o n , q × q . (11)
在上述分解式(11)中取门限阈值(本文均取0.2)进行奇异值的阈值化处理,然后得到不同模式下的秩以及其他的参数,最终根据式(5)计算多个地方多年气象观测资料(沈阳、青岛、北京、大连四个城市历史资料)下的平均值,得到如下表结果(表17):
所以,从理论分析及实验上来说按月处理(横排)对于气象数据矩阵的填充效果最佳。
在前文中我们将大连海区历史天气数据分类、数字化,转化成矩阵变量,然后利用SVT矩阵填充算法对四种不同结构的数据在不同的采样率条件下依次进行了矩阵填充,当采样率在临界采样率以上时,填充效果是较为理想的,此时天气数据的相对填充误差控制在10%以内,这符合气象数据的误差要求。为了验证程序以及算法的适用性和填充准确度,我们选取最优数据结构按月处理(横排)来验证之。
数据结构 | 按月处理(竖排) | 按月处理(横排) | 按季处理(竖排) | 按季处理(横排) |
---|---|---|---|---|
大连多年数据矩阵恢复测度ξ均值 | 1.99 | 1.30 | 2.81 | 2.04 |
北京多年数据矩阵恢复测度ξ均值 | 1.98 | 1.41 | 2.76 | 2.17 |
沈阳多年数据矩阵恢复测度ξ均值 | 1.94 | 1.32 | 2.81 | 2.13 |
青岛多年数据矩阵恢复测度ξ均值 | 2.01 | 1.41 | 2.78 | 2.10 |
平均矩阵恢复测度ξ | 1.98 | 1.36 | 2.79 | 2.11 |
表17. 矩阵恢复测度比较(平均值)
目前我们是在已经掌握2011年至2015年大连海区所有数据的基础上,对数据进行随机采样来进行实验的,而在实际情况下,正是因为数据缺失,我们才会利用各种方法将数据补回来。因此,为了方便程序的适用性,我们进行了仿真检验试验,见图9、图10。
图9. 不同采样率下的误差率
图10. 不同采样率下的误差率(细化)
由图可以看出,临界缺测率约为72.10%,此时误差为9.81%。我们将缺测率72.10%对应到原始矩阵和填充矩阵。
本文利用大连海区2011年至2015年5年共计1825天的历史观测资料,对只有部分观测资料的情况下进行数据的恢复,并且运用历史资料进行了仿真检验试验,得到如下结论:本文模拟由于观测手段和观测背景的限制,再加上环境复杂,致使天气预报工作处于信息不全、数据缺少的状态,为缺失数据下的天气预报方法的研究提供了条件。本文所做的一部分探索是从气象数据的关联性出发,对其分类并进行数字化,实验结果表明,只要气象数据矩阵是低秩的,就可以从一小部分的关联性信息恢复得到整个的关联性信息,即一小部分关联性信息就能包含整个信息。从一系列的实验数据来看,如果有一部分相关度的气象数据,这一部分数据又是充分随机的,只要它们的数量能够达到一定的比例,即达到临界采样率,便可以通过它们恢复得到绝大部分缺失的气象数据。
利用大连海区历史资料对矩阵填充的SVT算法进行了仿真检验试验,结果表明:1)当缺测数据比例低于临界缺测率时,矩阵填充恢复的相对误差便可以控制在10%以内,这满足气象数据的使用要求,说明基于气象数据先验结构特性和矩阵优化填充技术对于气象数据补全具有很好的实用性;2)实验分析结果表明,大连地区气象观测资料月相关性明显强于季度相关性。
但是,本文在对数据处理方面仍有一定的改进空间,比如对数据的分类,文中为降低各项数据的种类,选择了“恶劣天气”、“大风”等这样的选择标准,致使某些真实情况有所弱化;另外,将类似的天气类型化为一类,比如将“小雨”和“暴雨”均改写为天气“雨”也会增大最终结果的误差。本文采用的历史数据只有大连海区等几个地区2011年至2015年5年的数据,我们都知道样本比例越高填充误差越小 [
国家自然科学基金(批准号:61471412,61771020,61273262)项目资助。
徐冠雷,王孝通,周立佳,邵利民,徐晓刚. 基于矩阵优化填充和结构性先验统计信息的气象数据恢复 Meteorological Data Restoration Based on Matrix Completion and Prior Features[J]. 统计学与应用, 2018, 07(02): 192-209. https://doi.org/10.12677/SA.2018.72024