数学建模社区-数学中国

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

作者: 1047521767    时间: 2021-10-15 10:46
标题: AQI空气质量分析与预测的相关资料
AQI分析与预测AQI全称是Air Quality Index,指空气质量指数,用来衡量空气清洁或者污染的程度,值越小,表示空气质量越好。' y2 S7 _% |# V6 A4 A: J
本文的分析目标是:% t+ W7 o" D4 x( {3 g; f
一、描述性统计/ g# R4 k6 G0 U: ~5 G2 n, Z
那些城市的空气质量较好/较差?空气质量在地理位置分布上,是否具有一定的规律?二、推断统计+ R5 c# p' i7 o, o9 f
临海城市的空气质量是否优于内陆城市?三、相关系数分析
8 t/ @! G% B- f5 t' k. w
空气质量主要受哪些因素的影响?四、区间估计
. ~$ _$ M( T, T. l& i8 x
全国城市空气质量普遍处于哪种水平?五、统计建模, b* Y2 u2 e; Z3 [6 X8 r) M# k& ^
怎样预测一个城市的空气质量?导包并读取数据:import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns5 j# c/ O5 j* u
sns.set(style="darkgrid")plt.rcParams["font.family"] = "SimHei"plt.rcParams["axes.unicode_minus"] = False/ {; @8 J) r2 E# C$ n
data = pd.read_csv("data/data.csv")print(data.shape)data.head()- i) N9 W+ X- N+ y
# ?& r  a) ]2 `- j
数据集描述:1 T+ P6 a) N& s2 [6 X& p
4 {: r1 N0 z; f6 w! o
City:城市名
* z% }: z0 c; j  C3 k. o) B* h4 ?3 U
, g: S6 k4 ~* QAQI:空气质量指数
( i$ k1 ^( o  F# G4 v) |& j/ ^9 A: G5 o/ h3 @6 c0 G4 q( y3 a
Precipitation:降雨量
; K8 K) p* N8 H5 ]2 z: N, j+ @# i* `% A& Y, K
GDP:人均生产总值
/ G1 S- u+ T0 z! u" f: e* u2 L  q# g
Tempearture:温度
6 D& T  l7 v" ^9 Y/ e% I* }& [" k2 k5 `4 J+ O6 L9 q! x1 Q+ U
Longitude/Latitude:经/纬度- z7 o8 `2 v5 @/ @

9 a' p, l+ A& W, i9 M: KAltitude:海拔高度
4 Q0 H: l- d5 ^3 O$ }$ `/ w! Y$ J+ d4 W. @
PopulationDensity:人口密度. u. K* d& ~! N  N$ T% L  c0 X
- j% R( x. d$ S) D, `& i4 X
Coastal:是否沿海3 f" a) e' n( F! p8 y

1 l9 ~* ^; {7 z+ \GreenCoverageRate:绿化覆盖率# h6 g4 _0 C( g
/ |8 m# G- S: j. u6 w& w. D
Incineration(10,000ton):焚烧量(w吨)- |3 ?/ u9 |1 \% X

/ M" c2 B" r& e- @5 g* i: u6 {+ n% C数据清洗
( \* m8 j4 f' @7 w; {检查缺失值:8 \" Y& o; P- w/ u
数据集描述:8 C6 k: e1 [1 J) R7 u# y& {

) V: }2 [4 D  c6 U1 c( TCity:城市名
1 Z) S8 e% L9 }  K2 v2 H( n$ I+ k% k8 H! R
AQI:空气质量指数5 U5 y4 q3 t+ t5 V

; t  b* m$ k' @: _Precipitation:降雨量
9 g# _$ Q$ a5 a6 \. ]% j& ]# C; g
GDP:人均生产总值
8 _1 j. {* ^! k% O  p: M3 L7 Q
9 U5 C% j5 \# T) X3 e  p8 {Tempearture:温度
, |4 x: l' s& M
1 q9 w/ Z: C8 R/ T' T  lLongitude/Latitude:经/纬度
/ W- d% e6 i/ n7 F/ U
! R( U$ ]" k4 l6 @( A- FAltitude:海拔高度
# C' Q4 o- {1 U. b  I( M- q& N  U9 V3 H  m
PopulationDensity:人口密度
: h7 ]: ~; d, N' E/ f
' Y+ p! E/ _  s4 n$ ?Coastal:是否沿海
* W$ k6 R: B6 m. d1 Z9 t3 c8 I/ t" t% I4 x& G
GreenCoverageRate:绿化覆盖率
! C6 ~" P1 C" x0 n) x% G- o0 q* F+ c8 D' _2 o7 S
Incineration(10,000ton):焚烧量(w吨): P1 z6 l9 s* f! X6 Q+ T0 k
0 ?8 F& `; N6 V1 M7 z+ C
数据清洗
. U# Q2 F& x  Y0 p# e% R6 b! a' Q. w检查缺失值:3 Z, E) {$ t5 f( b) [
data.isnull().sum(axis=0)
: b  h/ T4 `: }/ K8 {5 j; y  }1 m# y2 H. z- x1 D, w/ |

