R语言数据分析案例39-合肥市AQI聚类和多元线性回归

news2024/11/20 13:16:41

一、研究背景

随着全球工业化和城市化的迅速发展,空气污染问题日益凸显,已成为影响人类健康和环境质量的重大挑战。空气污染不仅会引发呼吸系统、心血管系统等多种疾病,还会对生态系统造成不可逆转的损害。因此,空气质量的监测和治理成为各国政府和学术界关注的重点。

二、研究意义

研究合肥市空气质量指数(AQI)及其影响因素,不仅有助于理解空气污染的主要来源和变化趋势,还可以为政府制定有效的污染控制政策提供科学

依据。通过构建预测模型和进行实证分析,可以更准确地预估未来空气质量状况,从而采取预防性措施,减少污染物排放,提升城市居民的生活质量和健康水平。。。。。

三、实证分析

首先读取数据集展示数据前五行 

数据和代码

报告代码数据

aqi_data <- read.csv("合肥四月份AQI(1).csv")
head(aqi_data ,5)
# 检查数据结构
str(aqi_data)

上面展示了2024年4月1日合肥市在不同时间段的空气质量指数(AQI)及其相关污染物浓度数据,包括PM2.5、PM10、SO2、CO、NO2、O3,以及气温和湿度。

随后检查数据结构

发现包括字符串和数值型数据

接下来检查缺失值,并预处理

 

结果不存在缺失值,继续进行分析

接下来对数据进行描述性统计

图展示了各污染物和气象因素的描述性统计分析结果,包括AQI、PM2.5、PM10、SO2、CO、NO2、O3的最小值、最大值、中位数、均值及四分位数等统计信息 

接下来可视化数据集

# 绘制箱型图
ggplot(aqi_data, aes(x = city, y = AQI)) + 
  geom_boxplot() + 
  labs(title = "城市空气质量指数(AQI)箱型图", x = "城市", y = "AQI") + 
  theme_minimal() + 
  theme(plot.title = element_text(hjust = 0.5))

 

该图展示了合肥市空气质量指数(AQI)的箱型图,直观地显示了AQI值的分布情况。箱型图中间的线表示中位数,图中显示AQI的中位数大约在60左右。。。

ggplot(aqi_data, aes(x = datetime, y = AQI)) + 
  geom_line(color = "blue") + 
  labs(title = "合肥四月份空气质量指数(AQI)变化", x = "时间", y = "AQI") + 
  theme_minimal() + 
  theme(plot.title = element_text(hjust = 0.5))

 

该图展示了合肥市四月份空气质量指数(AQI)随时间的变化趋势。这是一张时间序列折线图,横轴表示时间,纵轴表示AQI值。图中显示,整个四月份AQI值波动明显,有多个高峰和低谷。 

相关系数热力图

ggplot(melted_cor_matrix, aes(x = Var1, y = Var2, fill = value)) +
  geom_tile(color = "white") +
  scale_fill_gradient2(low = "blue", high = "red", mid = "white", midpoint = 0, limit = c(-1, 1), space = "Lab", name = "相关系数") +
  labs(title = "空气质量相关系数热力图", x = "变量", y = "变量") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5))

 热力图中,深红色表示高度正相关,深蓝色表示高度负相关,而浅色表示低相关或无关。图中显示,AQI与PM2.5和PM10的相关性最高,相关系数接近1,这表明颗粒物是影响空气质量的重要因素。。。

使用K-means聚类分析空气质量数据

 

图展示了合肥市四月份空气质量的K-means聚类分析结果,通过不同颜色的线条表示不同聚类(cluster)的AQI变化趋势。图中显示,AQI数据被分为六个聚类,每个聚类代表了不同时间段内相似的AQI模式。可以看到。。。

构建线性回归模型

# 构建线性回归模型
lm_model <- lm(AQI ~ PM25 + PM10 + SO2 + CO + NO2 + O3, data = aqi_data)
# 显著性检验
summary(lm_model)

 

 模型公式为AQI ~ PM2.5 + PM10 + SO2 + CO + NO2 + O3。

模型的R平方值为0.948,说明该模型可以解释94.8%的AQI变化。

结果表明,Durbin-Watson统计量为0.56543,p值小于2.2e-16,表明残差存在显著的正自相关性

残差图

# 绘制模型诊断图
par(mfrow=c(2,2))
plot(lm_model)

 

。。。总体来看,图中显示了一些异常值和高杠杆值点

