数学建模社区-数学中国

标题: AQI空气质量分析与预测的相关资料 [打印本页]

作者: 1047521767    时间: 2021-10-15 10:46
标题: AQI空气质量分析与预测的相关资料
AQI分析与预测AQI全称是Air Quality Index,指空气质量指数,用来衡量空气清洁或者污染的程度,值越小,表示空气质量越好。+ p& K( }- T) G2 M5 P
本文的分析目标是:$ d! B: ~% w7 A: M
一、描述性统计
( R& l" @- F1 A6 M/ E
那些城市的空气质量较好/较差?空气质量在地理位置分布上,是否具有一定的规律?二、推断统计
6 S& ?3 C8 d# j
临海城市的空气质量是否优于内陆城市?三、相关系数分析
7 ~: o* R& ^  }5 E) O9 M) h, s
空气质量主要受哪些因素的影响?四、区间估计/ t9 A4 }4 ]: l: ?( ^. q6 E
全国城市空气质量普遍处于哪种水平?五、统计建模
; Z; ]8 w% D/ Q( j  r8 k: r* k
怎样预测一个城市的空气质量?导包并读取数据:import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns
  |( m5 q) G' A' {" `0 Z1 N+ k
sns.set(style="darkgrid")plt.rcParams["font.family"] = "SimHei"plt.rcParams["axes.unicode_minus"] = False) U9 n. J: }4 n9 s5 P
data = pd.read_csv("data/data.csv")print(data.shape)data.head()( r4 t5 C/ V8 Y6 o6 |
6 D/ [5 k/ j7 E4 n
数据集描述:3 v( K4 w4 z% [

( w! D8 k$ K/ ^2 bCity:城市名, Z  }" b2 C% u% l! A& l

- |  D6 m/ I8 X4 n0 c- Y4 z3 RAQI:空气质量指数
( `' \7 V/ ^4 X: l8 w  ]5 V) u4 {7 w
Precipitation:降雨量# O% S/ j7 E" h$ E, w

9 h. |4 W9 p, h3 j# j$ v- HGDP:人均生产总值
- V2 U6 B1 t0 {5 h' l& E6 a( m6 j' _% {/ H* D
Tempearture:温度4 p& D6 J4 r- z

8 V6 E+ P. A( q* @Longitude/Latitude:经/纬度
# n- @9 A0 c# }! N7 {, G2 O# Y  z4 b. x- W2 U+ \
Altitude:海拔高度
: b: N: h: K8 z$ v! Z/ H8 k0 ]' t) f+ H! l; T6 p1 {
PopulationDensity:人口密度" [7 B: O# ^$ v# B! t. s- Q5 Y

, T% ?7 F7 U$ E0 U9 _Coastal:是否沿海
+ V; J$ S8 z+ j! r, z5 S
$ p; d7 a) t( T5 s% rGreenCoverageRate:绿化覆盖率
; y) V9 J( B0 M8 j& I  S1 N* [1 Q. C9 s
Incineration(10,000ton):焚烧量(w吨)( {7 V# j6 v+ \' ~5 @6 S
, u& B) z* p! x. l. d( c9 I
数据清洗
3 S0 C3 }3 Q* A& U! {# Z* N检查缺失值:
3 F8 d; p9 V, i, D2 t" @) M数据集描述:
" q, A3 {: O7 \" j; m# T
' q; \5 x. i. Q' |9 n' ?7 yCity:城市名( @3 J- o1 x0 G0 }4 p

" y: K1 y# k* Z" i2 hAQI:空气质量指数' @: v% w+ N) w5 M
  [: N0 Z/ r8 j1 ?) k6 O
Precipitation:降雨量: Z6 }& O" O! E2 m
! e8 Y7 K7 R! N7 P$ ?5 B) h
GDP:人均生产总值
+ ?" C( Q# E0 B; p4 J9 B$ V& O# p/ w& K: Y- ~- n8 T
Tempearture:温度
' K6 k, k& d% k( c1 |6 \
6 T. G0 P- e+ S5 F+ m+ RLongitude/Latitude:经/纬度
) Q4 F. _1 \8 h, q7 `8 ~2 `! d3 g: X/ D% Y* j$ ]% Z( W) [7 a
Altitude:海拔高度
2 M" ~7 _; s1 J8 I2 q& f
, {% G# X& U$ t; @" @8 A" R2 t& {PopulationDensity:人口密度
" L4 @* w) s9 I  E3 `
3 B* @6 T  W; F. m- [Coastal:是否沿海
6 Y) }/ n9 D$ A# ]% h' o1 y$ ]+ v) a: z' U- V
GreenCoverageRate:绿化覆盖率
; ^# ]$ J9 C# m" ^/ r$ f! f; v) W: Q; E  E1 p
Incineration(10,000ton):焚烧量(w吨)
7 D; p* S/ F- \& i, Z) P
# L# w7 P+ F  E! X- m+ q数据清洗
+ g, W& F/ j1 e, O( R检查缺失值:
: N9 m  w  i0 mdata.isnull().sum(axis=0)
8 I1 W+ V# x0 U4 D% `
( L! g3 ?; t# Q, t7 L- E4 O. P# O2 C' V! P  d' u1 h5 {

4 s$ n, v0 e# M% @/ F4 @" g9 f; O
. N- A& j: @1 {8 X/ U; P查看含缺失值列数据的分布:
  Y/ B  c2 B9 q/ U* O$ o#print(data["Precipitation"].skew())#偏度  3 g1 u" V- S6 a4 h1 H
sns.distplot(data["Precipitation"].dropna())#要删除NA值才能做分布密度图$ P  p3 k2 j7 o* t
plt.title("分布密度图")
9 ?- X  [) @  V4 H" V0.273607606711773874 n+ t' _) F. l& ~0 C% D8 B

& K/ l& F6 A5 r3 O, Z# a
# O) d2 y# z. X5 n( g* i! m7 @, m. [; l3 z  l* g# |! Z

数值型变量,数据呈现右偏分布,所以使用中位数填充。

对缺失值进行中位数填充

data.fillna({"Precipitation":data["Precipitation"].median()},inplace=True)9 v6 A/ V# Y0 Z. c- [
检查异常值的三种方法

查看数据集的偏度:


6 V  e" h  @4 V$ z2 x+ T8 |data.skew()
! s  C5 h$ F4 T3 L, B! L
" T' u' i, A- A  e% B% l' R: GAQI                        1.198754
- g0 ~* s4 f& n# [Precipitation              0.273608
7 F7 v" u1 y% q+ kGDP                        3.761428
  ]$ S9 r6 f; `Temperature               -0.597343
. O, H+ A0 r3 H1 \6 O& tLongitude                 -1.407505
6 ^( C' {5 q: L& U. kLatitude                   0.253563
3 I" k; V, M& x' }" s5 H$ @; X) h) X8 AAltitude                   3.0672425 [! f( m+ G/ {" M2 v
PopulationDensity          3.125853* H  E! |" a+ L6 |2 C: ^" S2 b, [7 x  d
GreenCoverageRate         -0.381786
3 I$ ^+ |0 t1 }* n6 C4 |Incineration(10,000ton)    4.342614
" J1 m9 H. g7 G2 sdtype: float64
+ w% U  h7 \. ~4 ?1 A- w- f* p- C9 V

可以看到GDP和人口密度等都出现了严重的右偏分布,意味着存在很多极大的异常值。

下面我们查看以下GDP的异常值:

7 m. ]. p2 Y4 ?
mean, std = data.GDP.mean(), data.GDP.std(). Z9 O' b" N. b) P
lower, upper = mean - 3 * std, mean + 3 * std
( e) K2 J' H) T: H0 }, r' S, @, _: p* S, {4 n9 f9 o- l
print("均值:", mean)
/ [& p( ~* |# N# Q  I  Jprint("标准差:", std)% z8 V  _  a" F
print("下限:", lower)
7 n- E5 t, H# ]8 Z5 N; q7 g: Xprint("上限:", upper)
3 v4 Y7 p) \8 Xdata.loc[(data.GDP < lower) | (data.GDP > upper), "GDP"]5 j3 H) ~/ Y- a( u5 `, j, K
/ v& [& U  Q! }7 D% d
均值: 2390.901815384616# {' E2 k5 b+ q$ w
标准差: 3254.876921271434
$ S& M# d1 T% i. P# C4 v下限: -7373.7289484296875 h" L" J2 m7 y
上限: 12155.532579198918
. P# d' X* z) a1 c- _16     22968.609 D1 M& m. ?+ f' l5 Z6 }' G- `
63     18100.41
+ ]0 n* p) Z9 i; v) m202    24964.99" m5 j5 n0 F: w  ?
207    17502.999 V7 E. V' Q% I# W& I
215    14504.07- w5 S/ ^1 p3 v0 R* Y' w7 ]6 k$ N
230    16538.19
' k  i: ]1 L1 {' y" ^9 w# @256    17900.00+ c0 ^3 m; n' A( p+ D
314    15719.72
* D4 X' e( k- h& l$ x* b6 TName: GDP, dtype: float64! h  J- x, O% ~# M4 T

8 o: t6 y4 P" S; T4 i# U1 u9 t' Y# M0 u) a- p

# ^9 r4 W% F$ S$ h2 F$ l6 C, _0 G  E  x+ `( ]& |& s" E) Q# g

7 ~; }$ D4 O3 c/ J
作者: sjlxdn    时间: 2021-10-23 14:51
111111111111111111117 D, k+ u8 M) s( U7 {, g





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5