数学建模社区-数学中国
标题: AQI空气质量分析与预测的相关资料 [打印本页]
作者: 1047521767 时间: 2021-10-15 10:46
标题: AQI空气质量分析与预测的相关资料
AQI分析与预测AQI全称是Air Quality Index,指空气质量指数,用来衡量空气清洁或者污染的程度,值越小,表示空气质量越好。6 _( N% j0 m9 v. B" h, P5 H2 D) {% Q
本文的分析目标是:
# O0 o0 T) s1 u a2 M4 W一、描述性统计9 e. |4 u3 N# ?( P. y, J
那些城市的空气质量较好/较差?空气质量在地理位置分布上,是否具有一定的规律?二、推断统计3 ^) R3 a$ \* S3 W7 p7 m$ ?; ]
临海城市的空气质量是否优于内陆城市?三、相关系数分析
3 l9 c& t7 \7 @/ T空气质量主要受哪些因素的影响?四、区间估计* H$ b3 x: P+ C1 J% c" w/ I
全国城市空气质量普遍处于哪种水平?五、统计建模
2 G3 h6 x6 M: Z" X/ K f怎样预测一个城市的空气质量?导包并读取数据:import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns1 b E& e$ {$ O( c9 m6 v# ~" \
sns.set(style="darkgrid")plt.rcParams["font.family"] = "SimHei"plt.rcParams["axes.unicode_minus"] = False
! d7 F4 u9 W2 ]; ^data = pd.read_csv("data/data.csv")print(data.shape)data.head()
: E4 q6 c% f( @7 Z1 i6 u) B7 h9 Z% @% O. T# S0 o4 K
数据集描述:: ^# D8 q& v; c9 y) m
/ @5 x0 R$ f4 ~5 n. P
City:城市名# w, T) s2 Q" C3 j Q7 ?
$ T& `* ^" p, n) F# NAQI:空气质量指数
z/ A6 s; Q, e0 P. X' _: R7 P) R9 t4 D* w9 [
Precipitation:降雨量) |) ~* G! I2 W) Z5 J$ a0 S
- D/ V; f1 I9 d1 y7 ]+ V
GDP:人均生产总值+ [% \% h) D! w
& t6 O( a$ L. S ?) e
Tempearture:温度$ ~+ `1 m# P* ^. I' R$ P& D: N
1 x5 t$ a' q, X# @Longitude/Latitude:经/纬度
* k/ {3 f9 ?9 I) ~$ t6 f. ]* ]0 X8 E: h
Altitude:海拔高度
+ A" M" [' f+ @
+ e# d/ T0 W" W+ j0 N, ^PopulationDensity:人口密度
3 G" X9 \0 q- i$ ^
8 S2 C5 R6 e" A X) J: o8 `; Z& oCoastal:是否沿海1 \. N3 V) m& Q" M# O K
5 m3 r) G: o n! N: P IGreenCoverageRate:绿化覆盖率
) C6 a1 d$ u% T3 F9 {% V- z7 i- G. d
Incineration(10,000ton):焚烧量(w吨); @$ _2 Q: `2 D% Z( e
+ h' @& \) w+ g+ \8 n; p数据清洗- P+ X3 p# Y5 q) @: w
检查缺失值:
$ n# _) Y; ]2 Z1 U数据集描述:
0 f. _" Z% n9 [6 G! y( m" u
, Z4 d! }" w6 F' cCity:城市名
- p7 ?- K( y' q( Q2 U2 M& T- {6 g& z8 p+ Z Y! D
AQI:空气质量指数1 q0 `% u) v+ K
0 i8 ~9 M* t; [Precipitation:降雨量
A$ g: `! _. w! c) X* D6 Q' h/ u9 g0 K6 P
GDP:人均生产总值: z4 i' e: ^8 Q/ o: t) n
! r" b9 E7 G! d8 | G) A
Tempearture:温度' b+ K' M$ K/ G6 n, f& w3 T% P+ q
1 d3 J; p0 v! h' V5 }9 R& c
Longitude/Latitude:经/纬度* m( E6 Y9 f- B0 x! E$ m
+ E$ w2 m0 N& s( B+ L9 m
Altitude:海拔高度
- g! m2 m' G- v0 X, ~
" P; q2 E: R( h2 v8 S9 NPopulationDensity:人口密度
( n+ m; w ]" s# g0 R- ~) r3 J3 J6 r+ v6 b
Coastal:是否沿海3 T2 S2 p6 T( n4 @+ P- w
/ U6 m9 S% }/ ~/ B
GreenCoverageRate:绿化覆盖率
6 i7 l* M1 S$ `: m7 [# F( p1 C# i
; G& ]' D% U6 i4 iIncineration(10,000ton):焚烧量(w吨), \# b1 u9 l: e$ n9 N3 W
! e5 W0 ~1 S% q6 s( A数据清洗
- N# p- m. H6 {- \- d. X6 G检查缺失值:
V, y9 T8 |+ R6 w3 t0 |$ h7 pdata.isnull().sum(axis=0)8 {* \- s% [" o5 R! v4 z
7 E* w8 K4 [4 e' h0 W+ N
]8 ]% c+ ~* u) E1 j' G% K! l% ~5 S

0 b( y- S+ E8 L
7 w+ Z/ j( y6 @ M* D" i$ F查看含缺失值列数据的分布:& I, w' Q0 Z; Q2 |9 U# \9 N
#print(data["Precipitation"].skew())#偏度 & a: f4 a7 I$ s' e& M: E; ?3 n3 k6 c
sns.distplot(data["Precipitation"].dropna())#要删除NA值才能做分布密度图( u; X) u8 U; b4 y# X
plt.title("分布密度图")
+ g# a; {7 a+ f: V6 |0.27360760671177387
; E: X, u, P; ?- O0 `" F* k
/ t) b- L% J# }) k- T
' t+ n& S% d. T$ i' G6 ?" \
( U$ b b' l# B' ~$ Y数值型变量,数据呈现右偏分布,所以使用中位数填充。
对缺失值进行中位数填充
data.fillna({"Precipitation":data["Precipitation"].median()},inplace=True)
8 L$ v3 E7 ^+ }( ?$ s& R6 G4 f/ j检查异常值的三种方法- data.describe() 查看数据的描述:分位数、均值与标准差
- 基于正太分布 ±三个标准差涵盖99.7%的数据
- 箱线图(四分位距IQR=Q3-Q1,上下边界:Q3/Q1 ±1.5IQR)- u* e6 s: P! i d' ]8 i
查看数据集的偏度:
% a% U2 V9 I3 i( r! v/ j7 Mdata.skew()4 A/ t: }$ y1 ^& `* ^
8 H4 q7 G: W+ B" x$ U, E
AQI 1.198754
2 H$ {! E4 w7 o6 SPrecipitation 0.273608
+ M; v" u8 |7 s- _+ hGDP 3.761428
2 ~5 K. G" W1 ~3 uTemperature -0.597343* N$ t1 {- V: i
Longitude -1.407505+ S( K! O( B. I1 o
Latitude 0.253563" B8 q8 |6 d/ w, t: T+ |' N
Altitude 3.067242" w* k! M( I+ C/ @
PopulationDensity 3.125853
, {, @" l. k3 S* lGreenCoverageRate -0.381786* X6 p2 |6 M0 e0 m. y; _( k+ a
Incineration(10,000ton) 4.342614. j2 d# D" w- ?4 N. a( S8 k3 [# i
dtype: float64) y. D/ a3 \* C. Q4 k; _
" J# J0 j) _% W0 U7 b
可以看到GDP和人口密度等都出现了严重的右偏分布,意味着存在很多极大的异常值。
下面我们查看以下GDP的异常值:
' n* Q( m5 X2 I6 xmean, std = data.GDP.mean(), data.GDP.std()
: K7 V T! W1 K! H4 N+ }8 Dlower, upper = mean - 3 * std, mean + 3 * std
! h* I1 k; B3 U
: Z V, y3 t8 R" A; ^print("均值:", mean)/ U/ ~6 ~/ V$ r* k2 \: h7 C
print("标准差:", std)& \) G4 H$ ^. t5 E2 Y+ W6 j
print("下限:", lower)/ w; j8 y0 j9 f+ e* k Z1 Q
print("上限:", upper)
4 P& d1 {' p! V4 u$ h4 mdata.loc[(data.GDP < lower) | (data.GDP > upper), "GDP"]
; C! t3 M. B" g7 K2 v
$ ]5 J8 C$ N) ?1 m* @" F& ]5 Z均值: 2390.901815384616
7 f! T5 W( [9 a) r) f+ n标准差: 3254.876921271434
1 A% M. w) L, q1 V$ q( H下限: -7373.728948429687
7 G& c5 I5 J. N' {% a1 F9 f. ~上限: 12155.532579198918( ~6 E# D8 w9 Y" Q8 @/ I4 p
16 22968.60: W# J- T& _. |
63 18100.415 E' k0 N' i) T
202 24964.99
1 g$ z" ]: f* @6 ]+ l207 17502.993 U7 q" c0 V0 T! W h
215 14504.07" ?; X- a4 q$ v! f% I
230 16538.19
; a" m% c; E( E" J/ k256 17900.00
& k A/ b. M& v314 15719.72
" ~8 v, ?# v* f @3 L) I- \7 tName: GDP, dtype: float64
8 |! Z7 ?' Z ~' p" H$ [8 I9 ]+ Z
4 w8 Q3 n3 t6 M( ]/ t, n/ s5 @) J. ^$ B
) B3 e V6 h5 v$ ?. S
3 {, t4 s1 h8 n! I
& ?5 E" U2 S# K$ e4 l) f
作者: sjlxdn 时间: 2021-10-23 14:51
11111111111111111111
2 `0 d/ N3 O7 c& u& I) [- b C, Q
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) |
Powered by Discuz! X2.5 |