Advertisement

2019年全国研究生数学建模竞赛华为杯E题全球变暖求解全过程文档及程序

阅读量:

2019年全国研究生数学建模竞赛华为杯

E题 全球变暖

原题再现:

全球气候变暖的解释是由于温室效应不断积累所致【1,2】。事实上,由于人们焚烧化石燃料,如石油、煤炭等,或砍伐森林并将其焚烧时会产生大量的二氧化碳【3】,即温室气体,这些温室气体对来自太阳辐射的可见光具有高度透过性,而对地球发射出来的长波辐射具有高度吸收性,能强烈吸收地面辐射中的红外线,使得地球温度上升,即温室效应。由于存在温室效应,影响地气系统【1】吸收与发射的能量平衡,能量不断在地气系统累积,从而导致温度上升,造成全球气候变暖。许多科学家认为,全球变暖可能导致更多的极端气象的产生,导致全球降水量重新分配、冰川和冻土消融、海平面上升等威胁人类生存的因素。不过,虽然温室气体的浓度在不断上升,但自从进入21世纪以来,10年间全球全年平均气温上升率仅为0.03℃,几乎未变化,这种现象叫作Hiatus(全球变暖停滞状态)。正因为出现全球变暖停滞现象,使公众对全球变暖产生了怀疑【4】。 2019年1月美国2/3的地区变成了一个大冰窖,出现了“几十年一遇”的极度寒冷天气,成为有人怀疑全球变暖的依据之一。
导致分歧的原因在于观察问题的角度和范围。今年的夏天特别热或今年的冬天特别冷是地球上局地人们的直接感受,是一种天气现象。天气是一定区域短时段内的大气状态(如冷暖、风雨、干湿、阴晴等)及其变化的总称。而气候则是长时间内气象要素和天气现象的平均或统计状态,时间尺度为月、季、年、数年到数十年。气候是长时间的平均状态,在短时间内变化不大,所以人们一般感受不到。全球变暖是在气候尺度上看全球问题。从气候角度研究全球温度变化需要全球范围长时间的观测积累,但过去这方面的时空数据并不完整,给统计计算带来极大困难。不仅如此,海洋吸收热量对全球气候变化的影响很大【5,6】。观测发现海洋表面温度【2】的变化具有某种震荡特征,如年代际太平洋震荡【3】、厄尔尼诺现象【4】、拉尼娜现象【5】等。这些因素使得研究全球温度变化更加困难。
我们的命题宗旨是:利用现有的统计数据建立简化的气候模型和极端天气模型。希望你们所建立的模型区别于复杂的专业气候模型,有利于非专业人士理解和认识全球气候变化的态势,解释极端天气现象的发生,寻找、求证影响气候变化的因素,从而增强人们气候变化的意识,从现在做起、从自我做起的同时,督促决策者迅速制定应对气候变化的政策。
请仔细阅读附录中的有关文献,回答以下问题(注:由于气候变化涉及众多因素及数据,题目中所给出的因素及数据只是其中的一部分,请自行从参考文献或网上获取建模过程中其它数据,比如全球表面温度变化及大气层中二氧化碳浓度变化等数据):
(1)你们能否从加拿大各地天气变化的历史数据中挖掘出该地区温度的时空变化趋势?海洋表面温度历史数据中蕴含着什么样的规律?
(2)请你们建立一个刻画气候变化的模型对未来25年的气候变化进行预测,该模型至少需要考虑地球的吸热、散热以及海洋的温度变化【7】等要素?
(3)“极寒天气”是某地的天气现象,这种极端气象的出现,与气候变化有无关系?请建立相应的模型,并利用题目所提供的数据以及你能收集的数据说明:全球变暖和局地极寒现象的出现之间是否矛盾?
(4)请用通俗易懂的文字解释:“全球变暖了,某地今年的冬天特别冷”之间的关系。请用一个新概念替代“全球变暖”,来反映气候变化的趋势和复杂性?并给予解释。

