february 2017

Data frames

Les jeux de données exploités dans le cadre de cet exercice de comparaison ont été édités en fonction des périodes précisées dans l'email de Pierre mais aussi et surtout, en fonction de la disponibilité des données de l'analyseur Magee Aethalometer AE33 (CELINE) qui a été installé à la station de Herstal durant la période du :

  • 30 septembre 2013 au 20 mars 2014 (période 1);
  • 15 octobre 2016 au 03 janvier 2017 (période 2).

Il est important de signaler que durant la période 2, l'analyseur BC AE22 (sn 1082) titulaire a été retiré (raisons : maintenance et calibration ISSeP) de la station pour être provisoirement remplacé par un analyseur de remplacement (sn 1154). Cet échange a été réalisé dans la matinée du 22 décembre 2016. Le mean ratio de l'analyseur titulaire était de 0.66 alors que celui de l'analyseur de remplacement était de 0.84. La variation du mean ratio ayant un impact sur la réponse de l'analyseur, il est préférable de diviser le set de données "période 2"" en deux sous set :

2.1 du 15 octobre 2016 au 21 décembre 2016;

2.2 du 22 décembre 2016 au 03 janvier 2017.

Concernant l'analyseur AE33, les données brutes (fournies par Ph. Maetz) sont des valeurs minutes. Elles ont été ensuite agrégées dans un premier temps sous forme de moyennes semi-horaires puis sous forme de moyennes horaires.

  1. 2013-09-30 au 2014-03-20

Données BC issues de l'analyseur AE33 (données corrigées)

ae33.1 <- read.csv2("D:\\ISSEP_LSP\\BC\\AE33_DATA_R221\\ae33_r221_vsh_2013_14.CSV", dec = ",")
ae33.1$date <- as.POSIXct(strptime(levels(ae33.1$date)[ae33.1$date],
                                   format = "%d/%m/%Y %H:%M", tz = "GMT"), tz = "GMT")

ae33.1.h <- hourlyMean(x = ae33.1, col.date = "date", rounding = F, verbose = F)

Données BC issues de la base iséo XR (données non corrigées)

df1 <- subset(hm, as.Date(date) >= as.Date("2013-09-30") & as.Date(date) <=  as.Date("2014-03-20"),
              select = c("date", "Herstal_BC", "Herstal_NOX" ))

Jointure des deux fichiers de données

tmp1 <- merge(df1, ae33.1.h, by = "date", all = T)
  1. 2016-10-15 au 2017-01-03

Données BC issues de l'analyseur AE33 (données corrigées)

ae33.2 <- read.csv2("D:\\ISSEP_LSP\\BC\\AE33_DATA_R221\\ae33_r221_vsh_2016_17.CSV", dec = ",")
ae33.2$date <- as.POSIXct(strptime(levels(ae33.2$date)[ae33.2$date],
                                   format = "%d/%m/%Y %H:%M", tz = "GMT"), tz = "GMT")

ae33.2.h <- hourlyMean(x = ae33.2, col.date = "date", rounding = F, verbose = F)

Données BC issues de la base iséo XR (données non corrigées)

df2 <- subset(hm, as.Date(date) >= as.Date("2016-10-15") & as.Date(date) <=  as.Date("2017-01-03"),
              select = c("date", "Herstal_BC", "Herstal_NOX" ))

Jointure des deux fichiers de données

tmp2 <- merge(df2, ae33.2.h, by = "date", all = T)

head du data frame tmp2 via la fonction kable du package knitr

date Herstal_BC Herstal_NOX bc.ae33
2016-10-15 00:00:00 NA 59 2.441667
2016-10-15 01:00:00 NA 38 1.874667
2016-10-15 02:00:00 1.12 31 1.532500
2016-10-15 03:00:00 1.09 33 1.456833
2016-10-15 04:00:00 0.86 26 1.180333
2016-10-15 05:00:00 0.88 29 1.130833

Subdivision du set de données associé à la période 2

tmp2.titulaire <- tmp2[as.Date(tmp2$date) >= as.Date("2016-10-15") & 
                         as.Date(tmp2$date) <= as.Date("2016-12-21"), ]

tmp2.rempl <- tmp2[as.Date(tmp2$date) >= as.Date("2016-12-22") & 
                     as.Date(tmp2$date) <= as.Date("2017-01-03"), ]

Régression linéaire

Ci-dessous sont présentés le summary de chaque modèle linéaire

Période 1 : du 30/09/2013 au 20/03/2014

Régression linéaire simple BC AE22 vs NOx

