1 题目简介
题目来源于2019 高教社杯全国大学生数学建模竞赛D题——空气质量数据的校准。
空气污染对生态环境和人类健康危害巨大,通过对“两尘四气”(PM2.5、PM10、CO、NO2、SO2、O3)浓度的实时监测可以及时掌握空气质量,对污染源采取相应措施。虽然国家监测控制站点(国控点)对“两尘四气”有监测数据,且较为准确,但因为国控点的布控较少,数据发布时间滞后较长且花费较大,无法给出实时空气质量的监测和预报。某公司自主研发的微型空气质量检测仪(如图所示)花费小,可对某一地区空气质量进行实时网格化监控,并同时监测温度、湿度、风速、气压、降水等气象参数。
由于所使用的电化学气体传感器在长时间使用后会产生一定的零点漂移和量程漂移,非常规气态污染物(气)浓度变化对传感器存在交叉干扰,以及天气因素对传感器的影响,在国控点近邻所布控的自建点上,同一时间微型空气质量检测仪所采集的数据与该国控点的数据值存在一定的差异,因此,需要利用国控点每小时的数据对国控点近邻的自建点数据进行校准。
附件1.CSV和附件2.CSV分别提供了一段时间内某个国控点每小时的数据和该国控点近邻的一个自建点数据(相应于国控点时间且间隔在5分钟内),各变量单位见附件3。请建立数学模型研究下列问题:
- 对自建点数据与国控点数据进行探索性数据分析。
- 对导致自建点数据与国控点数据造成差异的因素进行分析。
- 利用国控点数据,建立数学模型对自建点数据进行校准。
2 涉及内容
2.1 涉及的技术内容
在本次实战的数据分析过程中,涉及以下技术内容:
(1)重复值的处理
(2)时间类型数据转换
(3)插值方法
(4)归一化
(5)标准化
(6)灰色关联
(7)回归模型的训练及评价
(8)各自变量重要度的评价
(9)NCA算法做特征选择
(10)模型在新数据集上预测
2.2 涉及的matlab函数
主要使用以下MATLAB功能实现:
(1)readtable
(2)unique
(3)ismissing
(4)table2array
(5)datenum
(6)interp1
(7)mapminmax
(8)mapstd
(9)fitrauto
(10)fsrnca
(11)setdiff
(12)predict
3 实战步骤
3.1 数据读取
读取数据,查看数据基本情况,
warning("off");
Data_1=readtable("附件1.csv");
Data_2=readtable("附件2.csv");
size(Data_1)
size(Data_2)
输出
3.2 去除重复值
去除时间戳重复的行,因为之后的插值和回归都属于函数问题,需保证一个时间戳只能对应一个y值。
[u_1,ia_1,ic_1]=unique(Data_1{:,end});
[u_2,ia_2,ic_2]=unique(Data_2{:,end});
u_Data_1=Data_1(ia_1,:);
u_Data_2=Data_2(ia_2,:);
size(u_Data_1)
siz