名词解释:
1. 地气系统:把地面及大气看成一个整体。对此系统所计算出来的辐射平衡,称为地气系统辐射平衡,又称为地气系统辐射差额。 地气系统的辐射收入部分是地面和大气吸收的太阳辐射;支出部分为发射到宇宙空间去的地面和大气的长波辐射。
2. 海洋表面温度 (SST):指接近海洋表面的水温。
3. 太平洋年代际震荡(Interdecadal Pacific Oscillation):北太平洋所表现出的一种年代际时间尺度上的变化现象。
4. 厄尔尼诺现象又称厄尔尼诺海流:是太平洋赤道带大范围内海洋和大气相互作用后失去平衡而产生的一种气候现象。厄尔尼诺现象的基本特征是太平洋沿岸的海面水温异常升高,海水水位上涨,并形成一股暖流向南流动。
5. 拉尼娜现象:是赤道太平洋东部和中部海面温度持续异常偏冷的现象(与厄尔尼诺现象正好相反)。表现为东太平洋明显变冷,同时也伴随着全球性气候混乱,总是出现在厄尔尼诺现象之后。

整体求解过程概述(摘要)

本文主要针对加拿大气候变化数据进行量化分析,进而对未来全球平均气温进行预测,探索全球变暖与极端天气之间的相互关系,构建相应数学模型,并提出了减缓全球变暖趋势的建议。文章综合采用了模糊综合评价法、熵权法、时间序列模型、灰度关联度分析、基于 LSTM-ARIMA 的气温组合预测模型、复杂网络模型等经典方法来研究气温数据的量化分析相关问题。
针对问题一,在第一问中,依据地区将加拿大划分为五个地区,基于以上划分采用定量与定性相结合方法,探索其历史气温数据的时空变化趋势。首先绘制气温时间序列图,并采用BP突变点检验分析异常点;接下来构建ARMA模型对气温数据进行平稳性检验;最后运用模糊评价法对指标项打分,熵权法获得气温影响因子评分,计算系统权重值得出各个因素对于气温变化趋势的影响。结果表明在全球变暖的背景下,包含北极圈在内的全球多地气温普遍上升,出现极端高温天气,其中加拿大变暖速度显著高于全球平均水平,气候变化引发极端事件频发;对于第二问,为完成海洋表面温度的规律分析,采用复杂网络建模构建全球海洋气候的非线性和线性复杂网络模型并通过拓扑仿真方法对比两者的拓扑性质,利用度分布、聚类系数和介数等统计特征可视化海洋不同海域的能量传递等现象。结果表明高纬度地区的海表面温变化的复杂度低于低纬度地区。因为高纬度地区海表面温度的季节性更加明显,序列的规则性更强。相对来说季节性因素对低纬度地区海表面温度的影响不大。四季网络之间的演化从某种角度上体现了海温系统随季节动态变化的特征。
针对问题二,通过研究2008-2019年间全球平均气温值以及影响因素数据,运用LSTM-ARIMA气温组合预测算法,计算不同的气温影响因素权重,将碳排量、地球散热、降水、海洋温度变化、大气环流这 5个最高影响因素作为输入变量,全球平均气温值作为输出变量进行模型训练;通过组合模型预测方法确定参数,最后利用组合模型预测未来25年全球平均气温变化,结果表明未来全球变暖现象还将持续,但可能会出现短暂的局部降温情况,如在2027年出现一个小高峰,2022年和2033年出现小低谷,说明在这两个时间段全球平均气温可能会出现异常。
针对问题三,在第一问中,构建复杂网络模型,将全球各地区极端天气表示为复杂网络中的异常节点,通过查看异常节点中的网络性质是否正常对全球气候变化和极端气象之间的关系进行分析,探索气候变化是否对极端气象发生的严重程度及其发生概率和不确定性产生影响。结果表明极端气象的出现与气候变化相关,且全球气候变暖进一步增加了极端气象的出现;第二问以美国为局地极寒地区的典型代表,通过建立神经网络模型对是否发生局地极寒现象进行分析,对第一问结论做进一步验证,结果表明全球平均气温的上升对美国降雪量变化有正向影响,气温越高,降雪量越大。而全球平均气温对美国冬季平均气温又负向影响,即全球平均气温越高,美国冬季气温越低。综上,全球变暖和局地极寒现象并不矛盾,相反,两者之间恰恰有很强的相关性。
针对问题四,在第一问中,通过研究局地极寒事件发现,全球变暖造成北极升温和北极海冰融化,北极增温使极地和中纬度地区温差减少,极地高压对极涡的控制能力减弱,极涡较以往更容易携带冷空气南下。同时,北极海冰融化会加速北极升温,北极秋季海冰面积减少也会造成西风急流和经向风减弱,最终扩大了极地冷空气的影响。考虑到北极增温带来的“炸弹气旋”能够通过能量频散的形式影响欧亚大陆的环流形式,强大的西伯利亚高压给东亚带来更强劲的冷空气,结果导致中国遭遇强劲的寒潮。第二问中,本文以“热效应下的气候紊乱”来代替“全球变暖”概念。首先全球变暖是一个趋势,虽然太阳活动的减弱造成了短暂的全球变暖停滞状态,但改变不了全球升温的长期时间趋势,当前全球气温状况远比我们看到的升温速率快,“全球变热”仍是当代人急需解决的问题。全球变暖引发了地球气候系统的失衡,造成全球气候变化更加紊乱。