# 绘制实际值与预测值对比图
ggplot(aqi_data, aes(x = datetime)) + 
  geom_line(aes(y = AQI, color = "实际值")) + 
  geom_line(aes(y = predicted_AQI, color = "预测值")) + 
  labs(title = "合肥四月份空气质量实际值与预测值对比", x = "时间", y = "AQI") + 
  scale_color_manual(values = c("实际值" = "blue", "预测值" = "red")) + 
  theme_minimal()+
  theme(plot.title = element_text(hjust = 0.5))

该图展示了合肥市四月份空气质量实际值与预测值的对比。图中蓝色线表示实际值,红色线表示预测值。可以看到,预测值与实际值总体趋势一致,特别是在4月1日和4月22日的高峰处。。。。 

四、结论

本研究通过对2024年4月份合肥市空气质量指数(AQI)及相关污染物数据的分析,发现AQI与PM2.5和PM10之间存在显著的正相关关系,表明颗粒物是影响空气质量的主要因素。。。。本研究为合肥市空气质量的监测和治理提供了重要参考,建议进一步加强对颗粒物和其他污染物的控制,以改善空气质量。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1881716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第3章:数据结构

树 对稀疏矩阵的压缩方法有三种&#xff1a; 1、三元组顺序表 2、行逻辑连接的顺序表 3、十字链表 同义词才会占用同个位置&#xff0c;从而需要进行多次比较。这些关键字的第一个可以不是e的同义词&#xff0c;可以是排在e之前的关键字正好占了那个位置。 Dijkstra算法主要特点…

【想起就补】整理了一些SSH中常用的命令

希望文章能给到你启发和灵感&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏 支持一下博主吧&#xff5e; 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、常用命令类型2.1 远程登录相关2.2 文件操作命令2.3 权限和所有权操作命令2.4 文…

强化学习的数学原理:课程梗概与基本概念

Overview 从上图可以看见&#xff0c;整个强化学习被分为两个板块&#xff1a;一个是基础的工具&#xff0c;一个是基本的算法和方法。 基础工具包括&#xff1a;基本的概念、贝尔曼公式、贝尔曼最优公式。 算法和方法包括&#xff1a;值迭代、策略迭代、蒙特卡洛方法、时序差…

【初阶数据结构】深入解析队列:探索底层逻辑

&#x1f525;引言 本篇将深入解析队列:探索底层逻辑&#xff0c;理解底层是如何实现并了解该接口实现的优缺点&#xff0c;以便于我们在编写程序灵活地使用该数据结构。 &#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#…

四.iOS核心动画 - 图层的视觉效果

引言 在前几篇博客中我们讨论了图层的frame,bounds,position以及让图层加载图片。但是图层事实上不仅可以显示图片&#xff0c;或者规则的矩形块&#xff0c;它还有一系列内建的特性来创建美丽优雅的页面元素。在这篇博客中我们就来探索一下CALayer的视觉效果。 视觉效果 图…

喜讯!安全狗荣获“2023年网络安全技术支撑优秀单位”称号

6月6日&#xff0c;由中共厦门市委网络安全和信息化委员会办公室&#xff08;以下简称“厦门市委网信办”&#xff09;主办的2023年网络安全技术支撑优秀单位颁奖仪式在厦门成功举行。 作为国内云原生安全领导厂商&#xff0c;安全狗受邀出席此次活动。 会上&#xff0c;安全狗…

DEBOPIE框架:打造最好的ChatGPT交易机器人

本文介绍了如何利用 DEBOPIE 框架并基于 ChatGPT 创建高效交易机器人&#xff0c;并强调了在使用 AI 辅助交易时需要注意的限制以及操作步骤。原文: Build the Best ChatGPT Trading Bots with my “DEBOPIE” Framework 如今有大量文章介绍如何通过 ChatGPT 帮助决定如何以及在…

做工作室项目重要还是运营重要

做工作室项目重要还是运营重要&#xff0c;先说答案&#xff0c;项目好是基础&#xff0c;然后才能谈运营&#xff01; 90%的工作室活不过一年&#xff0c;这句话是有数据支撑的&#xff0c;因为就工商注册的公司而言&#xff0c;一年内倒闭的就是这么个数据&#xff0c;所以工…

在AvaotaA1全志T527开发板上烧录AvaotaOS固件

烧写到 TF 卡上 材料准备 首先需要准备的材料有: SD-Card Formatter&#xff1a;balenaEtcherAvaota Pi - A1开发板 x1TF-Card ( 不小于4Gb ) x112V-DC电源适配器 x1TF读卡器 x1USBTTL Splitter x1&#xff08;可选&#xff09;HDMI 采集卡 x1 &#xff08;可选&#xff09;…

