R语言数据分析案例32-针对芬兰污染指数的分析与考察

本文主要是介绍R语言数据分析案例32-针对芬兰污染指数的分析与考察,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、 研究背景及意义

近年来,随着我国科技和经济高速发展,人们生活质量也随之显著提高。但是, 环境污染问题也日趋严重,给人们的生活质量和社会生产的各个方面都造成了许多不 利的影响。空气污染作为环境污染主要方面,更是严重危害着人们身体健康,为有效地改善人们生活环境,开展大气污染防治工作刻不容缓。目前,空气质量的监测技术日渐完善,自2012年之后全国大部分城市都已先后建成了联网的空气质量监测站点,监测目标也由原来的三项污染物增加到现在的六项污染物,全覆盖的监测网络已 基本形成,也为大气环境污染防治措施有效制定提供了数据基础。目前,对于空气质 量状况的研究多集中在监测、影响因素研究和预测等方面,尤其是开展大气环境空气 质量预测研究具有重要现实意义。

二、研究现状

关于空气质量指数的影响因素,直观上是空气中六种污染物浓度。但是空气污染 是一个复杂的现象,污染物浓度的变化会受到许多因素的影响。一方面是污染物排放 影响,如车辆尾气排放,工业生产中废气排放,垃圾焚烧和居民取暖等。另一方面受 当地地形地貌、人口发展密度及气象条件等影响。相关因素对空气质量影响强度的评估也有许多方法,最常见的有图表相关分析,协方差及协方差矩阵,相关系数及互信 息数等等。

空气质量预测方法有单一模型预测和混合模型预测两种分类,单一模型预测方法 包括线性预测和非线性预测等。主要有自回归模型、移动平均模型和自回归移动平 均模型等。非线性预测方法有模糊逻辑法、空间相关法、人工神经网络等,其中模糊 逻辑法利用大量历史数据和专家经验建立模型逼近非线性动态变化,但该方法学习能 力弱,预测精度不够。空间相关法运用几个监测点历史数据的相关性建立模型进行预测。。。。

三、理论方法

对于时间序列数据,可以拟合多种模型,根据不同的时间序列数据可以拟合不同的模型,以下主要介绍ARIMA模型。对于非平稳序列,一般要进行差分运算,差分运算具有强大的确定性信息提取能力,经过差分运算后的序列会显示出平稳序列的性质,这时称这个非平稳序列称为差分平稳序列。对差分平稳序列可以使用ARIMA模型进行拟合。具有以下结构的模型称为ARIMA模型(自回归移动平均模型),简称为ARIMAp,d,q)模型。。。。

四、实证分析

本文所运用到的数据来源于全球暖化数据集中世界主要国家空气污染指数表(年)的数据,本文主要是针对芬兰的空气污染指数进行分析和预测,在处理数据时,将特征进行了筛选,最终选择了氮氧化物、PM2.5PM10等特征,原始数据展示如下:

数据和代码

报告代码和数据

首先,读取数据,查看数据属性:

从图三可以看出,对数据进行了描述性统计,其中氮氧化物的最小值为53.01,最大值为130.93PM2.5的最小值为55.82,最大值为175.44PM10指数的最小值为58.25,最大值为175.44。接下来分别画出三个指标的条形图,如下:

###画出柱状图
###氮氧化物
KQWR_Emi<-KQWR_data$EmiIndex_2000
KQWR_Emi
barplot(KQWR_Emi,xlab="年份",ylab="排放指数",col="pink",main="氮氧化物排放指数",border="blue")###PM2.5
PM2.5<-KQWR_data$PM2.5
PM2.5
barplot(PM2.5,xlab="年份",ylab="排放指数",col="red",main="PM2.5排放指数",border="green")

 

从上面三个指标的条形图可以看出,氮氧化物、PM2.5以及PM10随着时间的变化但是在逐步下降,这也归功于世界各地的节能减排措施的执行,虽然PM2.5PM10在后几年有小幅的上升但是总体趋势还是逐渐下降的。随后画出氮氧化物的时序图,如下: 