模型假设:

在建模的过程中,我们在不影响模型的可靠性和有效性的前提下,为了使模型更加简单明确。做出以下假设:
(1)通过查阅资料将加拿大整体划分为五个区域,分别为大西洋地区、中部地区、大草原地区、太平洋沿岸地区、北方地区;
(2)对于同一个城市的不同气温观测点,观测到的数据差别较小,故将其计作统一数据;
(3)在假设2的基础上,对于缺失的温度数据,缺测1-2天数据,用相邻日的数据平均值进行插补;缺测 3 天以上的数据,利用同期数据资料的多年平均值进行插补。
(4)所有的温度数据都是真实准确的,不存在错误和虚假数据。
(5)考虑到实际情况,假设海洋构建为无向无权的简单网络,这种网络的任何节点之间最多只能有一条边,并且不存在自环路。
(6)海洋网络中的边表征了不同海域之间温度变化在时间上的相似程度。
(7)海洋网络的节点代表海洋上的某块区域。

问题分析(部分):

问题一:
第一问:从加拿大各地天气变化的历史数据中挖掘出该地区温度的时空变化趋势。首先对从气候区、地形地貌、地区位置将加拿大整体划分为五个区域,接着在此基础上选取具有代表性的城市进行详细分析。本题的解题思路是将原来的加拿大各地区气温数据分解为四部分来看——趋势、周期、时期和不稳定因素,然后综合这些因素分析归纳出加拿大各地区温度的时空变化趋势。本文采用定性与定量分析相结合的方法来解题,具体步骤如下:
步骤一:首先从题目所给出的网址中下载加拿大天气变化历史数据,并对数据进行预处理,具体包括数据清洗、去噪等,对数据集进行特征提取,并结合天气状况的多变性和复杂性,对气温变化的相关影响因素进行整理。
步骤二:针对单一气候区,结合经济、人口、社会、环境等多方面因素选取具有代表性的城市地区,从时间性、周期性、季节性等多个角度研究天气变化规律。
步骤三:利用随机过程理论和数理统计方法绘制序列散点图,并添加趋势线以反映地区多年来气温长期变化趋势。然后利用BP突变点检验分析异常点,计算气温时序的变化速度,从而说明加拿大各地气温的时空变化规律。
步骤四:在步骤三的基础上,为防止出现“伪回归”的问题,对气温数据进行纯随机性和平稳性检验;然后利用ARIMA模型进行建模,接着计算模型自相关系数、偏自相关系数以及AIC、BIC指标值对模型参数进行定阶,最后对模型做出评价。
步骤五:针对以上分析结果,利用熵权法对影响气温的各种因素权重进行计算,并分析各个因素对于气温变化趋势的影响。
第二问:从海洋表面温度历史数据探寻规律。首先利用复杂网络理论构建了全球海洋气候的非线性和线性复杂网络模型,仿真对比了两者的拓扑性质。再利用度分布、聚类系数和介数等统计特征可视化海洋不同海域的能量传递等现象,分析和探索海洋气候的系统稳定性和季节性差异等规律。本题的解题步骤分四步: 步骤一:获取数据。利用网络爬虫从国家海洋信息中心上爬取2019年的全球日均海表面温度数据。 步骤二:数据预处理。将全球海洋进行固定尺度网格划分,均值化每个网格内的海表面温度。 步骤三:复杂网络建模。根据相似性方法来度量全球海洋不同海域之间的相似度,得到全球相似度矩阵,然后设定不同的阈值来构建网络,并做详细的拓扑分析。 步骤四:仿真实验与可视化分析。基于互信息和皮尔逊相关系数的网络节点度可视化SST数据在地球上的离散分布情况。利用度分布、聚类系数和介数等统计特征分析SST差异。
问题二:
建立一个刻画气候变化的模型,并对未来25年的气候变化进行预测。对于问题二,可以分为两步来进行操作,首先利用基于LSTM-ARIMA的气温组合预测模型对加拿大地区各地的气温变化进行分析,其次,借助以上分析以及建立相应的模型对全球未来25年的气候变化进行预测。本题的解题步骤分为六步: 步骤一:获取所需的气温变化数据,对数据进行基本统计和可视化展示; 步骤二:对数据集的影响因素进行特征提取,并将数据分为训练集和测试集两部分; 步骤三:根据问题一得到的分析结果,对训练集数据采用五折交叉验证,以避免过拟合现象。将特征提取出的地球吸热、散热、降水、大气环流以及海洋温度变化这5个因素作为输入变量(输入特征),当前时刻t的温度作为输出变量(标签); 步骤四:建立LSTM模型和ARIMA模型,先利用ARIMA模型对数据集进行预测,再利用LSTM网络依次对ARIMA模型的残差序列进行预测; 步骤五:将ARIMA模型预测结果与LSTM对残差的预测结果进行相加,调整参数,得到LSTM-ARIMA组合模型的最终预测结果。 步骤六:综上,对组合模型进行评价。
问题三:
第一问:查询和收集网上相关信息以及查阅相关文献,解释极端天气现象的产生,并探讨其与气候变化的关系。问题三第一问的主旨是探索极端气象与气候变化之间的相关性,本题的解题思路分两步: 步骤一:根据题目所给规则:因为“极寒天气”是某地的天气现象,并没有给定指定地区,故实验以历史最热月份、历史最热日、历史最干燥 5 天、历史最潮湿 5天等因素作为评价是否发生局地极端气候事件指标,获取全球不同地区气温数据和极端天气相关数据。 步骤二:构建复杂网络模型,将极端天气表示为复杂网络中的异常节点,探索全球不同地区气温变化与极端气象出现之间的关系,探索气候变化是否对极端气象发生的严重程度及其发生概率和不确定性产生影响。 第二问:根据我们上述收据的数据合理建立数学模型,解释全球变暖和局部极寒现象的出现是否矛盾。问题三第二问的主旨是探究全球变暖与局地极寒现象是否矛盾,是对第一问数据的进一步运用。本题的解题思路分两步: 步骤一:根据问题一中得到的猜想:极端气象的出现与气候变化相关,本文以具体城市为例对以上猜想做进一步验证。 步骤二:考虑到美国频繁遭受极寒袭击,本文决定以美国为案例,以年降雪量和冬季平均气温作为是否发生局地极寒现象指标,探究其与气温之间的关系,并提出两种假设:
a.全球年平均气温对美国年降雪量有正向影响;
b.全球年平均气温对美国冬季平均气温有负向影响。
问题四:
第一问:用通俗易懂的文字解释:“全球变暖了,某地今年的冬天特别冷”之间的关系。本文以局地极寒事件、全球变暖为切入点,建立全球变暖而局地极寒的理论模型。本小问的解题步骤可以分为三步: 步骤一:查询和收集网上相关信息以及查阅相关文献,寻找全球变暖对地球造成了哪些影响,尤其是引发了哪些天气事件以及如何引发的; 步骤二:查找资料,分析全球局地极寒事件的直接诱因、共同原因; 步骤三:由前节研究结论可知,极寒天气与全球变暖存在统计学意义上的关联,结合现有理论进一步深入挖掘全球变暖与极寒天气的关联性。 第二问:给“全球变暖”下个新定义,从而更好地反映气候变化的趋势和复杂性。本小问的解题步骤可分为三步 步骤一:搜寻资料,寻找目前是否有学者提出替代“全球变暖”的新概念,以提供借鉴和激发思考; 步骤二:深入分析并总结出全球变暖的趋势和特性。 步骤三:为了更好地反映气候变化的趋势性和复杂性,在现有理论的基础之上,用一个全新的概念“热效应下的气候紊乱”替代“全球变暖”。

