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

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

C语言中%zu的用法解读

《C语言中%zu的用法解读》size_t是无符号整数类型,用于表示对象大小或内存操作结果,%zu是C99标准中专为size_t设计的printf占位符,避免因类型不匹配导致错误,使用%u或%d可能引发... 目录size_t 类型与 %zu 占位符%zu 的用途替代占位符的风险兼容性说明其他相关占位符验证示

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

RabbitMQ消费端单线程与多线程案例讲解

《RabbitMQ消费端单线程与多线程案例讲解》文章解析RabbitMQ消费端单线程与多线程处理机制,说明concurrency控制消费者数量,max-concurrency控制最大线程数,prefe... 目录 一、基础概念详细解释:举个例子:✅ 单消费者 + 单线程消费❌ 单消费者 + 多线程消费❌ 多

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

Go语言并发之通知退出机制的实现

《Go语言并发之通知退出机制的实现》本文主要介绍了Go语言并发之通知退出机制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、通知退出机制1.1 进程/main函数退出1.2 通过channel退出1.3 通过cont

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

Olingo分析和实践之EDM 辅助序列化器详解(最佳实践)

《Olingo分析和实践之EDM辅助序列化器详解(最佳实践)》EDM辅助序列化器是ApacheOlingoOData框架中无需完整EDM模型的智能序列化工具,通过运行时类型推断实现灵活数据转换,适用... 目录概念与定义什么是 EDM 辅助序列化器?核心概念设计目标核心特点1. EDM 信息可选2. 智能类