mod.her <- lm(formula = Herstal_NOX ~ Herstal_BC , data = tmp1)
summary(mod.her)
## 
## Call:
## lm(formula = Herstal_NOX ~ Herstal_BC, data = tmp1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -137.550   -6.558   -1.287    4.697  191.374 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   0.8830     0.4062   2.174   0.0298 *  
## Herstal_BC   24.6309     0.1397 176.302   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 19.09 on 4020 degrees of freedom
##   (106 observations deleted due to missingness)
## Multiple R-squared:  0.8855, Adjusted R-squared:  0.8854 
## F-statistic: 3.108e+04 on 1 and 4020 DF,  p-value: < 2.2e-16

Régression linéaire simple BC AE22 vs NOx forcée à l'origine

mod.her <- lm(formula = Herstal_NOX ~ Herstal_BC - 1 , data = tmp1)
summary(mod.her)
## 
## Call:
## lm(formula = Herstal_NOX ~ Herstal_BC - 1, data = tmp1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -140.165   -5.922   -0.643    5.183  190.182 
## 
## Coefficients:
##            Estimate Std. Error t value Pr(>|t|)    
## Herstal_BC  24.8348     0.1036   239.7   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 19.1 on 4021 degrees of freedom
##   (106 observations deleted due to missingness)
## Multiple R-squared:  0.9346, Adjusted R-squared:  0.9346 
## F-statistic: 5.747e+04 on 1 and 4021 DF,  p-value: < 2.2e-16

Régression linéaire simple BC AE33 vs NOx

mod.her <- lm(formula = Herstal_NOX ~ bc.ae33 , data = tmp1)
summary(mod.her)
## 
## Call:
## lm(formula = Herstal_NOX ~ bc.ae33, data = tmp1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -141.380   -7.605   -1.435    5.218  187.033 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   1.5959     0.4438   3.596 0.000327 ***
## bc.ae33      28.6382     0.1796 159.422  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 20.84 on 4009 degrees of freedom
##   (117 observations deleted due to missingness)
## Multiple R-squared:  0.8638, Adjusted R-squared:  0.8637 
## F-statistic: 2.542e+04 on 1 and 4009 DF,  p-value: < 2.2e-16

Régression linéaire simple BC AE33 vs NOx forcée à l'origine

mod.her <- lm(formula = Herstal_NOX ~ bc.ae33 - 1 , data = tmp1)
summary(mod.her)
## 
## Call:
## lm(formula = Herstal_NOX ~ bc.ae33 - 1, data = tmp1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -146.227   -6.572   -0.206    6.219  184.794 
## 
## Coefficients:
##         Estimate Std. Error t value Pr(>|t|)    
## bc.ae33  29.0715     0.1334   217.9   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 20.87 on 4010 degrees of freedom
##   (117 observations deleted due to missingness)
## Multiple R-squared:  0.9221, Adjusted R-squared:  0.9221 
## F-statistic: 4.748e+04 on 1 and 4010 DF,  p-value: < 2.2e-16

Période 2 : du 15/10/2016 au 03/01/2017

Sans prendre en considération le changement d'analyseur

Régression linéaire simple BC AE22 vs NOx

mod.her <- lm(formula = Herstal_NOX ~ Herstal_BC , data = tmp2)
summary(mod.her)
## 
## Call:
## lm(formula = Herstal_NOX ~ Herstal_BC, data = tmp2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -146.739  -10.673   -1.264    8.094  272.954 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   0.7285     0.9739   0.748    0.455    
## Herstal_BC   45.4475     0.4434 102.507   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 28.33 on 1669 degrees of freedom
##   (273 observations deleted due to missingness)
## Multiple R-squared:  0.8629, Adjusted R-squared:  0.8629 
## F-statistic: 1.051e+04 on 1 and 1669 DF,  p-value: < 2.2e-16

Régression linéaire simple BC AE22 vs NOx forcée à l'origine

mod.her <- lm(formula = Herstal_NOX ~ Herstal_BC - 1 , data = tmp2)
summary(mod.her)
## 
## Call:
## lm(formula = Herstal_NOX ~ Herstal_BC - 1, data = tmp2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -148.697  -10.162   -0.717    8.586  272.138 
## 
## Coefficients:
##            Estimate Std. Error t value Pr(>|t|)    
## Herstal_BC  45.6806     0.3154   144.8   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 28.32 on 1670 degrees of freedom
##   (273 observations deleted due to missingness)
## Multiple R-squared:  0.9262, Adjusted R-squared:  0.9262 
## F-statistic: 2.097e+04 on 1 and 1670 DF,  p-value: < 2.2e-16

