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

相关文章

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java