# w  \9 r' P5 M" S) W4 v) p- u/ ?% Q. c9 v
4 s, s7 g& W' q1 q
查看含缺失值列数据的分布:
2 w- U5 b% y* R#print(data["Precipitation"].skew())#偏度  & `8 |/ T( g5 R- k; {: C
sns.distplot(data["Precipitation"].dropna())#要删除NA值才能做分布密度图
! o: M9 g# P- o: j1 H( Hplt.title("分布密度图")
% U; y& ?9 {! P; }3 Q0 ]% a& R0.27360760671177387& d$ _( `+ z! ], D! A; g

+ N& I# x+ F4 V) y9 G
, U/ e2 M1 T! D- F$ _1 s1 F. b& u2 K9 g1 _2 I$ ^  g/ h+ J- s

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

对缺失值进行中位数填充

data.fillna({"Precipitation":data["Precipitation"].median()},inplace=True)
- P6 a3 |' u" k0 D检查异常值的三种方法

查看数据集的偏度:


' o) [9 q8 [6 x. k- c3 Ndata.skew()- ]* ?2 \% w. M7 E% g# E
2 x. q; P8 [& T5 J$ O/ v
AQI                        1.1987545 m3 W1 A0 H& h, y! g* y& G( q. d
Precipitation              0.273608' w- |; N* X4 u9 x
GDP                        3.761428
9 |' u7 h$ A3 M1 C" c% ZTemperature               -0.597343
# H/ Z; ?2 m, Z6 Z# F+ x! e" w3 JLongitude                 -1.407505
/ Q* ]  Y; R! @4 X5 `& ^" d+ uLatitude                   0.253563
3 c( F7 m0 G# t% AAltitude                   3.0672429 d7 \: a+ R: W+ v
PopulationDensity          3.1258531 q. s* x. p$ v" x
GreenCoverageRate         -0.381786
% E5 }3 W% v  N$ ~* \3 |: R( yIncineration(10,000ton)    4.342614
  Z( c( G# ?( `4 K9 P) Mdtype: float64  \$ Z3 W1 o( n

: @5 ]: ^" ?3 q9 D

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

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


* v$ a7 h( @' I0 ]6 u8 @mean, std = data.GDP.mean(), data.GDP.std()
" X1 A$ h( G) Clower, upper = mean - 3 * std, mean + 3 * std
1 x# A. @  i' |* a7 _/ T. ^/ C% _8 ]7 L7 t9 c: X7 Z; U  E
print("均值:", mean)
' k& t; E9 y9 i4 r8 Vprint("标准差:", std)
5 _: p& ^4 e: v! B/ R6 Uprint("下限:", lower)2 c8 X% n+ J5 U0 H
print("上限:", upper)1 a' F: Z, k4 R' M. @# ?& V& g7 Y0 J
data.loc[(data.GDP < lower) | (data.GDP > upper), "GDP"]
% ~. k) P0 G6 J* A4 j) v" ^/ g8 S/ h
均值: 2390.901815384616/ h& }/ J( z# s- G  h4 F! E
标准差: 3254.876921271434
4 F" B0 p, }) C0 V2 E& `4 D下限: -7373.728948429687" {0 \0 O# `) W' Q: ^/ \7 B/ \6 o) S
上限: 12155.532579198918' l) B2 p8 w* E" q7 j
16     22968.60; N" H- L  V( U5 p; \) @8 H8 K
63     18100.41, a2 E- L4 F) v8 h
202    24964.99
  }; o8 h4 Y+ h4 H1 \3 M& G207    17502.99; z6 y* H- s1 b
215    14504.07
8 B5 ]* A( O: V* J9 W  O0 T8 I. Q230    16538.19# s9 t$ |: Z* C- h- P
256    17900.00
$ a5 P9 E, {- a) H314    15719.72! Y6 L$ ]$ b7 t, Y/ u0 p  R
Name: GDP, dtype: float64
/ D3 g" ^! h; @' P0 d* \" \* F, F9 t2 u7 z
/ n) X8 A$ ?2 {

! z4 R2 f( t) q& ]8 n7 i" t" S  |# _9 Q/ K' ]( \/ E8 j8 g1 C7 r
3 V4 K) f3 `9 ?4 m# T# |/ E

作者: sjlxdn    时间: 2021-10-23 14:51
11111111111111111111
$ {  v$ i9 f' I9 t9 J( n6 s8 I




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