Régression linéaire simple BC AE33 vs NOx

mod.her <- lm(formula = Herstal_NOX ~ bc.ae33 , data = tmp2)
summary(mod.her)
## 
## Call:
## lm(formula = Herstal_NOX ~ bc.ae33, data = tmp2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -239.207  -11.097   -1.886    8.479  283.317 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   2.9994     0.9096   3.298 0.000994 ***
## bc.ae33      28.9787     0.2682 108.057  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 28.3 on 1866 degrees of freedom
##   (76 observations deleted due to missingness)
## Multiple R-squared:  0.8622, Adjusted R-squared:  0.8621 
## F-statistic: 1.168e+04 on 1 and 1866 DF,  p-value: < 2.2e-16

Régression linéaire simple BC AE33 vs NOx forcée à l'origine

mod.her <- lm(formula = Herstal_NOX ~ bc.ae33 - 1 , data = tmp2)
summary(mod.her)
## 
## Call:
## lm(formula = Herstal_NOX ~ bc.ae33 - 1, data = tmp2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -249.216   -9.265    0.330   10.204  280.203 
## 
## Coefficients:
##         Estimate Std. Error t value Pr(>|t|)    
## bc.ae33  29.5924     0.1936   152.9   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 28.38 on 1867 degrees of freedom
##   (76 observations deleted due to missingness)
## Multiple R-squared:  0.926,  Adjusted R-squared:  0.926 
## F-statistic: 2.336e+04 on 1 and 1867 DF,  p-value: < 2.2e-16

En tenant compte du changement de l'analyseur

Période 2.1 du 15/10/2016 au 22/12/2016

Régression linéaire simple BC AE22 vs NOx
mod.her <- lm(formula = Herstal_NOX ~ Herstal_BC , data = tmp2.titulaire)
summary(mod.her)
## 
## Call:
## lm(formula = Herstal_NOX ~ Herstal_BC, data = tmp2.titulaire)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -149.793  -10.811   -0.536    8.328  258.159 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -1.3607     1.1092  -1.227     0.22    
## Herstal_BC   47.9942     0.5302  90.528   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 28.49 on 1366 degrees of freedom
##   (264 observations deleted due to missingness)
## Multiple R-squared:  0.8571, Adjusted R-squared:  0.857 
## F-statistic:  8195 on 1 and 1366 DF,  p-value: < 2.2e-16
Régression linéaire simple BC AE22 vs NOx forcée à l'origine
mod.her <- lm(formula = Herstal_NOX ~ Herstal_BC - 1 , data = tmp2.titulaire)
summary(mod.her)
## 
## Call:
## lm(formula = Herstal_NOX ~ Herstal_BC - 1, data = tmp2.titulaire)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -147.457  -11.599   -1.427    7.529  259.902 
## 
## Coefficients:
##            Estimate Std. Error t value Pr(>|t|)    
## Herstal_BC  47.5262     0.3682   129.1   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 28.49 on 1367 degrees of freedom
##   (264 observations deleted due to missingness)
## Multiple R-squared:  0.9242, Adjusted R-squared:  0.9241 
## F-statistic: 1.666e+04 on 1 and 1367 DF,  p-value: < 2.2e-16
Régression linéaire simple BC AE33 vs NOx
mod.her <- lm(formula = Herstal_NOX ~ bc.ae33 , data = tmp2.titulaire)
summary(mod.her)
## 
## Call:
## lm(formula = Herstal_NOX ~ bc.ae33, data = tmp2.titulaire)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -143.099  -10.965   -1.288    8.406  270.453 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   0.8762     1.0156   0.863    0.388    
## bc.ae33      30.4831     0.3140  97.068   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 28.37 on 1577 degrees of freedom
##   (53 observations deleted due to missingness)
## Multiple R-squared:  0.8566, Adjusted R-squared:  0.8565 
## F-statistic:  9422 on 1 and 1577 DF,  p-value: < 2.2e-16
Régression linéaire simple BC AE33 vs NOx forcée à l'origine
mod.her <- lm(formula = Herstal_NOX ~ bc.ae33 - 1 , data = tmp2.titulaire)
summary(mod.her)
## 
## Call:
## lm(formula = Herstal_NOX ~ bc.ae33 - 1, data = tmp2.titulaire)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -144.831  -10.475   -0.516    8.936  269.410 
## 
## Coefficients:
##         Estimate Std. Error t value Pr(>|t|)    
## bc.ae33  30.6758     0.2208     139   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 28.37 on 1578 degrees of freedom
##   (53 observations deleted due to missingness)
## Multiple R-squared:  0.9245, Adjusted R-squared:  0.9244 
## F-statistic: 1.931e+04 on 1 and 1578 DF,  p-value: < 2.2e-16