input调用手机摄像头实现拍照功能vue

项目需要一个拍照功能&#xff0c;实现功能如下图所示:若使用浏览器则可以直接上传图片&#xff0c;若使用手机则调用手机摄像头拍照。 1.代码结构 <!--input标签--> <input ref"photoRef"type"file"accept"image/*"capture"envir…

DM表级触发器

可以理解为行变动级 触发体中写逻辑 这是表修改时调用存储过程 感谢大哥分享: https://blog.csdn.net/WuLex/article/details/83181449 感谢大哥分享: https://blog.csdn.net/ChennyWJS/article/details/131913198

前置章节-熟悉Python、Numpy、SciPy和matplotlib

目录 一、编程环境-使用jupyter notebook 1.下载homebrew包管理工具 2.安装Python环境 3.安装jupyter 4.下载Anaconda使用conda 5.使用conda设置虚拟环境 二、学习Python基础 1.快排的Python实现 (1)列表推导-一种创建列表的简洁方式 (2)列表相加 2.基本数据类型及运…

数学建模比赛介绍与写作建议

0 小序 本文的写作起因是导师要求我给打算参加相关竞赛的师弟们做一次讲座和汇报。我梳理了一个ppt提纲&#xff0c;并经过整理&#xff0c;因此有了这篇文章。 我打算从数学建模论文写作格式和写作技巧入手&#xff0c;接着介绍数学建模常用的数学模型&#xff0c;最后提出一…

MSPM0G3507——串口

配置&#xff1a; 主函数: #include "ti_msp_dl_config.h"volatile uint8_t gEchoData 0; int main(void) {SYSCFG_DL_init();NVIC_ClearPendingIRQ(UART_0_INST_INT_IRQN); //先清除中断&#xff0c;防止直接进中断NVIC_EnableIRQ(…

【前端】从零开始学习编写HTML

目录 一、什么是前端 二、什么是HTML 三、HTML文件的基本结构 四、HTML常见标签 4.1 注释标签 4.2 标题标签 4.3 段落标签 4.4 换行标签 4.5 格式化标签 4.6 图片标签 4.7 超链接标签 4.8 表格标签 4.9 列表标签 4.10 表单标签 &#xff08;1&#xff09;form标…

ThreeJS-3D教学十二:ShaderMaterial

一、首先 Shader 是做什么的 Shader 可以自定义每个顶点、每个片元/像素如何显示&#xff0c;而控制顶点和片元显示是通过设置 vertexShader 顶点着色器和 fragmentShader 片元着色器&#xff0c;这两个着色器用在 ShaderMaterial 和 RawShaderMaterial 材质上。 我们先看一个例…

SpringMVC系列八: 手动实现SpringMVC底层机制-第二阶段

实现任务阶段三 &#x1f34d;从web.xml动态获取zzwspringmvc.xml 说明: 前面我们加载zzwspringmvc.xml是硬编码, 现在做活. 从web.xml动态获取 示意图[分析说明] 1.ZzwDispatcherServlet在创建并初始化ZzwWebApplicationContext时, 动态地从web.xml中获取到spring配置文…

Linux中定位JVM问题常用命令

查询Java进程ID #ps axu | grep java #ps elf | grep java查看机器负载及CPU信息 #top -p 1(进程ID) #top (查看所有进程)获取CPU飙升线程堆栈 1. top -c 找到CPU飙升进程ID&#xff1b; 2. top -Hbp 9702(替换成进程ID) 找到CPU飙升线程ID&#xff1b; 3. $ printf &quo…

Redis 必备的原理知识要点

1、为什么使用缓存&#xff1f; 1、数据库太慢-无法使用 2、高性能 3、高并发 4、热点高频数据 2、redis合适的场景&#xff1f; 1、数据类型 5种&#xff1b; 2、Bitmap&#xff1b; 3、HyperLogLog&#xff1b; 结合自身项目讲解redis的使用&#xff1a; 1、token&a…

考研数学|考到110到底有多难?

考研数学一要考到110分&#xff0c;确实不容易。数学一的难度在于它涉及的知识点多&#xff0c;包括高等数学、线性代数和概率论。这些内容不仅要求你理解深刻&#xff0c;还要能熟练运用。特别是高等数学&#xff0c;它在考试中的分值占比最高&#xff0c;也是最难的部分。 数…