论文缩略图(全部):

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码(部分代码):

复制代码
    import pandas as pd 
    import pandas_datareader 
    import datetime 
    import matplotlib.pylab as plt 
    import seaborn as sns 
    from matplotlib.pylab import style 
    from statsmodels.tsa.arima_model import ARIMA 
    from statsmodels.graphics.tsaplots import plot_acf, plot_pacf 
    import numpy as np 
    import pandas as pd 
    from pandas import Series, DataFrame 
    import statsmodels.api as sm 
    style.use('ggplot')     
    plt.rcParams['font.sans-serif'] = ['SimHei']  
    plt.rcParams['axes.unicode_minus'] = False  
    file = r'E:/shumo/大西洋/TEST.xlsx' 
    fh = pd.read_excel(file, parse_dates=[0]) 
    date=list(fh['date']) 
    max_temp=list(fh['max_temp']) 
    min_temp=list(fh['min_temp']) 
    # mean_temp=list(fh['mean_temp']) 
    save_file = pd.DataFrame({'真实值':max_temp,'预测值':min_temp}) 
    tem_train=save_file.loc[:] 
    tem_train.index = date 
    tem_train.plot(figsize=(35,12)) 
    plt.legend(bbox_to_anchor=(1, 0.5),fontsize= 28.0)#可视化展示 
    plt.title("气温变化图",size=40) 
    plt.xlabel("日   
    期",size=25) 
    plt.ylabel("温   
    度",size=25) 
    plt.xticks(rotation=45,size=20) 
    plt.yticks(size=20) 
    sns.despine() 
    plt.savefig(filename="name",format="jpg") 
    tem_diff = tem_train.diff() 
    tem_diff = tem_diff.dropna() 
    plt.figure(figsize=(20,5))#差分序列 
    plt.plot(tem_diff) 
    plt.title('一阶差分') 
    plt.show() 
    tem_train['diff_1'] =tem_train['mean_temp'].diff(1) 
    # tem_train['diff_1'] =tem_train['min_temp'].diff(1) 
    tem_train['diff_2'] = tem_train['diff_1'].diff(1) 
    tem_train.plot(subplots=True, figsize=(18, 12)) 
    n_sample = fh.shape[0] 
    # save_file 
    n_sample = save_file.shape[0] 
    n_train=int(0.95*n_sample)+1 
    n_forecast=n_sample-n_train 
    ts_train =tem_train[:n_train]["diff_2"] 
    ts_test = tem_train[n_train:]["diff_2"] 
    def tsplot(y, lags=None, title='', figsize=(14, 8)): 
    fig = plt.figure(figsize=figsize) 
    layout = (2, 2) 
    ts_ax   
    = plt.subplot2grid(layout, (0, 0)) 
    hist_ax = plt.subplot2grid(layout, (0, 1)) 
    acf_ax  = plt.subplot2grid(layout, (1, 0)) 
    pacf_ax = plt.subplot2grid(layout, (1, 1)) 
    y.plot(ax=ts_ax, color='b') 
    ts_ax.set_title(title) 
    y.plot(ax=hist_ax, kind='hist', bins=25,color='b',edgecolor = 'black') 
    hist_ax.set_title('Histogram') 
    smt.graphics.plot_acf(y.fillna(0), lags=lags, ax=acf_ax) 
    smt.graphics.plot_pacf(y.fillna(0), lags=lags, ax=pacf_ax) 
    [ax.set_xlim(0) for ax in [acf_ax, pacf_ax]] 
    sns.despine() 
    fig.tight_layout() 
    return ts_ax, acf_ax, pacf_ax 
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

全部评论 (0)

还没有任何评论哟~