Période 2.2 du 22/12/2016 au 03/01/2017

Régression linéaire simple BC AE22 vs NOx
mod.her <- lm(formula = Herstal_NOX ~ Herstal_BC , data = tmp2.rempl)
summary(mod.her)
## 
## Call:
## lm(formula = Herstal_NOX ~ Herstal_BC, data = tmp2.rempl)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -82.067  -7.686  -2.262   6.897 131.022 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   2.7738     1.6947   1.637    0.103    
## Herstal_BC   39.6611     0.6475  61.248   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 22.28 on 301 degrees of freedom
##   (9 observations deleted due to missingness)
## Multiple R-squared:  0.9257, Adjusted R-squared:  0.9255 
## F-statistic:  3751 on 1 and 301 DF,  p-value: < 2.2e-16
Régression linéaire simple BC AE22 vs NOx forcée à l'origine
mod.her <- lm(formula = Herstal_NOX ~ Herstal_BC - 1 , data = tmp2.rempl)
summary(mod.her)
## 
## Call:
## lm(formula = Herstal_NOX ~ Herstal_BC - 1, data = tmp2.rempl)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -87.300  -6.588  -0.127   8.294 128.066 
## 
## Coefficients:
##            Estimate Std. Error t value Pr(>|t|)    
## Herstal_BC  40.3556     0.4905   82.27   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 22.35 on 302 degrees of freedom
##   (9 observations deleted due to missingness)
## Multiple R-squared:  0.9573, Adjusted R-squared:  0.9571 
## F-statistic:  6768 on 1 and 302 DF,  p-value: < 2.2e-16
Régression linéaire simple BC AE33 vs NOx
mod.her <- lm(formula = Herstal_NOX ~ bc.ae33 , data = tmp2.rempl)
summary(mod.her)
## 
## Call:
## lm(formula = Herstal_NOX ~ bc.ae33, data = tmp2.rempl)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -159.241  -10.929   -2.836    8.044   90.064 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   6.0655     1.7086    3.55  0.00045 ***
## bc.ae33      25.0612     0.4119   60.84  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 22.36 on 287 degrees of freedom
##   (23 observations deleted due to missingness)
## Multiple R-squared:  0.928,  Adjusted R-squared:  0.9278 
## F-statistic:  3702 on 1 and 287 DF,  p-value: < 2.2e-16
Régression linéaire simple BC AE33 vs NOx forcée à l'origine
mod.her <- lm(formula = Herstal_NOX ~ bc.ae33 - 1 , data = tmp2.rempl)
summary(mod.her)
## 
## Call:
## lm(formula = Herstal_NOX ~ bc.ae33 - 1, data = tmp2.rempl)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -172.955   -6.431    1.861   11.810   90.474 
## 
## Coefficients:
##         Estimate Std. Error t value Pr(>|t|)    
## bc.ae33  25.9944     0.3234   80.37   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 22.81 on 288 degrees of freedom
##   (23 observations deleted due to missingness)
## Multiple R-squared:  0.9573, Adjusted R-squared:  0.9572 
## F-statistic:  6459 on 1 and 288 DF,  p-value: < 2.2e-16

Constat

En comparant les pentes obtenues avec les deux méthodes de mesures, on peut constater que ce coefficient est stable d'une période à l'autre avec l'analyseur AE33 :

  • Période 1 :

\[NOx = 29 \times BC\]

  • Période 2 :

\[NOx = 30 \times BC\]

Pour l'analyseur AE22, la pente a très nettement augmenté :

  • Période 1 :

\[NOx = 26 \times BC\]

  • Période 2 :

\[NOx = 46 \times BC\]

L'impact du Mean ratio ne se traduit pas vraiment au niveau de l'équation de régression linéaire pour l'analyseur AE22. D'ailleurs, on peut observer un comportement assez semblable pour l'analyseur AE33..

Pour l'analyseur AE33 :

  • Période 2.1 :

\[NOx = 31 \times BC\]

  • Période 2.2 :

\[NOx = 26 \times BC\]

Pour l'analyseur AE22 :

  • Période 2.1 :

\[NOx = 48 \times BC\]

  • Période 2.2 :

\[NOx = 40 \times BC\]