从上面的氮氧化物排放指数时序图可以看出,仅氮氧化物这一单单指标的趋势是大幅下降的,从1990年的125下降到2017年的60以下。在可视化之后,随后进行模型的构建,但是在构建模型之前,还需要对序列数据进行纯随机性检验,具体结果如下:

#白噪声检验
for(i in 1:3) print(Box.test(TS_KQWR_Emi,type = "Ljung-Box",lag=6*i))###非白噪声,可建模#绘制自相关图和偏自相关图
par(mfrow=c(1,2))
acf(TS_KQWR_Emi,lag=12)
pacf(TS_KQWR_Emi,lag=12)

 

从以上结果可以看出,无论是6阶、12阶还是18阶的P值均很小很小,故我们有理由在5%的显著性水平下,拒接原假设。。。

首先画出该序列的自相关和偏自相关图:

随后进行ADF检验具体准确的查看其平稳程度

随后进行定阶处理下面进行自动定阶的函数,计算得到模型应该采用ARIMA(0,1,1),拟合得到模型系数:

# 差分后的自相关和偏自相关图
par(mfrow=c(1,2))
acf(diff.TS_KQWR_Emi,main='差分后acf',lag.max = 12)
pacf(diff.TS_KQWR_Emi,main='差分后pacf',lag.max = 12)###自动定阶
auto.arima(TS_KQWR_Emi)###模型拟合
TS_KQWR_Emi.fit<-auto.arima(TS_KQWR_Emi)
TS_KQWR_Emi.fit 

在模型定阶和拟合之后,继续模型选择:

随后查看序列的正态分布情况

 下面进行模型的残差检验:

###残差检验
Box.test(TS_KQWR_Emi.fit $residuals,type = "Ljung-Box")

从残差结果显示,P值为0.8188,显然大于0.05,故在显著性水平5%下,没有理由拒绝原假设。。。。接下来进行最终的预测,本文预测h=5,表明预测5年芬兰的空气污染指数(氮氧化物)的污染指数,具体结果如下:


#模型预测
per_TS_KQWR_Emi<-forecast(TS_KQWR_Emi.fit ,h=5)
per_TS_KQWR_Emi
plot(per_TS_KQWR_Emi)

无论是从上面的具体结果还是可视化图像,都可以看出,其预测的结果随着时间的变化是逐渐下降的,最终在2022年氮氧化物的污染指数为38.577 

五、结论

本文对数据进行了预处理以及相关分析。首先,对数据进行了数据指标的整合处理,保证模型可以更好地对数据进行学习。其次,对原始数据进行可视化并分析其趋势,随后在建模前进行相应的检验工作,最终进行建模分析,发现RIMA模型对于单一序列的线性拟合效果较好。。。。。

参考文献

  1. 杨宁,李双金,王明毅,冀德刚.基于ARIMA模型的PM_(10)的预测与分析[J].农业灾害研究,2015,5(07):34-35+39.DOI:10.19383/j.cnki.nyzhyj.2015.07.015.
  2. 饶运章,徐水太,熊灵燕.基于ARIMA模型的矿区重金属污染时间序列预测[J].金属矿山,2010(06):142-146.

创作不易,希望大家多点赞关注评论!!!(类似代码或报告定制可以私信)

这篇关于R语言数据分析案例32-针对芬兰污染指数的分析与考察的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1083960

相关文章

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑

Spring、Spring Boot、Spring Cloud 的区别与联系分析

《Spring、SpringBoot、SpringCloud的区别与联系分析》Spring、SpringBoot和SpringCloud是Java开发中常用的框架,分别针对企业级应用开发、快速开... 目录1. Spring 框架2. Spring Boot3. Spring Cloud总结1. Sprin

Spring 中 BeanFactoryPostProcessor 的作用和示例源码分析

《Spring中BeanFactoryPostProcessor的作用和示例源码分析》Spring的BeanFactoryPostProcessor是容器初始化的扩展接口,允许在Bean实例化前... 目录一、概览1. 核心定位2. 核心功能详解3. 关键特性二、Spring 内置的 BeanFactory