# 中国各城市PM2.5数据间的相关分析

### 中国各城市PM2.5数据间的相关分析

• 线性相关分析：研究两个变量间线性关系的程度,用相关系数r来描述。常用的三种计算方式有Pearson相关系数、Spearman和Kendall相关系数。

• 偏相关分析：当两个变量同时与第三个变量相关时，将第三个变量的影响剔除，只分析另外两个变量之间相关程度的过程。如控制年龄和工作经验的影响，估计工资收入与受教育水平之间的相关关系。

PM2.5细颗粒物指环境空气中空气动力学当量直径小于等于2.5微米的颗粒物。它能较长时间悬浮于空气中，其在空气中含量浓度越高，就代表空气污染越严重。与较粗的大气颗粒物相比，PM2.5粒径小，面积大，活性强，易附带有毒、有害物质（例如，重金属、微生物等），且在大气中的停留时间长、输送距离远，因而对人体健康和大气环境质量的影响更大。 ——百度百科

1. 载入程序包&读入PM2.5数据

``library(spaceExt)library(igraph)``pm=read.csv(file.choose(),header = T)``

1. 数据查看

``#查看部分数据摘要ct=c(which(colnames(pm)=="北京市"),which(colnames(pm)=="天津市"),which(colnames(pm)=="石家庄市"))``knitr::kable(summary(pm[,ct]))``

Min. : 30.00

Min. : 37.0

Min. : 34.0

1st Qu.: 64.75

1st Qu.: 71.0

1st Qu.: 89.0

Median : 94.00

Median :105.0

Median :134.0

Mean :122.98

Mean :124.4

Mean :160.2

3rd Qu.:155.75

3rd Qu.:162.0

3rd Qu.:216.0

Max. :394.00

Max. :372.0

Max. :487.0

NA’s :1

NA

NA

``boxplot(pm[,ct],col=3:5)``

``#移除PM2.5数据缺失较多的城市sel=which(rowSums(is.na(pm))>120)pm_s = pm[,sel]#数据标准化``pm_sc<-scale(pm_s[,-1]) ``

1. 线性相关分析

``cor_pm = cor(pm_sc)g1=graph.adjacency(cor_pm>0.8, mode="lower", weighted=NULL, diag=FALSE,add.colnames=NULL, add.rownames=NA)cl=c("#FFFF37","#00FF7F","#FF8000","#FF0080","#FF77FF","#4DFFFF","deepskyblue","chocolate","#FFAD86","#C07AB8")com = walktrap.community(g1, steps = 3) #子群划分V(g1)\$sg = com\$membership + 1``V(g1)\$color = cl[V(g1)\$sg] ``

1. 偏相关分析

``res=glasso.miss(pm_sc,rho=0.5,emIter=10 ,penalize.diagonal=FALSE)``

``## [1] "Em step: 1"## [1] "Em step: 2"## [1] "Em step: 3"## [1] "Em step: 4"## [1] "Em step: 5"## [1] "Em step: 6"## [1] "Em step: 7"## [1] "Em step: 8"## [1] "Em step: 9"``## [1] "Em step: 10"``

``# res\$bic ##bic returnedp=-res\$wid=1/sqrt(diag(res\$wi))coc=-diag(d)%*%p%*%diag(d)colnames(coc)=colnames(pm_sc)g=graph.adjacency(coc>0, mode="lower", weighted=NULL, diag=FALSE,add.colnames=NULL, add.rownames=NA)cl=c("#FFFF37","#00FF7F","#FF8000","#FF0080","#FF77FF","#4DFFFF","deepskyblue","chocolate","#FFAD86","#C07AB8")com = walktrap.community(g, steps = 3) #子群划分V(g)\$sg = com\$membership + 1``V(g)\$color = cl[V(g)\$sg] ``

1. 图网络模型可视化

`` par(mar = c(0, 0, 0, 0))plot(g1, layout = layout.fruchterman.reingold,vertex.size=6,vertex.label.font=1,vertex.label.cex=0.4,# vertex.color=V(g1)\$color,vertex.frame.color="white",vertex.label.color="black",edge.width=1,edge.label.font=1,edge.label.cex=0.9,# edge.curved=TRUE,edge.color="black",edge.arrow.size=0,# edge.label=re[,3],# edge.label.color="#FFAD86",``xlab="城市间PM2.5关联性-相关系数r>0.8")``

`` par(mar = c(0, 0, 0, 0))plot(g, layout = layout.fruchterman.reingold,vertex.size=6,vertex.label.font=1,vertex.label.cex=0.4,# vertex.color=V(g1)\$color,vertex.frame.color="white",vertex.label.color="black",edge.width=1,edge.label.font=1,edge.label.cex=0.9,# edge.curved=TRUE,edge.color="black",edge.arrow.size=0,# edge.label=re[,3],# edge.label.color="#FFAD86",``xlab="城市间PM2.5关联性-L1范数=0.5")``

PM2.5不仅是环境问题还是经济问题、社会问题和政治问题，希望今后在中国特色社会主义政治经济学的指引下，我们能够早日呼吸到新鲜空气！

### 反馈与建议

• 作者：ShangFR
• 邮箱：shangfr@foxmail.com