This document presents a summary of the PM2.5 data during the co-location of ODIN, ES-642 and Beta Attenuation Monitor at Auckland’s Waterview tunnel in November 2018. The main goal is to evaluate compare the response of the different sensors to traffic emissions. ## Prepare the environment
# Load packages
library(ggplot2)
library(openair)
# Fetch and load data
load(url('https://ndownloader.figshare.com/files/17860082'))
You can download the data here:
summary(colo.data[,c('PM2.5.BAM','PM2.5.odin','PM2.5.grimm','PM2.5.mote')],digits=2)
## PM2.5.BAM PM2.5.odin PM2.5.grimm PM2.5.mote
## Min. :-9.6 Min. : 2.6 Min. : 4.3 Min. : 2.1
## 1st Qu.:19.5 1st Qu.: 6.0 1st Qu.: 8.0 1st Qu.: 6.5
## Median :31.1 Median : 9.2 Median :13.3 Median : 9.6
## Mean :36.4 Mean :11.9 Mean :14.3 Mean :11.6
## 3rd Qu.:53.1 3rd Qu.:15.8 3rd Qu.:19.6 3rd Qu.:15.9
## Max. :90.9 Max. :35.4 Max. :40.0 Max. :52.1
## NA's :36 NA's :24 NA's :1 NA's :9
scatterPlot(colo.data,x='PM2.5.odin',y='PM2.5.mote',linear = TRUE)
Now using a linear fit, what is the prediction confidence interval between odin and ES-642
odin.mote.lm <- lm(data=colo.data,PM2.5.mote ~ PM2.5.odin + 1)
pred.int <- predict(odin.mote.lm,newdata = colo.data, interval = "prediction",level = 0.90)
plot1.data <- cbind(colo.data, pred.int)
ggplot(plot1.data, aes(PM2.5.odin, PM2.5.mote)) +
geom_point() +
stat_smooth(method = lm) +
geom_line(aes(y = lwr), color = "red", linetype = "dashed")+
geom_line(aes(y = upr), color = "red", linetype = "dashed")
## Warning: Removed 33 rows containing non-finite values (stat_smooth).
## Warning: Removed 33 rows containing missing values (geom_point).
## Warning: Removed 24 rows containing missing values (geom_path).
## Warning: Removed 24 rows containing missing values (geom_path).
scatterPlot(colo.data,x='PM2.5.odin',y='PM2.5.BAM',linear = TRUE)
odin.bam.lm <- lm(data=colo.data,PM2.5.BAM ~ PM2.5.odin + 1)
pred.int <- predict(odin.bam.lm,newdata = colo.data, interval = "prediction",level = 0.90)
plot2.data <- cbind(colo.data, pred.int)
ggplot(plot2.data, aes(PM2.5.odin, PM2.5.BAM)) +
geom_point() +
stat_smooth(method = lm) +
geom_line(aes(y = lwr), color = "red", linetype = "dashed")+
geom_line(aes(y = upr), color = "red", linetype = "dashed")
## Warning: Removed 60 rows containing non-finite values (stat_smooth).
## Warning: Removed 60 rows containing missing values (geom_point).
## Warning: Removed 24 rows containing missing values (geom_path).
## Warning: Removed 24 rows containing missing values (geom_path).
scatterPlot(colo.data,x='PM2.5.mote',y='PM2.5.BAM',linear = TRUE)
odin.bam.lm <- lm(data=colo.data,PM2.5.BAM ~ PM2.5.mote + 1)
pred.int <- predict(odin.bam.lm,newdata = colo.data, interval = "prediction",level = 0.90)
plot3.data <- cbind(colo.data, pred.int)
ggplot(plot3.data, aes(PM2.5.mote, PM2.5.BAM)) +
geom_point() +
stat_smooth(method = lm) +
geom_line(aes(y = lwr), color = "red", linetype = "dashed")+
geom_line(aes(y = upr), color = "red", linetype = "dashed")
## Warning: Removed 45 rows containing non-finite values (stat_smooth).
## Warning: Removed 45 rows containing missing values (geom_point).
## Warning: Removed 9 rows containing missing values (geom_path).
## Warning: Removed 9 rows containing missing values (geom_path).