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

相关文章

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

使用Go语言开发一个命令行文件管理工具

《使用Go语言开发一个命令行文件管理工具》这篇文章主要为大家详细介绍了如何使用Go语言开发一款命令行文件管理工具,支持批量重命名,删除,创建,移动文件,需要的小伙伴可以了解下... 目录一、工具功能一览二、核心代码解析1. 主程序结构2. 批量重命名3. 批量删除4. 创建文件/目录5. 批量移动三、如何安

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep