基于多重插补的电波传播数据完备拟合
2016-05-30黄子洋黄登一皮海亚
黄子洋 黄登一 皮海亚
摘 要:电磁波的大气传输衰减值是实现电波传播的基础参数之一,为了计算高空中的衰减值,需要知道高空中的温度、大气压强、相对湿度等数据,但是有时现有的数据常常会发生缺失。本文采用多重插补的方法,科学地对缺失数据进行补全,并生成了不同高度下的连续数据,解决了高空中电波传播数据缺失的问题,还对插补的效果进行了实际验证,以说明这一方法的可行性。
关键词:数据缺失;多重插补;最小二乘法多项式拟合;模拟退火算法
0 引言
电磁波的大气传输衰减值是实现电波传播的基础参数之一。根据国际的相关建议,若想研究电磁波在某个地区的传输损耗,需知道该地区的大气参数,具体为温度、大气压强、相对湿度数据,进而计算得到传输损耗。好在中国气象数据共享服务网会提供一些高空数据,如温度、大气压强、温度露点差等,我们通过这些数据进行转换或计算可以得到所需要的数据。然而,该网所提供的数据有时会发生缺失。
1 数据缺失与多重插补法
1.1 缺失数据产生机制
当变量出现缺失数据时,我们在处理数据之前要先考虑缺失数据的产生机制,根据缺失数据与目标变量是否有关来对缺失数据进行归类。若研究变量的缺失值与其观测值、未观测值都没有联系,定义该研究变量为完全随机缺失。若研究变量的缺失值与其未观测值没有关系,但与其他观测变量(常常是完全观测变量)有关,我们称该变量为随机缺失。若研究变量的缺失值与其未观测值有关,该变量为非随机缺失[1]。
1.2 数据缺失模式
数据缺失模式决定了要使用哪一种数据补全方法,它大概可以分为以下几种,如图1所示。
其中,圆圈代表观察值,同心双圈代表缺失值。此处选取了5个变量来研究。对于一般形式应通过行变换将缺失的数据聚集在数据集的右下角再按图进行模式识别。
1.3 多重插补法
一般的情况都是复杂的,数据的缺失也基本上是随机的,简单数据缺失处理方法比如经验法、平均值法误差较大,因此需要使用考虑更加全面的方法,而多重插补法正好可以满足需求。
多重插补法的基本思想是一种用多个已知的并且能反映数据本身概率分布的值来插补缺失数据,使得被插补的数据能够与真实数据相近。它要求数据缺失机制为随机缺失。具体做法是对总数据集Y,观测集已知,而缺失集的缺失是随机的,这样,我们就可以建立条件分布,并根据此产生插补值。对于每一个缺失的数据,假设插补n次。这n个数据按照某种特定要求进行排列,这样第一次用于插补缺失数据的数据集就会产生第一个完整数据集,最终,n次插补将会产生n个完整数据集[2]。然后对每一个插补数据集分析得到的结果总共n个结果进行综合分析,即产生最终的统计推断。
现在许多现有的统计软件已经具有多重插补功能,比如SPSS和stata,非常方便,我们只需要导入具体的数据,然后进行一些简单的初始值设置,即可对数据集进行插补。
2 案例分析
2.1 插补过程
以中国气象数据共享服务网所提供的成都地区在八月份的某一天0时在不同高度下的大气参数(共计17个样本,9个样本完整,8个样本缺失)为例。首先对样本进行行变换,将缺失数据集中在右下角,目的是对缺失模式进行判别,如表1所示。
其中TD为露点温度,(T-TD)为温度露点差,从空白的分布我们可以看出其数据缺失模式为一般模式,假设该表数据缺失机制为随机缺失(否则无法分析)。之后利用SPSS的多重插补功能对数据进行多重插补,为了使收敛速度更快,插补结果更准确,我们对插补的值做出限制。根据数据的变化规律,取高度,压强p应该大于,但是由于地面上的压强为1013hPa,取,而温度T满足,露点温度差由于数据缺失率较高不做限制。
经过多次仿真最终得到了几组结果。根据常识,相对湿度在很高的地方基本趋近于零,根据这一点得到最优的一组数据,如表2所示。
2.2 连续数据生成
在得到了离散点的完整数据集以后,我们通过最小二乘拟合的方法,将温度、压强、相对湿度拟合成关于高度的多项式的和以得到连续数据。上述过程可以借助MATLAB自带的CFTOOL工具箱来完成。结果如下:
2.3 结果分析
为了验证插值结果,我们推导出各变量的真实物理模型得到真实值,再与SPSS的插值结果进行比较。
(1)温度T
样本缺失的都是低空(1504m以下)的值,低空的温度基本随高度变化近似是负的线性关系,有:
已知两点低空数据(13.9℃,957m)和(10.5℃,1504m),我们可得斜率,继而样本低空下温度物理模型为:
利用函数关系我们可得两个插值点(1112m,13.4℃)和(1200m,11.2℃),对应的点分别为(1112m,13.1℃)和(1200m,11.6℃),可以看出温度的插值在一定误差范围内是准确的。
(2)大气压强P
若考虑大气温度随高度的变化,那气体压强随高度的变化规律是由多状态方程推导出的大气压强公式:
其中P0=1013.15Pa,u=28.9,g=9.81m/s2,R=8.314J·mol-1·K-1,取T0=288.1K为地面的温度,H为离地高度,γ为大气的比热比且一般介于等温γ=1与绝热时γ=1.4之间[3]。
由于,我们应该利用已知的7组数据求解γ,具体我们采用模拟退火算法来求解。首先应建立适当的优化函数,将已知7组数据的大气压强和高度,记为Pi和Hi,则可以建立如下的非线性约束问题:
利用模拟退火算法求解的参数设置如下:初始温度T=1000,结束温度T0=0.001,步长steP=0.02,Markov链长L=150,通过MATLAB多次仿真求得的较精确解为1.147[3],目标函数值为2.9左右(由于数据较少,不能使目标函数完全接近0),因此可得实际的物理函数关系式为:
利用函数关系我们可得3个插值点(957m,1000hPa)、(1112m,1000hPa)和(1200m,925hPa),对应的点分别为(957m,1001.59hPa)、(1112m,999.76hPa)和(1200m,928hPa),可以看出大气压强的插值在一定误差范围内是准确的。
(3)相对湿度
相对湿度的物理模型很复杂。但是我们唯一确定的是在非常高的地方RH已经趋近于0,前文就是按照这一原则选取的相对湿度的插值,故可以认为是有效的。
(4)结论
我们可以认为在一定的误差允许范围内,利用SPSS对缺失数据进行多重插值的方法是有效的。
3 结语
长时间的探索与实践证明,多重插补法弥补了单一插补法的缺陷,并且还考虑到插补的不确定度,所以已经代替简单的主观法和单一插补法成为处理分析缺失数据的主流方法,它所表现出的巨大的适应性与潜力为各行各业的人所看好。
参考文献
[1]庞新生.缺失数据处理方法的比较[J].统计与决策,2010(24):152-155.
[2]袁中萸.多元线性回归模型中缺失数据填补方法的效果比较[D].中南大学,2008.
[3]许小勇,唐小军,王燕.利用模拟退火算法求大气压强公式[J].甘肃联合大学学报(自然科学版),2007(2):39-41.
(作者单位:华北电力大学)