数学建模社区-数学中国
标题: AQI空气质量分析与预测的相关资料 [打印本页]
作者: 1047521767 时间: 2021-10-15 10:46
标题: AQI空气质量分析与预测的相关资料
AQI分析与预测AQI全称是Air Quality Index,指空气质量指数,用来衡量空气清洁或者污染的程度,值越小,表示空气质量越好。. N, m. z+ D+ N/ M. a4 d; Q
本文的分析目标是:
9 J; V. q0 D3 W/ C一、描述性统计
: L( X. `0 C' E% U6 o& ^那些城市的空气质量较好/较差?空气质量在地理位置分布上,是否具有一定的规律?二、推断统计) M8 `6 O" N' E) h* u
临海城市的空气质量是否优于内陆城市?三、相关系数分析
- p1 T2 c# [6 Y& @; r' G$ G* ]空气质量主要受哪些因素的影响?四、区间估计
* l0 ?& ?1 \' y2 ~1 i$ S( r! H/ m全国城市空气质量普遍处于哪种水平?五、统计建模
& m% i3 Q m6 |& x怎样预测一个城市的空气质量?导包并读取数据:import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns0 ?, W$ a$ T% D1 v; p+ T# ^2 @
sns.set(style="darkgrid")plt.rcParams["font.family"] = "SimHei"plt.rcParams["axes.unicode_minus"] = False
C1 a% W) E/ Odata = pd.read_csv("data/data.csv")print(data.shape)data.head()
# S+ B3 f( v5 r! @& d `
% w( u0 M9 a3 ?& {! y# z- J2 Y+ S数据集描述:
' \4 A# X! {7 s% R+ C: [% v" V- ^
; I+ J' L* c" @3 gCity:城市名+ l: x% T1 }$ Q3 T7 z* x
8 L8 u' z4 u9 P3 U6 b3 o/ NAQI:空气质量指数 ^) Y6 m" P% t2 J
* K6 i& f* V, N9 _
Precipitation:降雨量# Z6 Q* O. `3 U- o i: ~( m/ \3 N
; ]& ^" h X5 V3 D
GDP:人均生产总值0 t9 ]& Q# Q+ q" u7 o
' G! r# A ^. R( A9 }
Tempearture:温度6 h4 Y$ A" Z6 W( d; B6 o
# P: \; M2 m( g, z' F+ u1 p
Longitude/Latitude:经/纬度
, r4 z0 C3 w# f4 _, ^1 }$ h& ]) }
Altitude:海拔高度1 s! O$ _$ l1 ~& f; I# M$ _
& Q: l* G; f1 M. u: uPopulationDensity:人口密度" p4 @# a: f5 @" z
# Z6 T- R* W6 rCoastal:是否沿海. u x& ~$ e! ? `
9 Z/ y7 ^: ~# x, L
GreenCoverageRate:绿化覆盖率. c% O6 ?, {1 h$ j$ z$ J
8 [! x O' i- M+ T9 q0 bIncineration(10,000ton):焚烧量(w吨)) Z( e. e/ k, b. z$ [
& t: {. \$ b9 E数据清洗
- S& P; R) g( M- g4 E检查缺失值:
8 m' S1 } E. U6 Q数据集描述:
7 s/ x- x8 B) e1 G( S# D! ^, u0 r' H5 g4 D! o4 D
City:城市名( O+ H+ k# v* R1 u
3 a1 E4 g: Z. r& _
AQI:空气质量指数 j8 C/ O" j* N# G! ?% B
( h! Z; E7 \/ F- Q2 j3 s
Precipitation:降雨量
" K# A; t% b: B( [ D( u
: k q6 x# U- N* t7 _* m M2 IGDP:人均生产总值7 ~5 n; l! V. k, p
2 T3 ^ H4 j& }9 _- R! W9 wTempearture:温度 y5 B" D3 z& r/ |. r
% E0 k4 u4 t) C) J: [* nLongitude/Latitude:经/纬度# n$ J Z Y& M0 U: B6 v: J
o% S8 i, x( _0 A3 fAltitude:海拔高度
+ j6 k4 C8 m$ D! d+ D2 a; Q% j
: R3 F, B6 l" k! U' @4 hPopulationDensity:人口密度
8 A( d5 r5 j2 b) e+ Q" [; P, E9 o! l: B4 c: P; \' t1 \3 E4 d
Coastal:是否沿海
2 L# e' E: J. Z. c$ P, y- V( N' ` [% E9 G
GreenCoverageRate:绿化覆盖率
W, g9 }. N" r! X4 s1 s+ O) V+ C9 J' E5 s$ S3 U# B4 d* ]
Incineration(10,000ton):焚烧量(w吨)4 ?! q( ?4 u) U
. [6 a- m) s: `5 _/ a数据清洗
/ N" O$ a. J- z1 d) V检查缺失值:: l% N/ _. S; \% H" g! \* c$ v% r
data.isnull().sum(axis=0)- q( s" g" f/ p6 g( U
6 s! t" a2 b6 j% R: b8 @4 R& c( o* f; |% O/ R1 e, ]! V- D

( h% O3 i* j* ]( F7 D% |& Z( I7 C6 P1 c8 q& w
查看含缺失值列数据的分布:+ j6 A6 i" A# m3 M% E
#print(data["Precipitation"].skew())#偏度
/ P+ C" [2 |; c, Q! Ysns.distplot(data["Precipitation"].dropna())#要删除NA值才能做分布密度图# M, P( I& t! w9 p5 y0 ^1 M
plt.title("分布密度图")
% Q7 z- ]$ v% {$ B+ r7 [5 r7 m0.273607606711773873 F3 G ~: a. p8 Z: S5 H0 Q1 x: p
& M$ c& [" @+ n* I3 z7 }, C
7 `: h W- B& Y8 i
2 H8 `! P% _* c' H# T$ Y4 `4 L数值型变量,数据呈现右偏分布,所以使用中位数填充。
对缺失值进行中位数填充
data.fillna({"Precipitation":data["Precipitation"].median()},inplace=True)5 H0 D( [; Q( `% N
检查异常值的三种方法- data.describe() 查看数据的描述:分位数、均值与标准差
- 基于正太分布 ±三个标准差涵盖99.7%的数据
- 箱线图(四分位距IQR=Q3-Q1,上下边界:Q3/Q1 ±1.5IQR)' T& o- A) [4 C5 W" c2 \
查看数据集的偏度:
! B& t9 ^! f1 @" c1 P, b9 Z4 @data.skew()( x' M2 s$ w2 h7 H V! t2 w
o0 E6 Z, O c) K8 {7 ^* v5 k) p2 ]
AQI 1.198754! |5 j- V2 f; l7 I1 u% E, Y' I z
Precipitation 0.273608
! j* g0 U% D. j4 t: \) @GDP 3.761428
( c3 V3 n3 Q+ r8 }6 UTemperature -0.5973434 Q3 b" {' {3 i+ r' g- t
Longitude -1.407505
3 h4 |; o3 r9 WLatitude 0.253563) m# x+ m0 {& Y P
Altitude 3.067242
1 m& g) B0 i! P% U8 pPopulationDensity 3.125853
4 f# o2 w1 m& Y! d/ J% zGreenCoverageRate -0.381786
# b; k" V* y4 }9 D: uIncineration(10,000ton) 4.342614% ^8 v$ c; p. a
dtype: float64
+ a) S) C2 f( a; _/ c4 I, o m! m/ o0 {5 G
可以看到GDP和人口密度等都出现了严重的右偏分布,意味着存在很多极大的异常值。
下面我们查看以下GDP的异常值:
9 X) C. y6 F. _8 n4 h/ x( x9 V! ~( N
mean, std = data.GDP.mean(), data.GDP.std()
+ E* s* f4 s2 b0 V2 I5 {lower, upper = mean - 3 * std, mean + 3 * std
2 F' p& f u6 H i7 l
9 s4 ^% ~6 R: b6 h6 H( P; fprint("均值:", mean)
: j& D: k. o* J5 ~& j- ]" sprint("标准差:", std)
5 J) H/ V5 E' z* t& S- R5 ~print("下限:", lower)
4 [% z, @5 Q+ }print("上限:", upper)$ b. j" s2 @2 q: S8 e+ T4 ]7 C; I9 T
data.loc[(data.GDP < lower) | (data.GDP > upper), "GDP"]
x6 ~, X7 z2 T4 F8 @, J9 U6 s6 h& Z
均值: 2390.901815384616
! u, X: d7 ^: O, L标准差: 3254.876921271434: u8 {/ J6 D, ^2 V( c* I
下限: -7373.7289484296877 p* B5 _6 Z, Y" t6 G- H
上限: 12155.532579198918' c0 B+ ^) j- I7 H' `( M2 ?
16 22968.60
' h- I7 c) Y' x( L1 G63 18100.413 x6 O4 S7 M: w# x( q; R
202 24964.99 M8 i2 m6 x: ^. e, i$ K
207 17502.99
- y1 v/ q, {6 j5 o3 I7 Q215 14504.07
5 X2 ]! z- Z' o6 B4 v3 q! y230 16538.190 i @# Y4 {+ L9 ~' d/ k7 V4 ~
256 17900.00
4 R" I: g _+ d& P& i314 15719.725 [* l, N) E F5 G, f4 q
Name: GDP, dtype: float64
: y6 }% _1 w" a# b/ g5 I: b9 _( Q4 f, r" p' ?4 z
' x8 \( {' D: }
* R* O0 O* L8 A* e3 a
c5 I- Q* ~: I! {) T( j" U7 K" @5 J
作者: sjlxdn 时间: 2021-10-23 14:51
11111111111111111111
3 W6 M2 W( j- f
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) |
Powered by Discuz! X2.5 |