数学建模社区-数学中国
标题: AQI空气质量分析与预测的相关资料 [打印本页]
作者: 1047521767 时间: 2021-10-15 10:46
标题: AQI空气质量分析与预测的相关资料
AQI分析与预测AQI全称是Air Quality Index,指空气质量指数,用来衡量空气清洁或者污染的程度,值越小,表示空气质量越好。" x0 |; q, M+ G" l1 C5 b
本文的分析目标是:
0 L/ U; P. f8 Y: C7 {, E一、描述性统计& K( K/ b* b4 j8 F! K# ?
那些城市的空气质量较好/较差?空气质量在地理位置分布上,是否具有一定的规律?二、推断统计
$ C' q. ]; B# t4 C- D" ~4 l临海城市的空气质量是否优于内陆城市?三、相关系数分析
4 [: w7 s9 A6 X* W: ]空气质量主要受哪些因素的影响?四、区间估计
2 q- s8 r+ B& p& C& J7 q# m6 c全国城市空气质量普遍处于哪种水平?五、统计建模2 {2 M: e( ^4 ?! i0 g
怎样预测一个城市的空气质量?导包并读取数据:import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns
8 t0 U: R( ^2 j: T# F9 b6 V! Rsns.set(style="darkgrid")plt.rcParams["font.family"] = "SimHei"plt.rcParams["axes.unicode_minus"] = False9 Z4 }& x1 A7 l2 t
data = pd.read_csv("data/data.csv")print(data.shape)data.head()
6 o3 N# J# K* X ~% x
. t( M, j! r4 J# B& u数据集描述:
$ `6 e5 L$ C! {2 N8 V5 s9 Q
: k( N+ F0 c X wCity:城市名
' c: k* E3 E6 L9 h8 U$ W
- a7 s0 U: Y9 y. L( @+ ^0 u# @AQI:空气质量指数
! v+ ?" b$ p$ C8 e3 g
6 T7 m/ _+ y+ I5 qPrecipitation:降雨量9 ?/ o; c( p( F6 i# G+ ~
3 ]: O: ^. b. D* `- k9 Q! T& N
GDP:人均生产总值4 ]6 f" V9 Z- h) C h$ ]
6 `; R5 m+ e9 Z' L
Tempearture:温度9 O# B- v) ?( X
0 w9 Z- z" n, P% v/ s
Longitude/Latitude:经/纬度
6 [; V5 L- p$ l8 |5 y5 w
7 v0 V' q0 t: `; ~5 E7 x! r! N; a) fAltitude:海拔高度
, x0 F* b0 \) u% g: ]! O
: R8 i# ^# b5 P! U7 K, H2 ~9 EPopulationDensity:人口密度
% A. c# T6 |9 b& H0 m1 m
' U) v( r& Q, T' ZCoastal:是否沿海8 x) u1 |! S7 L0 b, D
, I$ R8 h4 v) F) ?" AGreenCoverageRate:绿化覆盖率
9 E7 o+ X% ]0 F) [1 [* y5 q) ]
& y! ^0 E# C# g6 v& BIncineration(10,000ton):焚烧量(w吨)7 l/ v* ~# w7 |
& ?; K/ A9 w. Z3 D% `! h数据清洗
% l" i( {- [% J3 t0 \! r9 |检查缺失值:3 d8 j5 Z( K" L8 r, a+ a4 S2 U7 s
数据集描述:
6 S1 N. d& ~# l3 R* S
" f( q' O/ U$ d& m0 h. YCity:城市名2 b- z1 Z" E6 |% [& F0 ~% {
0 T5 k6 Y) [% c K% c$ |7 d- N
AQI:空气质量指数
5 Y# t( { M$ j) y
) k8 \: S: ?; p# C5 `* s# w2 EPrecipitation:降雨量. m2 C+ t2 e% W
+ Q0 l& D5 C5 p: J) xGDP:人均生产总值" k' D# k. Q% {1 }) b% c m, l. `
4 _( |) E, |6 [& H: X
Tempearture:温度6 Q) G, U0 `+ l
) {, r( g. a/ l9 F# jLongitude/Latitude:经/纬度
# }, A4 w8 ]" j9 @) ~' ^- L2 Y4 I {" k" {9 k; |6 q& y
Altitude:海拔高度% r) C) w) Q* }5 B9 C2 G$ g+ W8 W; ?
A& i U% x# K+ N" {PopulationDensity:人口密度
6 X4 \: O, t* y% J( }7 W
+ l( Q/ S! a5 h2 i( k* p3 {$ GCoastal:是否沿海
4 N B% w j+ ]$ }% o- v/ G6 r& ^
GreenCoverageRate:绿化覆盖率) V8 [* A6 f! q) B8 J
( f! l) A- }+ x; v1 x
Incineration(10,000ton):焚烧量(w吨)
0 Q8 G) S" j0 d. h* {# F& K1 w& L
数据清洗 @, Y5 j/ ~1 ^; g# D5 q A3 l
检查缺失值:0 \. v& a2 J9 T6 J4 }7 R
data.isnull().sum(axis=0)# `" b% V7 w! S: b; r4 H1 E/ n. Y
, B K2 a3 v2 F0 k" t
5 d8 [4 T( L' h: I

, m) m/ y2 ]2 ^( i, x0 Z3 a7 A: W: ^! D+ H* i0 V [
查看含缺失值列数据的分布:
, t: B0 u/ P4 ~ |5 W) P- w/ L. e#print(data["Precipitation"].skew())#偏度 3 D3 c- H: z* v1 m, l
sns.distplot(data["Precipitation"].dropna())#要删除NA值才能做分布密度图
1 [+ M# k: \2 D$ p* S0 ~plt.title("分布密度图")
. O1 `2 b/ ?& [. J, k0.27360760671177387* r) W0 C( n V
0 h9 j9 ]' {5 s9 f

. L* q+ Z Z" {2 S4 p- g: ^2 |/ i c! i' ~4 T' z9 g7 P( a
数值型变量,数据呈现右偏分布,所以使用中位数填充。
对缺失值进行中位数填充
data.fillna({"Precipitation":data["Precipitation"].median()},inplace=True)
" d8 s8 _. n8 _7 K检查异常值的三种方法- data.describe() 查看数据的描述:分位数、均值与标准差
- 基于正太分布 ±三个标准差涵盖99.7%的数据
- 箱线图(四分位距IQR=Q3-Q1,上下边界:Q3/Q1 ±1.5IQR)2 E/ @* m7 A, u# y
查看数据集的偏度:
1 {& K% a6 e$ C6 x/ S* C) o
data.skew()% W# z% A3 @' j5 Y3 r
) b. ^% X4 m6 c5 k, ZAQI 1.198754
- t3 e/ {1 C5 X+ aPrecipitation 0.273608' s& F8 ]/ Q3 l1 q5 M* F' N
GDP 3.7614280 N& T+ c! r0 d" d- ~. M2 \: d
Temperature -0.597343+ }/ X! K1 b& _
Longitude -1.407505
/ l" ~8 m, r5 bLatitude 0.253563
3 h' O$ v( A2 W" A& K: @" p }Altitude 3.067242
) |. F9 d9 }( ^( e3 H, EPopulationDensity 3.125853! b7 y9 e- y8 X1 S) R' v5 `
GreenCoverageRate -0.381786# p* x) H6 b; [! T9 k! c
Incineration(10,000ton) 4.342614
8 R( ]% g% d0 Z4 V6 Q2 |dtype: float64* i5 m/ y9 W8 R: `6 E8 L
; B" K2 l$ h! v5 X7 G可以看到GDP和人口密度等都出现了严重的右偏分布,意味着存在很多极大的异常值。
下面我们查看以下GDP的异常值:
C) @6 n i7 x& S7 W1 j3 Z( fmean, std = data.GDP.mean(), data.GDP.std()
2 @$ X3 t5 V$ j4 f& D1 A: rlower, upper = mean - 3 * std, mean + 3 * std# A& a/ j- A( M7 O! a+ `& R, v
4 V R( s$ o2 Q; }. ~print("均值:", mean)
1 q% p: U$ s4 F. R* `6 kprint("标准差:", std)
* U+ t9 D% T% q1 r0 Aprint("下限:", lower)$ i7 {! F# Z% y6 X5 \
print("上限:", upper)% ?3 f" t7 P; Y1 ?3 b$ O" N
data.loc[(data.GDP < lower) | (data.GDP > upper), "GDP"]
- y8 j$ \8 c3 Q0 }9 s; V! h7 Z1 y/ {
均值: 2390.901815384616
) S/ q; |7 u; Z! J8 e标准差: 3254.876921271434
- x6 |( d8 I8 z1 i8 W+ _( y下限: -7373.728948429687" L$ s! Z# t2 f" V0 ]/ c& K( R9 E" Y
上限: 12155.532579198918
4 X$ s4 l. }8 A: ?# `" Y' a16 22968.601 ^# O) B6 {5 F: H% H
63 18100.419 G, e- d+ Z: E. J9 [
202 24964.99
6 ~/ ^5 e0 ^! S9 U$ Q3 @0 z207 17502.99
2 z: r/ c7 [! n2 r215 14504.07, [* [$ k- Y" i" T
230 16538.19' g& j% B- p$ h& ?
256 17900.00
4 Q' ]# m7 D; w- [314 15719.72
1 T8 B/ _ u, f c6 m; R% L: W, G" M, fName: GDP, dtype: float64
2 J. [9 j- {6 u& y/ z6 D! y2 i5 \9 E) n4 h* L# B# x/ p: L5 i; h
) L0 Y( S3 M- O. g8 v# j. \! M
# ^: d% `4 C W7 a1 z! ~
4 }2 m4 Z0 I$ ^; u# Q, q$ f# ]9 _4 y4 B! ^! m$ E
作者: sjlxdn 时间: 2021-10-23 14:51
11111111111111111111& m N( z( P9 {5 f5 a
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) |
Powered by Discuz! X2.5 |