python数据分析综合项目--空气质量指数分析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python数据分析综合项目--空气质量指数分析相关的知识,希望对你有一定的参考价值。
参考技术A 近年来,我国的环境问题比较严重,很多城市出现了雾霾天气,当然也有很多城市空气依旧清新,为了研究具体的空气环境城市分布,我们采用了假设检验以及线性回归的思想对AQI(空气质量指数)进行分析和预测,其中AQI的值越大,表示空气质量越差,AQI值越小,表明空气质量越好。1.列出空气质量优秀/较差的五个城市
2.全国空气质量分布情况
3.临海城市和内陆城市的空气质量对比
4.影响空气指数的因素
5.空气质量均值验证
City 城市名
AQI 空气质量指数
Precipitation 降雨量
GDP 城市生产总值
Temperature 温度
Longitude 经度
Latitude 纬度
Altitude 海拔高度
PopulationDensity 人口密度
Coastal 是否沿海
GreenCoverageRate 绿化覆盖率
Incineration(10,000ton) 焚烧量(10000吨)
在进行数据分析之前,我们对数据集进行观察并对其中的缺失值、重复值、异常值进行处理
我们发现降雨量数据中包含了4个缺失值,为了保证数据的精确,我们查一下降雨量的数据分布
很明显的呈现右偏分布,因此采用平均数来替代缺失值并不妥,我们这里用中位数来代替
GDP属性中检测出8条异常值,我们这里采取用极端值替换的方式,将异常值替换成最大值
数据集处理完毕之后,我们开始进行数据分析
按照AQI降序排列,选出排名前五以及后五的城市,进行可视化,结果如下
结论:空气质量较好的城市为韶关市、南平市、梅州市、基隆市、三明市,空气质量堪忧的城市分别为焦作市、锦州市、保定市、朝阳市、北京市
这里我们将AQI指数分为六个等级,并根据等级统计全国空气质量的等级情况
我们再用散点图绘制下全国的空气质量分布
结论:我国城市的空气质量集中在一级、二级和三级,高污染城市比例较低;从地理位置来看,西部城市空气质量优于东部城市,南部城市优于北部城市。
根据上面的结论我们发现,仿佛临海城市的空气质量普遍高于内陆地区,那么这个结论是否是真的呢?还需要进一步验证。
首先,我们来统计下不同地理环境的城市数量
第二步,绘制临海和内陆城市的AQI分布图
我们发现内陆城市AQI集中分布在50-100区间内,而沿海城市AQI集中分布在0-50区间,在此样本中,沿海的AQI分布低于内陆城市,但是这毕竟是样本,无法推测出总体分布情况,还需进一步探测。
第三步,统计AQI均值并绘制分布密度图
第四步,差异检验,查看内陆沿海AQI均值分布是否显著
我们先假设内陆城市和沿海城市的平均值相同
结果得出支持的概率为0.006,远低于0.05,因此我们否定原假设,选择备择假设,即内陆城市和沿海城市的平均值不相同
结论:经过分析,我们发现有超过99%的概率可以证明临海城市空气质量优于内陆城市的空气质量。
为了探究影响空气质量的具体因素,我们需要计算出两个变量之间的相关系数,以此进行判断,这里采用热力图进行可视化操作。
结论:从显示结果看出,AQI主要受降雨量和纬度的影响,其中降雨量越多,空气质量越好(0.4);纬度越低,空气质量越好(-0.55)
当然,从整个图片来看,也能发现很多变量之间的关系,比如GDP与焚烧量的正相关系数达到了0.9,温度与纬度的负相关系数达到了-0.81等。
传闻空气质量均值在71左右,这个消息是否是准确的呢?我们进行一次验证。
首先计算样本的均值
结果显示为75.334
那么总体的均值是否为71呢?这里先假设总体的均值为71,进行t检验
结论:可以看出,偏离均值1.81倍的标准差,而且p值大于0.05,我们接受原假设(即空气质量均值在71左右)另外,我们还可以计算出在置信度为95%时,空气质量均值的置信区间为70-80。
Python 多元线性回归
分析目的
分析空气中主要污染物浓度与空气指数之间的关系
分析数据
天气污染物浓度的数据集,该数据集源自天气后报网站上爬取的数据,为北京2013年10月28日到2016年1月31日的空气污染物浓度的数据。包括空气质量等级、AQI指数和当天排名。
import pandas as pd import numpy as np import matplotlib.pyplot as plt %matplotlib inline import statsmodels.api as sm
线性回归
1.数据预处理
data = pd.read_csv("beijing.csv",index_col = 0) data.head()
X = data.iloc[:,2:8] X = sm.add_constant(X) y = data.iloc[:,0] print(X.head())
2.建立模型
model1 = sm.OLS(y,X) #建立模型 result = model1.fit() #训练模型 print(result.summary())
result.f_pvalue #检验线性回归关系显著性
result.params #回归系数
改进模型
由于So2与Co的p值大于0.05,所以排除这两个变量,重新建立模型
data = pd.read_csv("beijing.csv",index_col = 0) data.head()
X = data.iloc[:,[2,3,5,7]] X = sm.add_constant(X) y = data.iloc[:,0] print(X.head())
model2 = sm.OLS(y,X) #建立模型 result = model2.fit() #训练模型 print(result.summary())
以上是关于python数据分析综合项目--空气质量指数分析的主要内容,如果未能解决你的问题,请参考以下文章