Importing data

library(xlsx)
library(Hmisc)
## Loading required package: lattice
## Loading required package: survival
## Warning: package 'survival' was built under R version 3.6.2
## Loading required package: Formula
## Loading required package: ggplot2
## 
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:base':
## 
##     format.pval, units
library(lubridate)
## 
## Attaching package: 'lubridate'
## The following object is masked from 'package:base':
## 
##     date
library(effects)
## Loading required package: carData
## Use the command
##     lattice::trellis.par.set(effectsTheme())
##   to customize lattice options for effects plots.
## See ?effectsTheme for details.
library(ggplot2)
library(prettyR)
## 
## Attaching package: 'prettyR'
## The following object is masked from 'package:Hmisc':
## 
##     describe
library(mgcv)
## Loading required package: nlme
## This is mgcv 1.8-28. For overview type 'help("mgcv-package")'.
#library(jtools)
#library(broom)
library(segmented)
library(splines)
library(mgcViz)
## Loading required package: qgam
## Loading required package: rgl
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
## Registered S3 method overwritten by 'mgcViz':
##   method from  
##   +.gg   GGally
## 
## Attaching package: 'mgcViz'
## The following object is masked from 'package:Hmisc':
## 
##     zoom
## The following object is masked from 'package:lattice':
## 
##     qq
## The following objects are masked from 'package:stats':
## 
##     qqline, qqnorm, qqplot
library(ggeffects)
library(devtools)
## Loading required package: usethis
## Warning: package 'usethis' was built under R version 3.6.3
## 
## Attaching package: 'devtools'
## The following object is masked from 'package:qgam':
## 
##     check
library(zoo)
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
#library(grid)
library(mvmeta)
## This is mvmeta 0.4.11. For an overview type: help('mvmeta-package').
library(dlnm)
## Warning: package 'dlnm' was built under R version 3.6.3
## This is dlnm 2.3.9. For details: help(dlnm) and vignette('dlnmOverview').
library(knitr)
## Warning: package 'knitr' was built under R version 3.6.2
library(kableExtra)
## Warning: package 'kableExtra' was built under R version 3.6.3
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 3.6.2
## -- Attaching packages ----------------------------------------------------------- tidyverse 1.3.0 --
## v tibble  2.1.3     v dplyr   0.8.3
## v tidyr   1.0.0     v stringr 1.4.0
## v readr   1.3.1     v forcats 0.4.0
## v purrr   0.3.3
## -- Conflicts -------------------------------------------------------------- tidyverse_conflicts() --
## x lubridate::as.difftime() masks base::as.difftime()
## x dplyr::collapse()        masks nlme::collapse()
## x lubridate::date()        masks base::date()
## x dplyr::filter()          masks stats::filter()
## x dplyr::group_rows()      masks kableExtra::group_rows()
## x lubridate::intersect()   masks base::intersect()
## x dplyr::lag()             masks stats::lag()
## x lubridate::setdiff()     masks base::setdiff()
## x dplyr::src()             masks Hmisc::src()
## x dplyr::summarize()       masks Hmisc::summarize()
## x lubridate::union()       masks base::union()
#library(R2jags)
#library(rjags)
library("writexl")
## Warning: package 'writexl' was built under R version 3.6.2
library(metafor)
## Warning: package 'metafor' was built under R version 3.6.3
## Loading required package: Matrix
## 
## Attaching package: 'Matrix'
## The following objects are masked from 'package:tidyr':
## 
##     expand, pack, unpack
## Loading 'metafor' package (version 2.4-0). For an overview 
## and introduction to the package please type: help(metafor).
## 
## Attaching package: 'metafor'
## The following object is masked from 'package:mvmeta':
## 
##     blup
library(forestplot)
## Warning: package 'forestplot' was built under R version 3.6.3
## Loading required package: grid
## Loading required package: magrittr
## 
## Attaching package: 'magrittr'
## The following object is masked from 'package:purrr':
## 
##     set_names
## The following object is masked from 'package:tidyr':
## 
##     extract
## Loading required package: checkmate
## Warning: package 'checkmate' was built under R version 3.6.3
## 
## Attaching package: 'checkmate'
## The following object is masked from 'package:mvmeta':
## 
##     qtest
library("writexl")
library(metafor)
library(hrbrthemes)
## Warning: package 'hrbrthemes' was built under R version 3.6.2
## NOTE: Either Arial Narrow or Roboto Condensed fonts are required to use these themes.
##       Please use hrbrthemes::import_roboto_condensed() to install Roboto Condensed and
##       if Arial Narrow is not on your system, please see http://bit.ly/arialnarrow
library(tidyverse)
library(ggridges)
## Warning: package 'ggridges' was built under R version 3.6.3
library(viridis)
## Loading required package: viridisLite
library(ggpubr)
## Warning: package 'ggpubr' was built under R version 3.6.2
library(R.utils)
## Loading required package: R.oo
## Loading required package: R.methodsS3
## R.methodsS3 v1.7.1 (2016-02-15) successfully loaded. See ?R.methodsS3 for help.
## R.oo v1.23.0 successfully loaded. See ?R.oo for help.
## 
## Attaching package: 'R.oo'
## The following object is masked from 'package:R.methodsS3':
## 
##     throw
## The following object is masked from 'package:magrittr':
## 
##     equals
## The following objects are masked from 'package:devtools':
## 
##     check, unload
## The following object is masked from 'package:qgam':
## 
##     check
## The following objects are masked from 'package:methods':
## 
##     getClasses, getMethods
## The following objects are masked from 'package:base':
## 
##     attach, detach, load, save
## R.utils v2.9.0 successfully loaded. See ?R.utils for help.
## 
## Attaching package: 'R.utils'
## The following object is masked from 'package:checkmate':
## 
##     asInt
## The following object is masked from 'package:magrittr':
## 
##     extract
## The following object is masked from 'package:tidyr':
## 
##     extract
## The following object is masked from 'package:Hmisc':
## 
##     capitalize
## The following object is masked from 'package:utils':
## 
##     timestamp
## The following objects are masked from 'package:base':
## 
##     cat, commandArgs, getOption, inherits, isOpen, nullfile, parse,
##     warnings
BM<-read.xlsx("C:/Users/Anna/Dropbox/CEPEM/Bases/base_bm.xlsx",1)
bordeaux<-read.xlsx("C:/Users/Anna/Dropbox/CEPEM/Bases/base_bordeaux.xlsx",1)
clermont<-read.xlsx("C:/Users/Anna/Dropbox/CEPEM/Bases/base_clermont ferrant.xlsx",1)
dijon<-read.xlsx("C:/Users/Anna/Dropbox/CEPEM/Bases/base_Dijon.xlsx",1)
grenoble<-read.xlsx("C:/Users/Anna/Dropbox/CEPEM/Bases/base_Grenoble.xlsx",1)
lehavre<-read.xlsx("C:/Users/Anna/Dropbox/CEPEM/Bases/base_Le havre.xlsx",1)
lille<-read.xlsx("C:/Users/Anna/Dropbox/CEPEM/Bases/base_Lille.xlsx",1)
lyon<-read.xlsx("C:/Users/Anna/Dropbox/CEPEM/Bases/base_Lyon.xlsx",1)
marseille<-read.xlsx("C:/Users/Anna/Dropbox/CEPEM/Bases/base_Marseille.xlsx",1)
montpellier<-read.xlsx("C:/Users/Anna/Dropbox/CEPEM/Bases/base_Montpellier.xlsx",1)
nancy<-read.xlsx("C:/Users/Anna/Dropbox/CEPEM/Bases/base_Nancy.xlsx",1)
nantes<-read.xlsx("C:/Users/Anna/Dropbox/CEPEM/Bases/base_Nantes.xlsx",1)
nice<-read.xlsx("C:/Users/Anna/Dropbox/CEPEM/Bases/base_Nice.xlsx",1)
paris<-read.xlsx("C:/Users/Anna/Dropbox/CEPEM/Bases/base_Paris.xlsx",1)
rennes<-read.xlsx("C:/Users/Anna/Dropbox/CEPEM/Bases/base_Rennes.xlsx",1)
rouen<-read.xlsx("C:/Users/Anna/Dropbox/CEPEM/Bases/base_Rouen.xlsx",1)
strasbourg<-read.xlsx("C:/Users/Anna/Dropbox/CEPEM/Bases/base_StrasbourgVF.xlsx",1)
toulouse<-read.xlsx("C:/Users/Anna/Dropbox/CEPEM/Bases/base_Toulouse.xlsx",1)

Data management

In order to handle all the database together, I create a list:

# Make variable names consistent between table
toulouse <- toulouse %>% rename(tempmaxmoy7j=tempmaxmoy) 

villes<-list(BM,bordeaux,clermont,dijon,grenoble,lehavre,lille,lyon,marseille,montpellier,nancy,nantes,nice,paris,rennes,rouen,strasbourg,toulouse)

names<-c("BM","bordeaux","clermont","dijon","grenoble","lehavre","lille","lyon","marseille","montpellier","nancy","nantes","nice", "paris","rennes","rouen","strasbourg","toulouse")

names(villes)<-names

I may also have created a unique dataframe with all the table and stating a grouping by “city” variable.

We have mortality data only untill 2015, so I reduce database to 2000-2015 period:

villes<-lapply(villes,function(x){x<-x[x$Dates<"2016-01-01",]})

Basic statistics and visualisation of data

For temperature

For Mean temperature

lapply(villes,function(x){summary(x$tempmoy)})
## $BM
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   -8.95    6.70   11.53   11.17   15.96   28.05       1 
## 
## $bordeaux
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -5.550   9.412  14.100  13.927  18.830  31.250 
## 
## $clermont
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -10.60    7.05   12.35   12.15   17.60   30.25 
## 
## $dijon
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   -8.45    5.80   11.66   11.42   17.20   31.05 
## 
## $grenoble
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -13.00    5.60   11.70   11.36   17.20   29.15 
## 
## $lehavre
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  -4.596   7.891  11.750  11.682  15.908  29.325      16 
## 
## $lille
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   -8.95    6.70   11.53   11.17   15.96   28.05       1 
## 
## $lyon
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -8.300   7.188  13.338  13.045  19.021  31.925 
## 
## $marseille
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   -3.50   10.23   15.75   15.74   21.72   31.57       2 
## 
## $montpellier
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   -3.15   10.30   15.40   15.47   21.15   30.90 
## 
## $nancy
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  -11.20    5.60   11.35   11.04   16.63   29.55       1 
## 
## $nantes
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -4.800   8.662  12.750  12.629  17.100  31.300 
## 
## $nice
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   1.342  11.344  16.050  16.350  21.450  31.350       1 
## 
## $paris
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -5.425   7.858  12.850  12.698  17.650  32.425 
## 
## $rennes
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  -4.150   8.285  12.400  12.285  16.600  31.750       1 
## 
## $rouen
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   -7.45    6.50   11.10   10.81   15.41   29.33      19 
## 
## $strasbourg
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -11.58    5.73   11.70   11.38   17.40   29.20 
## 
## $toulouse
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   -7.30    8.85   14.01   14.03   19.51   31.83

For Max temperature:

lapply(villes,function(x){summary(x$tempmax)})
## $BM
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   -5.10    9.50   15.10   14.89   20.20   36.50       1 
## 
## $bordeaux
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   -3.20   13.10   18.60   18.61   24.10   40.40 
## 
## $clermont
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   -6.90   11.30   17.50   17.23   23.30   39.80 
## 
## $dijon
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   -5.00    9.40   16.30   16.03   22.60   39.30 
## 
## $grenoble
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   -7.00    9.80   16.80   16.49   23.20   39.50 
## 
## $lehavre
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   -2.70    9.80   14.10   14.13   18.30   36.30      16 
## 
## $lille
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   -5.10    9.50   15.10   14.89   20.20   36.50       1 
## 
## $lyon
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   -5.20   10.80   17.70   17.48   24.20   40.50 
## 
## $marseille
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   -1.00   14.50   20.40   20.55   26.80   38.20       2 
## 
## $montpellier
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   -0.60   14.50   19.80   20.12   25.90   37.20 
## 
## $nancy
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   -7.10    9.10   15.70   15.56   22.10   39.30       1 
## 
## $nantes
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   -2.50   12.20   16.90   17.04   21.90   39.20 
## 
## $nice
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    4.30   15.10   19.60   19.84   24.80   37.70       1 
## 
## $paris
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    -4.9    10.5    16.3    16.3    21.9    39.7 
## 
## $rennes
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   -1.10   11.90   16.60   16.72   21.60   39.50       1 
## 
## $rouen
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   -4.70    9.70   14.90   14.79   19.90   37.90      19 
## 
## $strasbourg
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   -8.40    9.10   16.40   15.98   22.80   38.70 
## 
## $toulouse
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   -4.30   12.50   18.60   18.64   24.60   40.40

For Min temperature:

lapply(villes,function(x){summary(x$tempmin)})
## $BM
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
## -13.400   3.400   7.800   7.492  11.900  22.600       1 
## 
## $bordeaux
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -8.800   5.400   9.700   9.456  14.100  23.400 
## 
## $clermont
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -17.100   2.400   7.400   7.066  12.100  23.300 
## 
## $dijon
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -18.700   1.700   7.000   6.815  12.000  23.100 
## 
## $grenoble
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -20.200   1.200   6.500   6.227  11.500  21.300 
## 
## $lehavre
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  -6.900   5.900   9.600   9.397  13.500  24.300      16 
## 
## $lille
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
## -13.400   3.400   7.800   7.492  11.900  22.600       1 
## 
## $lyon
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -12.70    3.30    9.00    8.63   14.10   24.60 
## 
## $marseille
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   -9.50    6.10   11.50   11.13   16.80   27.00       2 
## 
## $montpellier
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   -9.80    5.80   11.10   10.84   16.40   25.70 
## 
## $nancy
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  -15.60    1.70    6.80    6.47   11.60   22.20       1 
## 
## $nantes
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -9.600   4.600   8.800   8.254  12.300  23.800 
## 
## $nice
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    -2.1     7.8    12.8    12.9    18.0    28.1       1 
## 
## $paris
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -8.700   5.100   9.400   9.215  13.700  25.700 
## 
## $rennes
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  -9.300   4.200   8.300   7.883  11.900  24.000       1 
## 
## $rouen
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
## -12.100   3.100   7.300   6.903  11.100  21.900      19 
## 
## $strasbourg
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -17.700   1.875   7.100   6.895  12.200  21.600 
## 
## $toulouse
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -12.50    4.90    9.80    9.54   14.70   24.10

Cities of BM, Le Havre, Lille, Marseille, Nancy, Nice, Rennes and Rouen have missind data for temperature.

For Mortality

For Non accidental mortality:

lapply(villes,function(x){summary(x$nocc_tot)})
## $BM
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   1.000   6.000   8.000   8.542  11.000  23.000       1 
## 
## $bordeaux
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    2.00   10.00   12.00   12.48   15.00   36.00 
## 
## $clermont
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   0.000   4.000   5.000   5.633   7.000  16.000      18 
## 
## $dijon
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    3.00    4.00    4.54    6.00   14.00      56 
## 
## $grenoble
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   0.000   6.000   8.000   7.716  10.000  21.000       3 
## 
## $lehavre
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   0.000   4.000   6.000   5.748   7.000  16.000      13 
## 
## $lille
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    7.00   17.00   21.00   20.98   24.00   45.00 
## 
## $lyon
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    4.00   15.00   18.00   18.23   21.00   75.00 
## 
## $marseille
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    7.00   18.00   22.00   21.91   25.00   45.00 
## 
## $montpellier
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   0.000   4.000   6.000   6.352   8.000  18.000       6 
## 
## $nancy
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    5.00    7.00    6.78    8.00   24.00       4 
## 
## $nantes
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     1.0     8.0    10.0    10.3    12.0    32.0 
## 
## $nice
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    9.00   12.00   12.12   15.00   33.00 
## 
## $paris
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    60.0    96.0   105.0   106.5   115.0   724.0 
## 
## $rennes
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    2.00    4.00    3.92    5.00   13.00      84 
## 
## $rouen
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   8.000  10.000   9.838  12.000  28.000 
## 
## $strasbourg
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   6.000   8.000   8.402  10.000  23.000 
## 
## $toulouse
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    9.00   12.00   11.87   14.00   34.00

For Cardiovasculal Mortality:

lapply(villes,function(x){summary(x$cv_tot)})
## $BM
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   0.000   1.000   2.000   2.327   3.000   9.000       1 
## 
## $bordeaux
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   2.000   3.000   3.658   5.000  14.000 
## 
## $clermont
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   0.000   1.000   1.000   1.633   2.000   8.000      18 
## 
## $dijon
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   0.000   0.000   1.000   1.258   2.000   7.000      56 
## 
## $grenoble
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   0.000   1.000   2.000   2.181   3.000  11.000       2 
## 
## $lehavre
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   0.000   1.000   1.000   1.553   2.000   8.000      13 
## 
## $lille
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   4.000   5.000   5.695   7.000  18.000 
## 
## $lyon
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   3.000   5.000   4.983   6.000  22.000 
## 
## $marseille
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   4.000   6.000   6.391   8.000  23.000 
## 
## $montpellier
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   0.000   1.000   2.000   1.847   3.000   8.000       6 
## 
## $nancy
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   0.000   1.000   2.000   1.841   3.000  10.000       4 
## 
## $nantes
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   2.000   3.000   2.899   4.000  12.000 
## 
## $nice
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   2.000   3.000   3.513   5.000  13.000 
## 
## $paris
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     8.0    22.0    26.0    26.5    31.0   179.0 
## 
## $rennes
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   0.000   0.000   1.000   1.191   2.000   7.000      82 
## 
## $rouen
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   2.000   3.000   2.814   4.000  14.000 
## 
## $strasbourg
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   1.000   2.000   2.439   3.000  11.000 
## 
## $toulouse
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   2.000   3.000   3.339   5.000  14.000

For Respiratory mortality:

lapply(villes,function(x){summary(x$respi_tot)})
## $BM
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  0.0000  0.0000  1.0000  0.7927  1.0000  7.0000       1 
## 
## $bordeaux
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0000  1.0000  0.8214  1.0000  6.0000 
## 
## $clermont
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  0.0000  0.0000  0.0000  0.3417  1.0000  4.0000      18 
## 
## $dijon
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  0.0000  0.0000  0.0000  0.2916  0.0000  4.0000      56 
## 
## $grenoble
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  0.0000  0.0000  0.0000  0.4765  1.0000  8.0000       2 
## 
## $lehavre
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  0.0000  0.0000  0.0000  0.3541  1.0000  4.0000      13 
## 
## $lille
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   1.000   1.000   1.574   2.000  12.000 
## 
## $lyon
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.000   1.000   1.126   2.000   8.000 
## 
## $marseille
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   1.000   1.000   1.565   2.000  11.000 
## 
## $montpellier
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  0.0000  0.0000  0.0000  0.4322  1.0000  5.0000       6 
## 
## $nancy
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  0.0000  0.0000  0.0000  0.5252  1.0000  5.0000       4 
## 
## $nantes
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0000  0.0000  0.6475  1.0000  9.0000 
## 
## $nice
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0000  1.0000  0.8251  1.0000  6.0000 
## 
## $paris
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   5.000   6.000   6.827   9.000  52.000 
## 
## $rennes
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  0.0000  0.0000  0.0000  0.3133  1.0000  4.0000      82 
## 
## $rouen
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0000  0.0000  0.6244  1.0000  5.0000 
## 
## $strasbourg
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0000  0.0000  0.5346  1.0000  7.0000 
## 
## $toulouse
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0000  1.0000  0.7414  1.0000  7.0000

Imputing Missing data

To manage missing data for temperature I decide to imput missing data values according to these rules: - for mean and minumum temperature, when only one day value is missing, I impute by doing an average of value of previous and following days. When a longer period is missing (normally, a week), I impute by setting the value as an average between the value of the previous weekend and the following week - for maximum temperature, I impute by getting the value for the variable tempmax over 7 days

## imputation NA for Marseille
## imput NA temp max
villes[["marseille"]]$tempmax[which(is.na(villes[["marseille"]]$tempmax))] <- villes[["marseille"]]$tempmaxmoy7j[which(is.na(villes[["marseille"]]$tempmax))]

## imput NA temp min
for (r in 2:nrow(villes[["marseille"]])) {
    mm<-c(villes[["marseille"]]$tempmin[r-2],villes[["marseille"]]$tempmin[r+2])
    meantt<-mean(mm)
    villes[["marseille"]]$tempmin[r] <- if (is.na(villes[["marseille"]]$tempmin[r])) meantt else villes[["marseille"]]$tempmin[r]
  }

## imput NA temp moy
for (r in 2:nrow(villes[["marseille"]])) {
    mm<-c(villes[["marseille"]]$tempmoy[r-2],villes[["marseille"]]$tempmoy[r+2])
    meantt<-mean(mm)
    villes[["marseille"]]$tempmoy[r] <- if (is.na(villes[["marseille"]]$tempmoy[r])) meantt else villes[["marseille"]]$tempmoy[r]
  }

## Imputation NA for BM
## imput NA temp max
villes[["BM"]]$tempmax[which(is.na(villes[["BM"]]$tempmax))] <- villes[["BM"]]$tempmaxmoy7j[which(is.na(villes[["BM"]]$tempmax))]

## imput NA temp min
for (r in 2:nrow(villes[["BM"]])) {
    mm<-c(villes[["BM"]]$tempmin[r-2],villes[["BM"]]$tempmin[r+2])
    meantt<-mean(mm)
    villes[["BM"]]$tempmin[r] <- if (is.na(villes[["BM"]]$tempmin[r])) meantt else villes[["BM"]]$tempmin[r]
  }

## imput NA temp moy
for (r in 2:nrow(villes[["BM"]])) {
    mm<-c(villes[["BM"]]$tempmoy[r-2],villes[["BM"]]$tempmoy[r+2])
    meantt<-mean(mm)
    villes[["BM"]]$tempmoy[r] <- if (is.na(villes[["BM"]]$tempmoy[r])) meantt else villes[["BM"]]$tempmoy[r]
  }

## Imputation NA for Lille
# imput NA temp max
villes[["lille"]]$tempmax[which(is.na(villes[["lille"]]$tempmax))] <- villes[["lille"]]$tempmaxmoy7j[which(is.na(villes[["lille"]]$tempmax))]

## imput NA temp min
for (r in 2:nrow(villes[["lille"]])) {
    mm<-c(villes[["lille"]]$tempmin[r-2],villes[["lille"]]$tempmin[r+2])
    meantt<-mean(mm)
    villes[["lille"]]$tempmin[r] <- if (is.na(villes[["lille"]]$tempmin[r])) meantt else villes[["lille"]]$tempmin[r]
  }

## imput NA temp moy
for (r in 2:nrow(villes[["lille"]])) {
    mm<-c(villes[["lille"]]$tempmoy[r-2],villes[["lille"]]$tempmoy[r+2])
    meantt<-mean(mm)
    villes[["lille"]]$tempmoy[r] <- if (is.na(villes[["lille"]]$tempmoy[r])) meantt else villes[["lille"]]$tempmoy[r]
  }

## Imputation NA for Nancy
## imput NA temp max
villes[["nancy"]]$tempmax[which(is.na(villes[["nancy"]]$tempmax))] <- villes[["nancy"]]$tempmaxmoy7j[which(is.na(villes[["nancy"]]$tempmax))]

## imput NA temp min
for (r in 2:nrow(villes[["nancy"]])) {
    mm<-c(villes[["nancy"]]$tempmin[r-2],villes[["nancy"]]$tempmin[r+2])
    meantt<-mean(mm)
    villes[["nancy"]]$tempmin[r] <- if (is.na(villes[["nancy"]]$tempmin[r])) meantt else villes[["nancy"]]$tempmin[r]
  }

## imput NA temp moy
for (r in 2:nrow(villes[["nancy"]])) {
    mm<-c(villes[["nancy"]]$tempmoy[r-2],villes[["nancy"]]$tempmoy[r+2])
    meantt<-mean(mm)
    villes[["nancy"]]$tempmoy[r] <- if (is.na(villes[["nancy"]]$tempmoy[r])) meantt else villes[["nancy"]]$tempmoy[r]
  }

## Imputation NA for Nice
## imput NA temp max
villes[["nice"]]$tempmax[which(is.na(villes[["nice"]]$tempmax))] <- villes[["nice"]]$tempmaxmoy7j[which(is.na(villes[["nice"]]$tempmax))]

## imput NA temp min
for (r in 2:nrow(villes[["nice"]])) {
    mm<-c(villes[["nice"]]$tempmin[r-2],villes[["nice"]]$tempmin[r+2])
    meantt<-mean(mm)
    villes[["nice"]]$tempmin[r] <- if (is.na(villes[["nice"]]$tempmin[r])) meantt else villes[["nice"]]$tempmin[r]
  }

## imput NA temp moy
for (r in 2:nrow(villes[["nice"]])) {
    mm<-c(villes[["nice"]]$tempmoy[r-2],villes[["nice"]]$tempmoy[r+2])
    meantt<-mean(mm)
    villes[["nice"]]$tempmoy[r] <- if (is.na(villes[["nice"]]$tempmoy[r])) meantt else villes[["nice"]]$tempmoy[r]
  }

## Imputation NA for Rennes
## imput NA temp max
villes[["rennes"]]$tempmax[which(is.na(villes[["rennes"]]$tempmax))] <- villes[["rennes"]]$tempmaxmoy7j[which(is.na(villes[["rennes"]]$tempmax))]

## imput NA temp min
for (r in 2:nrow(villes[["rennes"]])) {
    mm<-c(villes[["rennes"]]$tempmin[r-2],villes[["rennes"]]$tempmin[r+2])
    meantt<-mean(mm)
    villes[["rennes"]]$tempmin[r] <- if (is.na(villes[["rennes"]]$tempmin[r])) meantt else villes[["rennes"]]$tempmin[r]
  }

## imput NA temp moy
for (r in 2:nrow(villes[["rennes"]])) {
    mm<-c(villes[["rennes"]]$tempmoy[r-2],villes[["rennes"]]$tempmoy[r+2])
    meantt<-mean(mm)
    villes[["rennes"]]$tempmoy[r] <- if (is.na(villes[["rennes"]]$tempmoy[r])) meantt else villes[["rennes"]]$tempmoy[r]
  }

## imputation NA for Le Havre
## imput NA temp moy 
villes[["lehavre"]]$tempmax[which(is.na(villes[["lehavre"]]$tempmax))] <- villes[["lehavre"]]$tempmaxmoy7j[which(is.na(villes[["lehavre"]]$tempmax))]


## imput NA temp moy 
# for only one specific day
villes[["lehavre"]]$tempmoy[which(villes[["lehavre"]]$Dates=="2000-05-07")]<-mean(villes[["lehavre"]]$tempmoy[which(villes[["lehavre"]]$Dates=="2000-05-06")],villes[["lehavre"]]$tempmoy[which(villes[["lehavre"]]$Dates=="2000-05-08")])

villes[["lehavre"]]$tempmoy[which(villes[["lehavre"]]$Dates=="2003-02-25")]<-mean(villes[["lehavre"]]$tempmoy[which(villes[["lehavre"]]$Dates=="2003-02-26")],villes[["lehavre"]]$tempmoy[which(villes[["lehavre"]]$Dates=="2003-02-24")])

# List of longer Period with NA (need of package?)
period1<-as.Date(c(as.Date("2007-10-21"):as.Date("2007-10-27")))
period2<-as.Date(c(as.Date("2007-11-03"):as.Date("2007-11-09")))

## Previous and following weeks to compute mean value
period1bef<-as.Date(c(as.Date("2007-10-15"):as.Date("2007-10-20")))
period1aft<-as.Date(c(as.Date("2007-10-28"):as.Date("2007-11-02")))

period2aft<-as.Date(c(as.Date("2007-11-10"):as.Date("2007-11-15")))

## imput NA tempmoy La Havre
villes[["lehavre"]]$tempmoy[which(villes[["lehavre"]]$Dates %in% period1)]<-mean(villes[["lehavre"]]$tempmoy[which(villes[["lehavre"]]$Dates %in% c(period1bef,period1aft))])
villes[["lehavre"]]$tempmoy[which(villes[["lehavre"]]$Dates %in% period2)]<-mean(villes[["lehavre"]]$tempmoy[which(villes[["lehavre"]]$Dates %in% c(period1aft,period2aft))])

## Imput NA tempmin
# for only one specific day
villes[["lehavre"]]$tempmin[which(villes[["lehavre"]]$Dates=="2000-05-07")]<-mean(villes[["lehavre"]]$tempmin[which(villes[["lehavre"]]$Dates=="2000-05-06")],villes[["lehavre"]]$tempmin[which(villes[["lehavre"]]$Dates=="2000-05-08")])

villes[["lehavre"]]$tempmin[which(villes[["lehavre"]]$Dates=="2003-02-25")]<-mean(villes[["lehavre"]]$tempmin[which(villes[["lehavre"]]$Dates=="2003-02-26")],villes[["lehavre"]]$tempmin[which(villes[["lehavre"]]$Dates=="2003-02-24")])

## imput NA tempmin La Havre
villes[["lehavre"]]$tempmin[which(villes[["lehavre"]]$Dates %in% period1)]<-mean(villes[["lehavre"]]$tempmin[which(villes[["lehavre"]]$Dates %in% c(period1bef,period1aft))])
villes[["lehavre"]]$tempmin[which(villes[["lehavre"]]$Dates %in% period2)]<-mean(villes[["lehavre"]]$tempmin[which(villes[["lehavre"]]$Dates %in% c(period1aft,period2aft))])


## imputation NA pour rouen
villes[["rouen"]]$tempmax[which(is.na(villes[["rouen"]]$tempmax))] <- villes[["rouen"]]$tempmaxmoy7j[which(is.na(villes[["rouen"]]$tempmax))]

## imput NA temp moy 
# for only one specific day
villes[["rouen"]]$tempmoy[which(villes[["rouen"]]$Dates=="2004-08-17")]<-mean(villes[["rouen"]]$tempmoy[which(villes[["rouen"]]$Dates=="2004-08-16")],villes[["rouen"]]$tempmoy[which(villes[["rouen"]]$Dates=="2004-08-18")])

# List of longer Period with NA (need of package?)
period1<-as.Date(c(as.Date("2003-06-14"):as.Date("2003-06-19")))
period2<-as.Date(c(as.Date("2004-08-03"):as.Date("2004-08-05")))
period3<-as.Date(c(as.Date("2009-03-17"):as.Date("2009-03-25")))

## Previous and following weeks to compute mean value
period1bef<-as.Date(c(as.Date("2003-06-08"):as.Date("2003-06-13")))
period1aft<-as.Date(c(as.Date("2003-06-20"):as.Date("2003-06-25")))

period2bef<-as.Date(c(as.Date("2004-07-29"):as.Date("2004-08-02")))
period2aft<-as.Date(c(as.Date("2004-08-06"):as.Date("2004-08-11")))

period3bef<-as.Date(c(as.Date("2009-03-11"):as.Date("2009-03-16")))
period3aft<-as.Date(c(as.Date("2009-03-26"):as.Date("2009-03-30")))


## imput tempmoy NA Rouen
                    
villes[["rouen"]]$tempmoy[which(villes[["rouen"]]$Dates %in% period1)]<-mean(villes[["rouen"]]$tempmoy[which(villes[["rouen"]]$Dates %in% c(period1bef,period1aft))])
villes[["rouen"]]$tempmoy[which(villes[["rouen"]]$Dates %in% period2)]<-mean(villes[["rouen"]]$tempmoy[which(villes[["rouen"]]$Dates %in% c(period2bef,period2aft))])
villes[["rouen"]]$tempmoy[which(villes[["rouen"]]$Dates %in% period3)]<-mean(villes[["rouen"]]$tempmoy[which(villes[["rouen"]]$Dates %in% c(period3bef,period3aft))])

Graphical Representation of the Data

I create a unique database for graphic representation

lapply(villes,function(x){summary(x$Zone)})
## $BM
##   bm NA's 
## 5843    1 
## 
## $bordeaux
## bordeaux 
##     5844 
## 
## $clermont
## clermont     NA's 
##     5826       18 
## 
## $dijon
## dijon  NA's 
##  5788    56 
## 
## $grenoble
## grenoble     NA's 
##     5842        2 
## 
## $lehavre
## lehavre    NA's 
##    5831      13 
## 
## $lille
## lille 
##  5844 
## 
## $lyon
## lyon 
## 5844 
## 
## $marseille
## marseille 
##      5844 
## 
## $montpellier
## montpellier        NA's 
##        5838           6 
## 
## $nancy
##  ncy NA's 
## 5840    4 
## 
## $nantes
## ntes 
## 5844 
## 
## $nice
## nice 
## 5844 
## 
## $paris
## paris 
##  5844 
## 
## $rennes
## rennes   NA's 
##   5762     82 
## 
## $rouen
## rouen 
##  5844 
## 
## $strasbourg
## strasbourg 
##       5844 
## 
## $toulouse
## toulouse 
##     5844
#bb<-function(x){x$Zone<-if (is.na(x$Zone)) {x$Zone=levels(x$Zone)} else {x$Zone=x$Zone}}
#lapply(villes,bb)
#test<-lapply(villes,function(x){x$Zone[which(is.na(x$Zone))]<-levels(x$Zone)})
## Impute missing data for Zone

for (i in 1:18){
villes[[i]]$Zone[which(is.na(villes[[i]]$Zone))]<-levels(villes[[i]]$Zone)
}
 
data<-rbind(villes[["BM"]],villes[["bordeaux"]],villes[["clermont"]],villes[["dijon"]],villes[["grenoble"]],villes[["lehavre"]],villes[["lille"]],villes[["lyon"]],villes[["marseille"]],villes[["montpellier"]],villes[["nancy"]],villes[["nantes"]],villes[["nice"]],villes[["paris"]],villes[["rennes"]],villes[["rouen"]],villes[["strasbourg"]],villes[["toulouse"]])

data <- data %>% group_by(Zone)

Average Temprature DIstribution:

ggplot(data, aes(x = tempmoy, y = Zone, fill=..x..)) +
  geom_density_ridges_gradient(scale = 3, rel_min_height = 0.01) +
  scale_fill_viridis(option = "B") + xlab("Temperature [°C]") + 
  ylab("Urban Agglomeration") +
  theme_ipsum() +
    theme(
      legend.position="none",
      panel.spacing = unit(0.1, "lines"),
      strip.text.x = element_text(size = 8)
    )
## Picking joint bandwidth of 1.05
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): famille de
## police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): famille de
## police introuvable dans la base de données des polices Windows
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

Descriptive Statistics:

tabdesc<-data %>% summarise(
  'Temp 25 Perc'=quantile(tempmoy)[2],
  'Mean Temp'=mean(tempmoy),
  'Temp 75 Perc'=quantile(tempmoy)[4],
      )

tabdesc[,2:4]<-round(tabdesc[,2:4],digits = 2)
tabdesc %>% kable(caption = "Average Temperature statistics per City") %>% kable_styling(bootstrap_options = c("hover", "condensed","bordered"),full_width = F)%>% add_header_above(c(" ", "Average Temperature" = 3))%>%
  column_spec(1, bold = T, border_right = T)%>%
  column_spec(4, border_right = T)
Average Temperature statistics per City
Average Temperature
Zone Temp 25 Perc Mean Temp Temp 75 Perc
bm 6.70 11.18 15.96
bordeaux 9.41 13.93 18.83
clermont 7.05 12.15 17.60
dijon 5.80 11.42 17.20
grenoble 5.60 11.36 17.20
lehavre 7.90 11.68 15.90
lille 6.70 11.18 15.96
lyon 7.19 13.04 19.02
marseille 10.23 15.74 21.72
montpellier 10.30 15.47 21.15
ncy 5.60 11.03 16.63
ntes 8.66 12.63 17.10
nice 11.35 16.35 21.45
paris 7.86 12.70 17.65
rennes 8.28 12.28 16.60
rouen 6.51 10.82 15.42
strasbourg 5.73 11.38 17.40
toulouse 8.85 14.03 19.51

Maximum Temprature DIstribution:

ggplot(data, aes(x = tempmax, y = Zone, fill=..x..)) +
  geom_density_ridges_gradient(scale = 3, rel_min_height = 0.01) +
  scale_fill_viridis(option = "B") + xlab("Temperature [°C]") + 
  ylab("Urban Agglomeration") +
  theme_ipsum() +
    theme(
      legend.position="none",
      panel.spacing = unit(0.1, "lines"),
      strip.text.x = element_text(size = 8)
    )
## Picking joint bandwidth of 1.2
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

Descriptive Statistics:

tabdesc<-data %>% summarise(
  'Temp 25 Perc'=quantile(tempmax)[2],
  'Mean Temp'=mean(tempmax),
  'Temp 75 Perc'=quantile(tempmax)[4],
      )

tabdesc[,2:4]<-round(tabdesc[,2:4],digits = 2)
tabdesc %>% kable(caption = "Maximum Temperature statistics per City") %>% kable_styling(bootstrap_options = c("hover", "condensed","bordered"),full_width = F)%>% add_header_above(c(" ", "MAx Temperature" = 3))%>%
  column_spec(1, bold = T, border_right = T)%>%
  column_spec(4, border_right = T)
Maximum Temperature statistics per City
MAx Temperature
Zone Temp 25 Perc Mean Temp Temp 75 Perc
bm 9.5 14.89 20.2
bordeaux 13.1 18.61 24.1
clermont 11.3 17.23 23.3
dijon 9.4 16.03 22.6
grenoble 9.8 16.49 23.2
lehavre 9.8 14.13 18.3
lille 9.5 14.89 20.2
lyon 10.8 17.48 24.2
marseille 14.5 20.56 26.8
montpellier 14.5 20.12 25.9
ncy 9.1 15.56 22.1
ntes 12.2 17.04 21.9
nice 15.1 19.84 24.8
paris 10.5 16.30 21.9
rennes 11.9 16.72 21.6
rouen 9.7 14.80 20.0
strasbourg 9.1 15.98 22.8
toulouse 12.5 18.64 24.6

Minimum Temprature DIstribution:

ggplot(data, aes(x = tempmin, y = Zone, fill=..x..)) +
  geom_density_ridges_gradient(scale = 3, rel_min_height = 0.01) +
  scale_fill_viridis(option = "B") + xlab("Temperature [°C]") + 
  ylab("Urban Agglomeration") +
  theme_ipsum() +
    theme(
      legend.position="none",
      panel.spacing = unit(0.1, "lines"),
      strip.text.x = element_text(size = 8)
    )
## Picking joint bandwidth of 0.963
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

Descriptive Statistics:

tabdesc<-data %>% summarise(
  'Temp 25 Perc'=quantile(tempmin,na.rm = TRUE)[2],
  'Mean Temp'=mean(tempmin,na.rm = TRUE),
  'Temp 75 Perc'=quantile(tempmin, na.rm = TRUE)[4],
      )

tabdesc[,2:4]<-round(tabdesc[,2:4],digits = 2)
tabdesc %>% kable(caption = "Minimum Temperature statistics per City") %>% kable_styling(bootstrap_options = c("hover", "condensed","bordered"),full_width = F)%>% add_header_above(c(" ", "Min Temperature" = 3))%>%
  column_spec(1, bold = T, border_right = T)%>%
  column_spec(4, border_right = T)
Minimum Temperature statistics per City
Min Temperature
Zone Temp 25 Perc Mean Temp Temp 75 Perc
bm 3.40 7.49 11.9
bordeaux 5.40 9.46 14.1
clermont 2.40 7.07 12.1
dijon 1.70 6.82 12.0
grenoble 1.20 6.23 11.5
lehavre 5.90 9.40 13.5
lille 3.40 7.49 11.9
lyon 3.30 8.63 14.1
marseille 6.10 11.13 16.8
montpellier 5.80 10.84 16.4
ncy 1.70 6.47 11.6
ntes 4.60 8.25 12.3
nice 7.80 12.90 18.0
paris 5.10 9.22 13.7
rennes 4.20 7.88 11.9
rouen 3.10 6.90 11.1
strasbourg 1.87 6.89 12.2
toulouse 4.90 9.54 14.7

Non accidental Mortality:

Paris:

plotmort<-villes[["paris"]]
plotmort$Dates<-as.Date(plotmort$Dates,format = "%y/%m/%d")

plotmort %>% 
  ggplot( aes(x=Dates, y=nocc_tot)) + scale_x_date(date_breaks = "1 year",date_labels = "%Y",limit=c(as.Date("2000-01-01"),as.Date("2015-12-31"))) +  geom_line(color="#69b3a2") +
  annotate(geom="text", x=as.Date("2003-08-12"), y=724,label="\n                       Canicule \n                      été 2003")+annotate(geom="point", x=as.Date("2003-08-12"), y=724, size=7, shape=21, fill="transparent") +
  annotate(geom="text", x=as.Date("2003-08-11"), y=497,label="\n                       Canicule \n                      été 2003")+annotate(geom="point", x=as.Date("2003-08-11"), y=497, size=7, shape=21, fill="transparent") +
  labs(y="Nombre") +
  theme_ipsum(plot_title_size = 16, axis_title_just=1)
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

Lyon:

plotmort<-villes[["lyon"]]
plotmort$Dates<-as.Date(plotmort$Dates,format = "%y/%m/%d")

plotmort %>% 
  ggplot( aes(x=Dates, y=nocc_tot)) + scale_x_date(date_breaks = "1 year",date_labels = "%Y",limit=c(as.Date("2000-01-01"),as.Date("2015-12-31"))) +  geom_line(color="#69b3a2") +
  labs(y="Nombre") +
  theme_ipsum(plot_title_size = 16, axis_title_just=1)
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

Marseille:

plotmort<-villes[["marseille"]]
plotmort$Dates<-as.Date(plotmort$Dates,format = "%y/%m/%d")

plotmort %>% 
  ggplot( aes(x=Dates, y=nocc_tot)) + scale_x_date(date_breaks = "1 year",date_labels = "%Y",limit=c(as.Date("2000-01-01"),as.Date("2015-12-31"))) +  geom_line(color="#69b3a2") +
  labs(y="Nombre") +
  theme_ipsum(plot_title_size = 16, axis_title_just=1)
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

Toulouse:

plotmort<-villes[["toulouse"]]
plotmort$Dates<-as.Date(plotmort$Dates,format = "%y/%m/%d")

plotmort %>% 
  ggplot( aes(x=Dates, y=nocc_tot)) + scale_x_date(date_breaks = "1 year",date_labels = "%Y",limit=c(as.Date("2000-01-01"),as.Date("2015-12-31"))) +  geom_line(color="#69b3a2") +
  labs(y="Nombre") +
  theme_ipsum(plot_title_size = 16, axis_title_just=1)
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## famille de police introuvable dans la base de données des polices Windows

Descriptive Statistics for Mortality:

tabmort<-data %>% summarise(
  'Minimum Nocc'=min(nocc_tot, na.rm=TRUE),
  'M Nocc'=mean(nocc_tot,na.rm=TRUE),
  'Max Nocc'=max(nocc_tot,na.rm=TRUE),
  'Minimum Cv'=min(cv_tot,na.rm=TRUE),
  'M Cv'=mean(cv_tot,na.rm=TRUE),
  'Max Cv'=max(cv_tot,na.rm=TRUE),
  'Minimum Respi'=min(respi_tot,na.rm=TRUE),
  'M Respi'=mean(respi_tot,na.rm=TRUE),
  'Max Respi'=max(respi_tot,na.rm=TRUE),
    )

tabmort %>% kable(caption = "Mortality per City") %>% kable_styling(bootstrap_options = c("hover", "condensed","bordered"),full_width = F)%>% add_header_above(c(" ", "Non Accidental Causes" = 3, "Cardiovascual Causes" = 3, "Respiratory causes"=3))%>%
  column_spec(1, bold = T, border_right = T)%>%
  column_spec(4, border_right = T)%>%
  column_spec(7, border_right = T)
Mortality per City
Non Accidental Causes
Cardiovascual Causes
Respiratory causes
Zone Minimum Nocc M Nocc Max Nocc Minimum Cv M Cv Max Cv Minimum Respi M Respi Max Respi
bm 1 8.542187 23 0 2.327058 9 0 0.7927435 7
bordeaux 2 12.483402 36 0 3.658453 14 0 0.8213552 6
clermont 0 5.633196 16 0 1.633024 8 0 0.3417439 4
dijon 0 4.539910 14 0 1.258120 7 0 0.2916379 4
grenoble 0 7.716145 21 0 2.180760 11 0 0.4765491 8
lehavre 0 5.747556 16 0 1.552564 8 0 0.3541417 4
lille 7 20.984086 45 0 5.694559 18 0 1.5735797 12
lyon 4 18.229637 75 0 4.982546 22 0 1.1264545 8
marseille 7 21.914613 45 0 6.390657 23 0 1.5645106 11
montpellier 0 6.351833 18 0 1.846694 8 0 0.4321686 5
ncy 0 6.780137 24 0 1.841438 10 0 0.5251712 5
ntes 1 10.303388 32 0 2.898700 12 0 0.6475017 9
nice 1 12.123546 33 0 3.512663 13 0 0.8251198 6
paris 60 106.479808 724 8 26.504791 179 0 6.8273443 52
rennes 0 3.919965 13 0 1.191253 7 0 0.3132593 4
rouen 1 9.837611 28 0 2.814168 14 0 0.6244011 5
strasbourg 1 8.401780 23 0 2.438912 11 0 0.5345654 7
toulouse 1 11.871834 34 0 3.338809 14 0 0.7414442 7

Creation of Heat Wave Variable and set up data set for analysis

Still some data management:

for(i in 1:length(villes)) {
  villes[[i]]$Vacances<-as.factor(villes[[i]]$Vacances)    #convert variable Vacances into factor
  villes[[i]]$annee<-as.factor(year(villes[[i]]$Dates))    #creation variable year and month
  villes[[i]]$mois<-as.factor(month(villes[[i]]$Dates))
  villes[[i]]$saison[villes[[i]]$mois %in% c("10","11","12","1","2","3","4")]<-"cold"    #create variable factor saison
  villes[[i]]$saison[villes[[i]]$mois %in% c("5","6","7","8","9")]<-"warm"    
}

# creation of no2 variable of today and previous day
#function filter {stats}
filter<-stats::filter
for (i in 1:length(villes)){
villes[[i]]<-transform(villes[[i]], no2moy = as.vector(filter(no2,sides = 1, filter = rep(1, 2))/2), no2Lag1=Lag(no2,1),no2Lag2=Lag(no2,2))
}  

Definition of Heat Wave threshold:

trshld975<-c()
trshld995<-c()

for (i in 1:length(villes)){
  trshld975[i]<-quantile(villes[[i]]$tempmoy, probs=c(0.975),na.rm=TRUE)
  trshld995[i]<-quantile(villes[[i]]$tempmoy, probs=c(0.995),na.rm=TRUE)
  }

Creation of Heat Wave Variable

## First condition for heat wave
for (i in 1:length(villes)){
  villes[[i]]$heat_wave1<-NA
  for (r in 3:nrow(villes[[i]])){
  villes[[i]]$heat_wave1[r]<-  if (villes[[i]]$tempmoy[r] >= trshld975[i] & villes[[i]]$tempmoy[r-1] >= trshld975[i] & villes[[i]]$tempmoy[r-2] >= trshld975[i] ) 1 else 0
  }}

## Second condition for heat wave
for (i in 1:length(villes)){
  for (r in 3:nrow(villes[[i]])){
  villes[[i]]$heat_wave[r]<-  if (villes[[i]]$heat_wave1[r] == 1 & (villes[[i]]$tempmoy[r] >= trshld995[i] | villes[[i]]$tempmoy[r-1] >= trshld995[i] | villes[[i]]$tempmoy[r-2] >= trshld995[i])) 1 else 0
  }}

See if heat wave variable is OK:

lapply(villes,function(x){summary(x$heat_wave)})
## $BM
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
## 0.000000 0.000000 0.000000 0.005135 0.000000 1.000000        2 
## 
## $bordeaux
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
## 0.00000 0.00000 0.00000 0.00445 0.00000 1.00000       2 
## 
## $clermont
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
## 0.000000 0.000000 0.000000 0.004108 0.000000 1.000000        2 
## 
## $dijon
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
## 0.000000 0.000000 0.000000 0.005306 0.000000 1.000000        2 
## 
## $grenoble
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
## 0.000000 0.000000 0.000000 0.006162 0.000000 1.000000        2 
## 
## $lehavre
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
## 0.000000 0.000000 0.000000 0.003937 0.000000 1.000000        2 
## 
## $lille
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
## 0.000000 0.000000 0.000000 0.005135 0.000000 1.000000        2 
## 
## $lyon
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
## 0.000000 0.000000 0.000000 0.005478 0.000000 1.000000        2 
## 
## $marseille
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
## 0.000000 0.000000 0.000000 0.005991 0.000000 1.000000        2 
## 
## $montpellier
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
## 0.000000 0.000000 0.000000 0.004793 0.000000 1.000000        2 
## 
## $nancy
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
## 0.000000 0.000000 0.000000 0.005478 0.000000 1.000000        2 
## 
## $nantes
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
## 0.000000 0.000000 0.000000 0.004108 0.000000 1.000000        2 
## 
## $nice
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
## 0.00000 0.00000 0.00000 0.00445 0.00000 1.00000       2 
## 
## $paris
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
## 0.000000 0.000000 0.000000 0.004622 0.000000 1.000000        2 
## 
## $rennes
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
## 0.000000 0.000000 0.000000 0.005478 0.000000 1.000000        2 
## 
## $rouen
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
## 0.000000 0.000000 0.000000 0.004279 0.000000 1.000000        2 
## 
## $strasbourg
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
## 0.000000 0.000000 0.000000 0.006505 0.000000 1.000000        2 
## 
## $toulouse
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
## 0.000000 0.000000 0.000000 0.004964 0.000000 1.000000        2
villes[[2]][which(is.na(villes[[2]]$heat_wave)),]
##        Dates    Jours jours_fÃ.riÃ.s Vacances tempmin tempmax  tempmoy
## 1 2000-01-01   samedi              1        1     7.8    11.8 9.608333
## 2 2000-01-02 dimanche              0        1     7.2    10.5 8.904167
##   tempmaxmoy7j     Zone total_tot nocc_tot cv_tot respi_tot total_75 nocc_75
## 1           NA bordeaux        21       19      6         0       10       9
## 2           NA bordeaux        16       14      8         1       12      11
##   cv_75 respi_75       o3    moyO3 no2 pm10full pm10moy pm25 annee mois saison
## 1     3        0 40.66667       NA  NA       NA      NA   NA  2000    1   cold
## 2     7        1 13.66667 27.16667  NA       NA      NA   NA  2000    1   cold
##   no2moy no2Lag1 no2Lag2 heat_wave1 heat_wave
## 1     NA      NA      NA         NA        NA
## 2     NA      NA      NA         NA        NA

The two first days of our study period have NAs (in Januray), but it’s fine because we will work only with summer data.

Number of Heat Wave for each city:

Heat wave=0 Heat wave=1
BM 5812 30
bordeaux 5816 26
clermont 5818 24
dijon 5811 31
grenoble 5806 36
lehavre 5819 23
lille 5812 30
lyon 5810 32
marseille 5807 35
montpellier 5814 28
nancy 5810 32
nantes 5818 24
nice 5816 26
paris 5815 27
rennes 5810 32
rouen 5817 25
strasbourg 5804 38
toulouse 5813 29

table of N obs of heat wave per month:

## $BM
##     
##        0   1
##   1  494   0
##   2  452   0
##   3  496   0
##   4  480   0
##   5  496   0
##   6  480   0
##   7  478  18
##   8  484  12
##   9  480   0
##   10 496   0
##   11 480   0
##   12 496   0
## 
## $bordeaux
##     
##        0   1
##   1  494   0
##   2  452   0
##   3  496   0
##   4  480   0
##   5  496   0
##   6  479   1
##   7  484  12
##   8  483  13
##   9  480   0
##   10 496   0
##   11 480   0
##   12 496   0
## 
## $clermont
##     
##        0   1
##   1  494   0
##   2  452   0
##   3  496   0
##   4  480   0
##   5  496   0
##   6  480   0
##   7  487   9
##   8  481  15
##   9  480   0
##   10 496   0
##   11 480   0
##   12 496   0
## 
## $dijon
##     
##        0   1
##   1  494   0
##   2  452   0
##   3  496   0
##   4  480   0
##   5  496   0
##   6  477   3
##   7  479  17
##   8  485  11
##   9  480   0
##   10 496   0
##   11 480   0
##   12 496   0
## 
## $grenoble
##     
##        0   1
##   1  494   0
##   2  452   0
##   3  496   0
##   4  480   0
##   5  496   0
##   6  475   5
##   7  482  14
##   8  479  17
##   9  480   0
##   10 496   0
##   11 480   0
##   12 496   0
## 
## $lehavre
##     
##        0   1
##   1  494   0
##   2  452   0
##   3  496   0
##   4  480   0
##   5  496   0
##   6  479   1
##   7  480  16
##   8  490   6
##   9  480   0
##   10 496   0
##   11 480   0
##   12 496   0
## 
## $lille
##     
##        0   1
##   1  494   0
##   2  452   0
##   3  496   0
##   4  480   0
##   5  496   0
##   6  480   0
##   7  478  18
##   8  484  12
##   9  480   0
##   10 496   0
##   11 480   0
##   12 496   0
## 
## $lyon
##     
##        0   1
##   1  494   0
##   2  452   0
##   3  496   0
##   4  480   0
##   5  496   0
##   6  476   4
##   7  482  14
##   8  482  14
##   9  480   0
##   10 496   0
##   11 480   0
##   12 496   0
## 
## $marseille
##     
##        0   1
##   1  494   0
##   2  452   0
##   3  496   0
##   4  480   0
##   5  496   0
##   6  480   0
##   7  477  19
##   8  480  16
##   9  480   0
##   10 496   0
##   11 480   0
##   12 496   0
## 
## $montpellier
##     
##        0   1
##   1  494   0
##   2  452   0
##   3  496   0
##   4  480   0
##   5  496   0
##   6  474   6
##   7  479  17
##   8  491   5
##   9  480   0
##   10 496   0
##   11 480   0
##   12 496   0
## 
## $nancy
##     
##        0   1
##   1  494   0
##   2  452   0
##   3  496   0
##   4  480   0
##   5  496   0
##   6  478   2
##   7  481  15
##   8  481  15
##   9  480   0
##   10 496   0
##   11 480   0
##   12 496   0
## 
## $nantes
##     
##        0   1
##   1  494   0
##   2  452   0
##   3  496   0
##   4  480   0
##   5  496   0
##   6  479   1
##   7  483  13
##   8  486  10
##   9  480   0
##   10 496   0
##   11 480   0
##   12 496   0
## 
## $nice
##     
##        0   1
##   1  494   0
##   2  452   0
##   3  496   0
##   4  480   0
##   5  496   0
##   6  480   0
##   7  490   6
##   8  476  20
##   9  480   0
##   10 496   0
##   11 480   0
##   12 496   0
## 
## $paris
##     
##        0   1
##   1  494   0
##   2  452   0
##   3  496   0
##   4  480   0
##   5  496   0
##   6  480   0
##   7  482  14
##   8  483  13
##   9  480   0
##   10 496   0
##   11 480   0
##   12 496   0
## 
## $rennes
##     
##        0   1
##   1  494   0
##   2  452   0
##   3  496   0
##   4  480   0
##   5  496   0
##   6  479   1
##   7  483  13
##   8  478  18
##   9  480   0
##   10 496   0
##   11 480   0
##   12 496   0
## 
## $rouen
##     
##        0   1
##   1  494   0
##   2  452   0
##   3  496   0
##   4  480   0
##   5  496   0
##   6  480   0
##   7  484  12
##   8  483  13
##   9  480   0
##   10 496   0
##   11 480   0
##   12 496   0
## 
## $strasbourg
##     
##        0   1
##   1  494   0
##   2  452   0
##   3  496   0
##   4  480   0
##   5  496   0
##   6  474   6
##   7  481  15
##   8  479  17
##   9  480   0
##   10 496   0
##   11 480   0
##   12 496   0
## 
## $toulouse
##     
##        0   1
##   1  494   0
##   2  452   0
##   3  496   0
##   4  480   0
##   5  496   0
##   6  479   1
##   7  489   7
##   8  475  21
##   9  480   0
##   10 496   0
##   11 480   0
##   12 496   0

Heat wave events occured only in the period going from June until August.

Creating Database only with summer months:

villes_s<-list()

for(i in 1:length(villes)) {
  villes_s[[i]]<-villes[[i]][villes[[i]]$saison=="warm",]
  #villes_s[[i]]$temps <- ave(villes_s[[i]]$time,villes_s[[i]]$annee,  FUN = seq_along)
  }

names(villes_s)<-names

Non accidental Mortality

Cardiovascular Mortality

Respiratory Mortality

MODEL

IDENTIFICATION STAGE: Testing of different types of model, in order to identify the better specification for temporal (saison and trend) components

Model with natural cubic spline with 2 or more degrees of freedom per summer (selected bu the AIC criteria), with a unique time indicator going from 1 to 2448 (tot number of days observed)

see Chen et al. 2019, Wu et al. 2013, 2014, Ma et al. 2015, Chen et al. 2015, Anderson and Bell 2009.

Two equivalent function are studied in order to check wheter they show different results: glm function and gam function.

# Creation of variable TIME
 for (i in 1:length(villes_s)){
   villes_s[[i]]$time<-1:nrow(villes_s[[i]]) # Create a new variable for time 
 } 

m.outcome<-list()  # Model with glm function
m.outcome_g<-list() # Model with gam function


for (i in 1:18){
m.outcome[[i]]<-glm(nocc_tot~heat_wave+no2moy+ns(time,df=round(2*length(time)/153))+Jours+Vacances,data=villes_s[[i]],family=poisson)
}
for (i in 1:18){
m.outcome_g[[i]]<-gam(nocc_tot~heat_wave+no2moy+ns(time,df=round(2*length(time)/153))+Jours+Vacances,data=villes_s[[i]],family=poisson)}

names(m.outcome)<-names
names(m.outcome_g)<-names

REsults for glm function

lapply(m.outcome,function(x){summary(x)})
## $BM
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * 
##     length(time)/153)) + Jours + Vacances, family = poisson, 
##     data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.0491  -0.7529  -0.0432   0.6513   3.0355  
## 
## Coefficients: (13 not defined because of singularities)
##                                                Estimate Std. Error z value
## (Intercept)                                   1.9226319  0.0821882  23.393
## heat_wave                                    -0.0532369  0.1671437  -0.319
## no2moy                                        0.0012357  0.0018644   0.663
## ns(time, df = round(2 * length(time)/153))1          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))2          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))3          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))4          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))5          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))6          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))7          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))8          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))9          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))10         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))11         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))12 -0.0703808  1.6084895  -0.044
## ns(time, df = round(2 * length(time)/153))13  0.0880275  0.3026162   0.291
## ns(time, df = round(2 * length(time)/153))14  0.1423609  0.1851439   0.769
## ns(time, df = round(2 * length(time)/153))15 -0.0618071  0.1561037  -0.396
## ns(time, df = round(2 * length(time)/153))16  0.0547162  0.1426173   0.384
## ns(time, df = round(2 * length(time)/153))17  0.1373622  0.1328332   1.034
## ns(time, df = round(2 * length(time)/153))18  0.0028773  0.1349284   0.021
## ns(time, df = round(2 * length(time)/153))19 -0.0635845  0.1377571  -0.462
## ns(time, df = round(2 * length(time)/153))20  0.1727768  0.1295614   1.334
## ns(time, df = round(2 * length(time)/153))21 -0.0001943  0.1221726  -0.002
## ns(time, df = round(2 * length(time)/153))22  0.0881091  0.1268144   0.695
## ns(time, df = round(2 * length(time)/153))23 -0.0217584  0.1194112  -0.182
## ns(time, df = round(2 * length(time)/153))24  0.2740305  0.1245848   2.200
## ns(time, df = round(2 * length(time)/153))25 -0.1466061  0.1219275  -1.202
## ns(time, df = round(2 * length(time)/153))26  0.1791592  0.1269286   1.411
## ns(time, df = round(2 * length(time)/153))27 -0.2458586  0.1223631  -2.009
## ns(time, df = round(2 * length(time)/153))28  0.2705559  0.1314522   2.058
## ns(time, df = round(2 * length(time)/153))29 -0.0644477  0.1474187  -0.437
## ns(time, df = round(2 * length(time)/153))30  0.4368027  0.2988670   1.462
## ns(time, df = round(2 * length(time)/153))31         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))32         NA         NA      NA
## Joursjeudi                                    0.0552982  0.0395788   1.397
## Jourslundi                                    0.0899628  0.0388818   2.314
## Joursmardi                                    0.0976611  0.0392444   2.489
## Joursmercredi                                 0.0913028  0.0395431   2.309
## Jourssamedi                                   0.0234589  0.0395554   0.593
## Joursvendredi                                 0.1171899  0.0392498   2.986
## Vacances1                                    -0.0106470  0.0278878  -0.382
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                     0.75010    
## no2moy                                        0.50745    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12  0.96510    
## ns(time, df = round(2 * length(time)/153))13  0.77114    
## ns(time, df = round(2 * length(time)/153))14  0.44194    
## ns(time, df = round(2 * length(time)/153))15  0.69215    
## ns(time, df = round(2 * length(time)/153))16  0.70123    
## ns(time, df = round(2 * length(time)/153))17  0.30109    
## ns(time, df = round(2 * length(time)/153))18  0.98299    
## ns(time, df = round(2 * length(time)/153))19  0.64439    
## ns(time, df = round(2 * length(time)/153))20  0.18235    
## ns(time, df = round(2 * length(time)/153))21  0.99873    
## ns(time, df = round(2 * length(time)/153))22  0.48719    
## ns(time, df = round(2 * length(time)/153))23  0.85541    
## ns(time, df = round(2 * length(time)/153))24  0.02784 *  
## ns(time, df = round(2 * length(time)/153))25  0.22921    
## ns(time, df = round(2 * length(time)/153))26  0.15810    
## ns(time, df = round(2 * length(time)/153))27  0.04451 *  
## ns(time, df = round(2 * length(time)/153))28  0.03957 *  
## ns(time, df = round(2 * length(time)/153))29  0.66198    
## ns(time, df = round(2 * length(time)/153))30  0.14387    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                    0.16236    
## Jourslundi                                    0.02068 *  
## Joursmardi                                    0.01283 *  
## Joursmercredi                                 0.02095 *  
## Jourssamedi                                   0.55314    
## Joursvendredi                                 0.00283 ** 
## Vacances1                                     0.70262    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1345.0  on 1210  degrees of freedom
## Residual deviance: 1302.8  on 1182  degrees of freedom
##   (1237 observations deleted due to missingness)
## AIC: 6015.1
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $bordeaux
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * 
##     length(time)/153)) + Jours + Vacances, family = poisson, 
##     data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.6343  -0.7294  -0.0227   0.6264   3.0736  
## 
## Coefficients: (13 not defined because of singularities)
##                                               Estimate Std. Error z value
## (Intercept)                                   2.406333   0.060046  40.075
## heat_wave                                     0.214455   0.109573   1.957
## no2moy                                        0.002257   0.001737   1.300
## ns(time, df = round(2 * length(time)/153))1         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))2         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))3         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))4         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))5         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))6         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))7         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))8         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))9         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))10        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))11        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))12 -0.355271   1.296334  -0.274
## ns(time, df = round(2 * length(time)/153))13  0.120255   0.237558   0.506
## ns(time, df = round(2 * length(time)/153))14 -0.171739   0.134904  -1.273
## ns(time, df = round(2 * length(time)/153))15 -0.011240   0.106168  -0.106
## ns(time, df = round(2 * length(time)/153))16  0.010237   0.103572   0.099
## ns(time, df = round(2 * length(time)/153))17 -0.152227   0.098259  -1.549
## ns(time, df = round(2 * length(time)/153))18 -0.044714   0.100300  -0.446
## ns(time, df = round(2 * length(time)/153))19 -0.015040   0.096022  -0.157
## ns(time, df = round(2 * length(time)/153))20  0.035776   0.098922   0.362
## ns(time, df = round(2 * length(time)/153))21 -0.029963   0.095243  -0.315
## ns(time, df = round(2 * length(time)/153))22  0.001445   0.099723   0.014
## ns(time, df = round(2 * length(time)/153))23 -0.078848   0.095473  -0.826
## ns(time, df = round(2 * length(time)/153))24 -0.074488   0.098820  -0.754
## ns(time, df = round(2 * length(time)/153))25  0.104838   0.091127   1.150
## ns(time, df = round(2 * length(time)/153))26 -0.054977   0.096850  -0.568
## ns(time, df = round(2 * length(time)/153))27  0.056275   0.090110   0.625
## ns(time, df = round(2 * length(time)/153))28 -0.037238   0.100418  -0.371
## ns(time, df = round(2 * length(time)/153))29  0.128647   0.081225   1.584
## ns(time, df = round(2 * length(time)/153))30  0.010018   0.116864   0.086
## ns(time, df = round(2 * length(time)/153))31        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))32        NA         NA      NA
## Joursjeudi                                    0.049104   0.031439   1.562
## Jourslundi                                    0.064325   0.029856   2.155
## Joursmardi                                    0.042604   0.030940   1.377
## Joursmercredi                                 0.029669   0.031525   0.941
## Jourssamedi                                   0.044057   0.030434   1.448
## Joursvendredi                                 0.045112   0.031414   1.436
## Vacances1                                    -0.013433   0.021144  -0.635
##                                              Pr(>|z|)    
## (Intercept)                                    <2e-16 ***
## heat_wave                                      0.0503 .  
## no2moy                                         0.1937    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12   0.7840    
## ns(time, df = round(2 * length(time)/153))13   0.6127    
## ns(time, df = round(2 * length(time)/153))14   0.2030    
## ns(time, df = round(2 * length(time)/153))15   0.9157    
## ns(time, df = round(2 * length(time)/153))16   0.9213    
## ns(time, df = round(2 * length(time)/153))17   0.1213    
## ns(time, df = round(2 * length(time)/153))18   0.6557    
## ns(time, df = round(2 * length(time)/153))19   0.8755    
## ns(time, df = round(2 * length(time)/153))20   0.7176    
## ns(time, df = round(2 * length(time)/153))21   0.7531    
## ns(time, df = round(2 * length(time)/153))22   0.9884    
## ns(time, df = round(2 * length(time)/153))23   0.4089    
## ns(time, df = round(2 * length(time)/153))24   0.4510    
## ns(time, df = round(2 * length(time)/153))25   0.2500    
## ns(time, df = round(2 * length(time)/153))26   0.5703    
## ns(time, df = round(2 * length(time)/153))27   0.5323    
## ns(time, df = round(2 * length(time)/153))28   0.7108    
## ns(time, df = round(2 * length(time)/153))29   0.1132    
## ns(time, df = round(2 * length(time)/153))30   0.9317    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                     0.1183    
## Jourslundi                                     0.0312 *  
## Joursmardi                                     0.1685    
## Joursmercredi                                  0.3466    
## Jourssamedi                                    0.1477    
## Joursvendredi                                  0.1510    
## Vacances1                                      0.5252    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1490.4  on 1376  degrees of freedom
## Residual deviance: 1446.0  on 1348  degrees of freedom
##   (1071 observations deleted due to missingness)
## AIC: 7370
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $clermont
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * 
##     length(time)/153)) + Jours + Vacances, family = poisson, 
##     data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.2512  -0.7605  -0.0554   0.6036   3.2973  
## 
## Coefficients:
##                                                Estimate Std. Error z value
## (Intercept)                                   1.802e+00  1.035e-01  17.410
## heat_wave                                     3.754e-01  7.836e-02   4.791
## no2moy                                        1.006e-03  1.578e-03   0.637
## ns(time, df = round(2 * length(time)/153))1  -4.221e-03  1.252e-01  -0.034
## ns(time, df = round(2 * length(time)/153))2  -4.299e-01  1.713e-01  -2.510
## ns(time, df = round(2 * length(time)/153))3  -1.136e-01  1.424e-01  -0.797
## ns(time, df = round(2 * length(time)/153))4  -1.559e-01  1.615e-01  -0.965
## ns(time, df = round(2 * length(time)/153))5  -2.770e-01  1.462e-01  -1.895
## ns(time, df = round(2 * length(time)/153))6  -7.394e-02  1.574e-01  -0.470
## ns(time, df = round(2 * length(time)/153))7  -1.905e-02  1.448e-01  -0.132
## ns(time, df = round(2 * length(time)/153))8  -3.251e-01  1.595e-01  -2.039
## ns(time, df = round(2 * length(time)/153))9  -1.708e-01  1.481e-01  -1.153
## ns(time, df = round(2 * length(time)/153))10 -2.449e-01  1.590e-01  -1.540
## ns(time, df = round(2 * length(time)/153))11 -1.690e-01  1.485e-01  -1.138
## ns(time, df = round(2 * length(time)/153))12 -3.312e-01  1.599e-01  -2.072
## ns(time, df = round(2 * length(time)/153))13 -1.596e-01  1.483e-01  -1.076
## ns(time, df = round(2 * length(time)/153))14 -2.124e-01  1.603e-01  -1.325
## ns(time, df = round(2 * length(time)/153))15 -3.318e-01  1.492e-01  -2.224
## ns(time, df = round(2 * length(time)/153))16 -4.655e-02  1.577e-01  -0.295
## ns(time, df = round(2 * length(time)/153))17 -2.499e-01  1.465e-01  -1.707
## ns(time, df = round(2 * length(time)/153))18 -5.361e-02  1.584e-01  -0.339
## ns(time, df = round(2 * length(time)/153))19 -1.522e-01  1.448e-01  -1.051
## ns(time, df = round(2 * length(time)/153))20 -6.131e-02  1.561e-01  -0.393
## ns(time, df = round(2 * length(time)/153))21 -2.005e-01  1.454e-01  -1.379
## ns(time, df = round(2 * length(time)/153))22 -9.564e-02  1.571e-01  -0.609
## ns(time, df = round(2 * length(time)/153))23 -2.914e-01  1.467e-01  -1.986
## ns(time, df = round(2 * length(time)/153))24 -2.184e-02  1.563e-01  -0.140
## ns(time, df = round(2 * length(time)/153))25 -2.543e-01  1.462e-01  -1.739
## ns(time, df = round(2 * length(time)/153))26 -9.181e-05  1.539e-01  -0.001
## ns(time, df = round(2 * length(time)/153))27 -3.029e-01  1.467e-01  -2.064
## ns(time, df = round(2 * length(time)/153))28 -3.936e-02  1.542e-01  -0.255
## ns(time, df = round(2 * length(time)/153))29 -2.189e-01  1.452e-01  -1.508
## ns(time, df = round(2 * length(time)/153))30  6.225e-02  1.264e-01   0.493
## ns(time, df = round(2 * length(time)/153))31 -4.470e-01  2.554e-01  -1.750
## ns(time, df = round(2 * length(time)/153))32 -7.470e-02  1.153e-01  -0.648
## Joursjeudi                                   -9.711e-03  3.488e-02  -0.278
## Jourslundi                                    2.025e-02  3.321e-02   0.610
## Joursmardi                                    8.673e-03  3.422e-02   0.253
## Joursmercredi                                 1.824e-02  3.465e-02   0.526
## Jourssamedi                                  -8.247e-03  3.414e-02  -0.242
## Joursvendredi                                 1.632e-02  3.489e-02   0.468
## Vacances1                                    -1.720e-02  2.294e-02  -0.750
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                    1.66e-06 ***
## no2moy                                         0.5240    
## ns(time, df = round(2 * length(time)/153))1    0.9731    
## ns(time, df = round(2 * length(time)/153))2    0.0121 *  
## ns(time, df = round(2 * length(time)/153))3    0.4253    
## ns(time, df = round(2 * length(time)/153))4    0.3344    
## ns(time, df = round(2 * length(time)/153))5    0.0581 .  
## ns(time, df = round(2 * length(time)/153))6    0.6385    
## ns(time, df = round(2 * length(time)/153))7    0.8953    
## ns(time, df = round(2 * length(time)/153))8    0.0415 *  
## ns(time, df = round(2 * length(time)/153))9    0.2489    
## ns(time, df = round(2 * length(time)/153))10   0.1236    
## ns(time, df = round(2 * length(time)/153))11   0.2553    
## ns(time, df = round(2 * length(time)/153))12   0.0383 *  
## ns(time, df = round(2 * length(time)/153))13   0.2818    
## ns(time, df = round(2 * length(time)/153))14   0.1851    
## ns(time, df = round(2 * length(time)/153))15   0.0261 *  
## ns(time, df = round(2 * length(time)/153))16   0.7678    
## ns(time, df = round(2 * length(time)/153))17   0.0879 .  
## ns(time, df = round(2 * length(time)/153))18   0.7349    
## ns(time, df = round(2 * length(time)/153))19   0.2932    
## ns(time, df = round(2 * length(time)/153))20   0.6944    
## ns(time, df = round(2 * length(time)/153))21   0.1678    
## ns(time, df = round(2 * length(time)/153))22   0.5427    
## ns(time, df = round(2 * length(time)/153))23   0.0470 *  
## ns(time, df = round(2 * length(time)/153))24   0.8888    
## ns(time, df = round(2 * length(time)/153))25   0.0821 .  
## ns(time, df = round(2 * length(time)/153))26   0.9995    
## ns(time, df = round(2 * length(time)/153))27   0.0390 *  
## ns(time, df = round(2 * length(time)/153))28   0.7985    
## ns(time, df = round(2 * length(time)/153))29   0.1316    
## ns(time, df = round(2 * length(time)/153))30   0.6224    
## ns(time, df = round(2 * length(time)/153))31   0.0801 .  
## ns(time, df = round(2 * length(time)/153))32   0.5172    
## Joursjeudi                                     0.7807    
## Jourslundi                                     0.5420    
## Joursmardi                                     0.7999    
## Joursmercredi                                  0.5986    
## Jourssamedi                                    0.8091    
## Joursvendredi                                  0.6400    
## Vacances1                                      0.4534    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 2463.1  on 2430  degrees of freedom
## Residual deviance: 2390.8  on 2389  degrees of freedom
##   (17 observations deleted due to missingness)
## AIC: 10794
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $dijon
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * 
##     length(time)/153)) + Jours + Vacances, family = poisson, 
##     data = villes_s[[i]])
## 
## Deviance Residuals: 
##      Min        1Q    Median        3Q       Max  
## -3.04307  -0.72221  -0.08563   0.60042   3.12209  
## 
## Coefficients:
##                                                Estimate Std. Error z value
## (Intercept)                                   1.2020639  0.1255461   9.575
## heat_wave                                     0.3188149  0.0789414   4.039
## no2moy                                        0.0069614  0.0020802   3.346
## ns(time, df = round(2 * length(time)/153))1   0.0172788  0.1442790   0.120
## ns(time, df = round(2 * length(time)/153))2   0.0911124  0.1961534   0.464
## ns(time, df = round(2 * length(time)/153))3  -0.1446592  0.1650644  -0.876
## ns(time, df = round(2 * length(time)/153))4   0.2717373  0.1873788   1.450
## ns(time, df = round(2 * length(time)/153))5  -0.3411138  0.1712113  -1.992
## ns(time, df = round(2 * length(time)/153))6   0.4630186  0.1827002   2.534
## ns(time, df = round(2 * length(time)/153))7  -0.0608143  0.1688923  -0.360
## ns(time, df = round(2 * length(time)/153))8  -0.1208891  0.1857408  -0.651
## ns(time, df = round(2 * length(time)/153))9  -0.0724796  0.1744117  -0.416
## ns(time, df = round(2 * length(time)/153))10  0.1790974  0.1859095   0.963
## ns(time, df = round(2 * length(time)/153))11 -0.3468612  0.1771479  -1.958
## ns(time, df = round(2 * length(time)/153))12  0.2202232  0.1838563   1.198
## ns(time, df = round(2 * length(time)/153))13 -0.1380913  0.1726888  -0.800
## ns(time, df = round(2 * length(time)/153))14  0.1718846  0.1850739   0.929
## ns(time, df = round(2 * length(time)/153))15 -0.0064035  0.1699375  -0.038
## ns(time, df = round(2 * length(time)/153))16  0.1706140  0.1830455   0.932
## ns(time, df = round(2 * length(time)/153))17  0.0318045  0.1689801   0.188
## ns(time, df = round(2 * length(time)/153))18  0.2147801  0.1855678   1.157
## ns(time, df = round(2 * length(time)/153))19 -0.0860551  0.1720281  -0.500
## ns(time, df = round(2 * length(time)/153))20  0.2069020  0.1841954   1.123
## ns(time, df = round(2 * length(time)/153))21  0.1344377  0.1691244   0.795
## ns(time, df = round(2 * length(time)/153))22  0.1270269  0.1813214   0.701
## ns(time, df = round(2 * length(time)/153))23  0.2045805  0.1647611   1.242
## ns(time, df = round(2 * length(time)/153))24  0.3118946  0.1799017   1.734
## ns(time, df = round(2 * length(time)/153))25 -0.0444794  0.1671422  -0.266
## ns(time, df = round(2 * length(time)/153))26  0.3862037  0.1786276   2.162
## ns(time, df = round(2 * length(time)/153))27  0.0049116  0.1677394   0.029
## ns(time, df = round(2 * length(time)/153))28  0.3180926  0.1778748   1.788
## ns(time, df = round(2 * length(time)/153))29  0.1399787  0.1666145   0.840
## ns(time, df = round(2 * length(time)/153))30  0.2276601  0.1429915   1.592
## ns(time, df = round(2 * length(time)/153))31  0.1947785  0.3040767   0.641
## ns(time, df = round(2 * length(time)/153))32  0.3019432  0.1222136   2.471
## Joursjeudi                                    0.0120091  0.0395837   0.303
## Jourslundi                                    0.0249575  0.0377689   0.661
## Joursmardi                                    0.0377725  0.0388582   0.972
## Joursmercredi                                 0.0250714  0.0394439   0.636
## Jourssamedi                                   0.0485215  0.0383909   1.264
## Joursvendredi                                 0.0359819  0.0397763   0.905
## Vacances1                                     0.0003654  0.0257663   0.014
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                    5.38e-05 ***
## no2moy                                       0.000818 ***
## ns(time, df = round(2 * length(time)/153))1  0.904674    
## ns(time, df = round(2 * length(time)/153))2  0.642293    
## ns(time, df = round(2 * length(time)/153))3  0.380823    
## ns(time, df = round(2 * length(time)/153))4  0.147002    
## ns(time, df = round(2 * length(time)/153))5  0.046332 *  
## ns(time, df = round(2 * length(time)/153))6  0.011267 *  
## ns(time, df = round(2 * length(time)/153))7  0.718789    
## ns(time, df = round(2 * length(time)/153))8  0.515144    
## ns(time, df = round(2 * length(time)/153))9  0.677728    
## ns(time, df = round(2 * length(time)/153))10 0.335368    
## ns(time, df = round(2 * length(time)/153))11 0.050226 .  
## ns(time, df = round(2 * length(time)/153))12 0.230995    
## ns(time, df = round(2 * length(time)/153))13 0.423911    
## ns(time, df = round(2 * length(time)/153))14 0.353026    
## ns(time, df = round(2 * length(time)/153))15 0.969942    
## ns(time, df = round(2 * length(time)/153))16 0.351292    
## ns(time, df = round(2 * length(time)/153))17 0.850709    
## ns(time, df = round(2 * length(time)/153))18 0.247101    
## ns(time, df = round(2 * length(time)/153))19 0.616907    
## ns(time, df = round(2 * length(time)/153))20 0.261321    
## ns(time, df = round(2 * length(time)/153))21 0.426669    
## ns(time, df = round(2 * length(time)/153))22 0.483576    
## ns(time, df = round(2 * length(time)/153))23 0.214355    
## ns(time, df = round(2 * length(time)/153))24 0.082972 .  
## ns(time, df = round(2 * length(time)/153))25 0.790149    
## ns(time, df = round(2 * length(time)/153))26 0.030613 *  
## ns(time, df = round(2 * length(time)/153))27 0.976641    
## ns(time, df = round(2 * length(time)/153))28 0.073728 .  
## ns(time, df = round(2 * length(time)/153))29 0.400833    
## ns(time, df = round(2 * length(time)/153))30 0.111357    
## ns(time, df = round(2 * length(time)/153))31 0.521810    
## ns(time, df = round(2 * length(time)/153))32 0.013488 *  
## Joursjeudi                                   0.761597    
## Jourslundi                                   0.508744    
## Joursmardi                                   0.331022    
## Joursmercredi                                0.525023    
## Jourssamedi                                  0.206273    
## Joursvendredi                                0.365674    
## Vacances1                                    0.988686    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 2467.5  on 2416  degrees of freedom
## Residual deviance: 2361.6  on 2375  degrees of freedom
##   (31 observations deleted due to missingness)
## AIC: 10169
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $grenoble
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * 
##     length(time)/153)) + Jours + Vacances, family = poisson, 
##     data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.8394  -0.7359  -0.0359   0.6109   3.1502  
## 
## Coefficients: (13 not defined because of singularities)
##                                               Estimate Std. Error z value
## (Intercept)                                   2.056765   0.075448  27.261
## heat_wave                                     0.114980   0.092664   1.241
## no2moy                                        0.008719   0.002585   3.373
## ns(time, df = round(2 * length(time)/153))1         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))2         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))3         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))4         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))5         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))6         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))7         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))8         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))9         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))10        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))11        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))12 -0.847711   1.781629  -0.476
## ns(time, df = round(2 * length(time)/153))13 -0.373198   0.317202  -1.177
## ns(time, df = round(2 * length(time)/153))14 -0.241921   0.173950  -1.391
## ns(time, df = round(2 * length(time)/153))15 -0.321894   0.135164  -2.382
## ns(time, df = round(2 * length(time)/153))16 -0.114496   0.129657  -0.883
## ns(time, df = round(2 * length(time)/153))17 -0.186402   0.119784  -1.556
## ns(time, df = round(2 * length(time)/153))18 -0.150188   0.125399  -1.198
## ns(time, df = round(2 * length(time)/153))19 -0.288523   0.119669  -2.411
## ns(time, df = round(2 * length(time)/153))20 -0.095634   0.122265  -0.782
## ns(time, df = round(2 * length(time)/153))21 -0.185639   0.115776  -1.603
## ns(time, df = round(2 * length(time)/153))22 -0.071266   0.122342  -0.583
## ns(time, df = round(2 * length(time)/153))23 -0.233828   0.116005  -2.016
## ns(time, df = round(2 * length(time)/153))24 -0.070739   0.119855  -0.590
## ns(time, df = round(2 * length(time)/153))25 -0.143490   0.112180  -1.279
## ns(time, df = round(2 * length(time)/153))26  0.035204   0.119060   0.296
## ns(time, df = round(2 * length(time)/153))27 -0.072588   0.107899  -0.673
## ns(time, df = round(2 * length(time)/153))28 -0.092633   0.121559  -0.762
## ns(time, df = round(2 * length(time)/153))29 -0.164095   0.100746  -1.629
## ns(time, df = round(2 * length(time)/153))30  0.074303   0.141862   0.524
## ns(time, df = round(2 * length(time)/153))31        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))32        NA         NA      NA
## Joursjeudi                                   -0.041093   0.039522  -1.040
## Jourslundi                                   -0.029132   0.037547  -0.776
## Joursmardi                                   -0.071709   0.039735  -1.805
## Joursmercredi                                -0.051252   0.039783  -1.288
## Jourssamedi                                   0.009798   0.037745   0.260
## Joursvendredi                                -0.047649   0.039708  -1.200
## Vacances1                                    -0.044894   0.026709  -1.681
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                    0.214672    
## no2moy                                       0.000744 ***
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12 0.634212    
## ns(time, df = round(2 * length(time)/153))13 0.239382    
## ns(time, df = round(2 * length(time)/153))14 0.164301    
## ns(time, df = round(2 * length(time)/153))15 0.017242 *  
## ns(time, df = round(2 * length(time)/153))16 0.377200    
## ns(time, df = round(2 * length(time)/153))17 0.119673    
## ns(time, df = round(2 * length(time)/153))18 0.231041    
## ns(time, df = round(2 * length(time)/153))19 0.015908 *  
## ns(time, df = round(2 * length(time)/153))20 0.434104    
## ns(time, df = round(2 * length(time)/153))21 0.108839    
## ns(time, df = round(2 * length(time)/153))22 0.560220    
## ns(time, df = round(2 * length(time)/153))23 0.043835 *  
## ns(time, df = round(2 * length(time)/153))24 0.555051    
## ns(time, df = round(2 * length(time)/153))25 0.200861    
## ns(time, df = round(2 * length(time)/153))26 0.767471    
## ns(time, df = round(2 * length(time)/153))27 0.501113    
## ns(time, df = round(2 * length(time)/153))28 0.446036    
## ns(time, df = round(2 * length(time)/153))29 0.103355    
## ns(time, df = round(2 * length(time)/153))30 0.600438    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                   0.298465    
## Jourslundi                                   0.437824    
## Joursmardi                                   0.071123 .  
## Joursmercredi                                0.197644    
## Jourssamedi                                  0.795174    
## Joursvendredi                                0.230146    
## Vacances1                                    0.092796 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1501.6  on 1376  degrees of freedom
## Residual deviance: 1414.2  on 1348  degrees of freedom
##   (1071 observations deleted due to missingness)
## AIC: 6678
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $lehavre
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * 
##     length(time)/153)) + Jours + Vacances, family = poisson, 
##     data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.3975  -0.7575  -0.0925   0.6415   3.1556  
## 
## Coefficients: (13 not defined because of singularities)
##                                               Estimate Std. Error z value
## (Intercept)                                   1.689863   0.086531  19.529
## heat_wave                                     0.188521   0.152470   1.236
## no2moy                                        0.002378   0.001645   1.446
## ns(time, df = round(2 * length(time)/153))1         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))2         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))3         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))4         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))5         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))6         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))7         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))8         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))9         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))10        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))11        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))12  1.081215   2.025416   0.534
## ns(time, df = round(2 * length(time)/153))13 -0.481348   0.361765  -1.331
## ns(time, df = round(2 * length(time)/153))14  0.193238   0.199014   0.971
## ns(time, df = round(2 * length(time)/153))15 -0.185487   0.159779  -1.161
## ns(time, df = round(2 * length(time)/153))16  0.010392   0.151858   0.068
## ns(time, df = round(2 * length(time)/153))17 -0.012538   0.146274  -0.086
## ns(time, df = round(2 * length(time)/153))18 -0.032894   0.148836  -0.221
## ns(time, df = round(2 * length(time)/153))19 -0.037785   0.141317  -0.267
## ns(time, df = round(2 * length(time)/153))20  0.016982   0.144286   0.118
## ns(time, df = round(2 * length(time)/153))21 -0.023956   0.139254  -0.172
## ns(time, df = round(2 * length(time)/153))22  0.039813   0.144087   0.276
## ns(time, df = round(2 * length(time)/153))23 -0.058861   0.139278  -0.423
## ns(time, df = round(2 * length(time)/153))24 -0.013532   0.145108  -0.093
## ns(time, df = round(2 * length(time)/153))25 -0.101316   0.147798  -0.686
## ns(time, df = round(2 * length(time)/153))26  0.030102   0.145997   0.206
## ns(time, df = round(2 * length(time)/153))27 -0.004336   0.134259  -0.032
## ns(time, df = round(2 * length(time)/153))28 -0.075751   0.147616  -0.513
## ns(time, df = round(2 * length(time)/153))29  0.143777   0.119021   1.208
## ns(time, df = round(2 * length(time)/153))30  0.017265   0.169846   0.102
## ns(time, df = round(2 * length(time)/153))31        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))32        NA         NA      NA
## Joursjeudi                                   -0.029075   0.044270  -0.657
## Jourslundi                                   -0.043060   0.044069  -0.977
## Joursmardi                                    0.026681   0.043600   0.612
## Joursmercredi                                -0.025979   0.044304  -0.586
## Jourssamedi                                  -0.069627   0.044622  -1.560
## Joursvendredi                                -0.031317   0.044343  -0.706
## Vacances1                                    -0.030141   0.031395  -0.960
##                                              Pr(>|z|)    
## (Intercept)                                    <2e-16 ***
## heat_wave                                       0.216    
## no2moy                                          0.148    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12    0.593    
## ns(time, df = round(2 * length(time)/153))13    0.183    
## ns(time, df = round(2 * length(time)/153))14    0.332    
## ns(time, df = round(2 * length(time)/153))15    0.246    
## ns(time, df = round(2 * length(time)/153))16    0.945    
## ns(time, df = round(2 * length(time)/153))17    0.932    
## ns(time, df = round(2 * length(time)/153))18    0.825    
## ns(time, df = round(2 * length(time)/153))19    0.789    
## ns(time, df = round(2 * length(time)/153))20    0.906    
## ns(time, df = round(2 * length(time)/153))21    0.863    
## ns(time, df = round(2 * length(time)/153))22    0.782    
## ns(time, df = round(2 * length(time)/153))23    0.673    
## ns(time, df = round(2 * length(time)/153))24    0.926    
## ns(time, df = round(2 * length(time)/153))25    0.493    
## ns(time, df = round(2 * length(time)/153))26    0.837    
## ns(time, df = round(2 * length(time)/153))27    0.974    
## ns(time, df = round(2 * length(time)/153))28    0.608    
## ns(time, df = round(2 * length(time)/153))29    0.227    
## ns(time, df = round(2 * length(time)/153))30    0.919    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                      0.511    
## Jourslundi                                      0.329    
## Joursmardi                                      0.541    
## Joursmercredi                                   0.558    
## Jourssamedi                                     0.119    
## Joursvendredi                                   0.480    
## Vacances1                                       0.337    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1412.4  on 1350  degrees of freedom
## Residual deviance: 1390.6  on 1322  degrees of freedom
##   (1097 observations deleted due to missingness)
## AIC: 6099.4
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $lille
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * 
##     length(time)/153)) + Jours + Vacances, family = poisson, 
##     data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.1561  -0.7169  -0.0459   0.6457   3.6924  
## 
## Coefficients: (7 not defined because of singularities)
##                                                Estimate Std. Error z value
## (Intercept)                                   2.9301643  0.0461883  63.440
## heat_wave                                     0.0568800  0.0566277   1.004
## no2moy                                        0.0030755  0.0010057   3.058
## ns(time, df = round(2 * length(time)/153))1          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))2          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))3          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))4          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))5          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))6  -0.4173841  1.0011442  -0.417
## ns(time, df = round(2 * length(time)/153))7   0.0522596  0.1826347   0.286
## ns(time, df = round(2 * length(time)/153))8  -0.0895261  0.1012971  -0.884
## ns(time, df = round(2 * length(time)/153))9  -0.0023044  0.0809648  -0.028
## ns(time, df = round(2 * length(time)/153))10 -0.0347031  0.0773453  -0.449
## ns(time, df = round(2 * length(time)/153))11 -0.0239223  0.0751314  -0.318
## ns(time, df = round(2 * length(time)/153))12 -0.0135597  0.0766903  -0.177
## ns(time, df = round(2 * length(time)/153))13  0.0129686  0.0732767   0.177
## ns(time, df = round(2 * length(time)/153))14 -0.0939691  0.0753948  -1.246
## ns(time, df = round(2 * length(time)/153))15 -0.0243957  0.0744723  -0.328
## ns(time, df = round(2 * length(time)/153))16 -0.0837097  0.0757357  -1.105
## ns(time, df = round(2 * length(time)/153))17 -0.0353626  0.0737123  -0.480
## ns(time, df = round(2 * length(time)/153))18 -0.0300079  0.0754776  -0.398
## ns(time, df = round(2 * length(time)/153))19 -0.0921934  0.0735197  -1.254
## ns(time, df = round(2 * length(time)/153))20  0.0686105  0.0746496   0.919
## ns(time, df = round(2 * length(time)/153))21 -0.1028769  0.0728181  -1.413
## ns(time, df = round(2 * length(time)/153))22  0.0090584  0.0746651   0.121
## ns(time, df = round(2 * length(time)/153))23 -0.1052407  0.0725068  -1.451
## ns(time, df = round(2 * length(time)/153))24  0.0014422  0.0748668   0.019
## ns(time, df = round(2 * length(time)/153))25 -0.0449458  0.0715981  -0.628
## ns(time, df = round(2 * length(time)/153))26  0.0504185  0.0742851   0.679
## ns(time, df = round(2 * length(time)/153))27 -0.1461649  0.0703003  -2.079
## ns(time, df = round(2 * length(time)/153))28  0.0980994  0.0771729   1.271
## ns(time, df = round(2 * length(time)/153))29 -0.0809418  0.0636213  -1.272
## ns(time, df = round(2 * length(time)/153))30  0.0562432  0.0902751   0.623
## ns(time, df = round(2 * length(time)/153))31         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))32         NA         NA      NA
## Joursjeudi                                   -0.0005368  0.0210316  -0.026
## Jourslundi                                    0.0471171  0.0198702   2.371
## Joursmardi                                    0.0228186  0.0204975   1.113
## Joursmercredi                                -0.0007559  0.0209003  -0.036
## Jourssamedi                                  -0.0291911  0.0205450  -1.421
## Joursvendredi                                -0.0070078  0.0211021  -0.332
## Vacances1                                    -0.0162439  0.0142787  -1.138
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                     0.31516    
## no2moy                                        0.00223 ** 
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6   0.67675    
## ns(time, df = round(2 * length(time)/153))7   0.77477    
## ns(time, df = round(2 * length(time)/153))8   0.37681    
## ns(time, df = round(2 * length(time)/153))9   0.97729    
## ns(time, df = round(2 * length(time)/153))10  0.65366    
## ns(time, df = round(2 * length(time)/153))11  0.75018    
## ns(time, df = round(2 * length(time)/153))12  0.85966    
## ns(time, df = round(2 * length(time)/153))13  0.85952    
## ns(time, df = round(2 * length(time)/153))14  0.21263    
## ns(time, df = round(2 * length(time)/153))15  0.74323    
## ns(time, df = round(2 * length(time)/153))16  0.26904    
## ns(time, df = round(2 * length(time)/153))17  0.63141    
## ns(time, df = round(2 * length(time)/153))18  0.69094    
## ns(time, df = round(2 * length(time)/153))19  0.20984    
## ns(time, df = round(2 * length(time)/153))20  0.35804    
## ns(time, df = round(2 * length(time)/153))21  0.15772    
## ns(time, df = round(2 * length(time)/153))22  0.90344    
## ns(time, df = round(2 * length(time)/153))23  0.14665    
## ns(time, df = round(2 * length(time)/153))24  0.98463    
## ns(time, df = round(2 * length(time)/153))25  0.53017    
## ns(time, df = round(2 * length(time)/153))26  0.49732    
## ns(time, df = round(2 * length(time)/153))27  0.03760 *  
## ns(time, df = round(2 * length(time)/153))28  0.20367    
## ns(time, df = round(2 * length(time)/153))29  0.20329    
## ns(time, df = round(2 * length(time)/153))30  0.53327    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                    0.97964    
## Jourslundi                                    0.01773 *  
## Joursmardi                                    0.26561    
## Joursmercredi                                 0.97115    
## Jourssamedi                                   0.15536    
## Joursvendredi                                 0.73982    
## Vacances1                                     0.25527    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1924.7  on 1833  degrees of freedom
## Residual deviance: 1873.9  on 1799  degrees of freedom
##   (614 observations deleted due to missingness)
## AIC: 10710
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $lyon
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * 
##     length(time)/153)) + Jours + Vacances, family = poisson, 
##     data = villes_s[[i]])
## 
## Deviance Residuals: 
##      Min        1Q    Median        3Q       Max  
## -3.14857  -0.76117  -0.07346   0.67240   2.95468  
## 
## Coefficients: (13 not defined because of singularities)
##                                                Estimate Std. Error z value
## (Intercept)                                   2.9125595  0.0473853  61.465
## heat_wave                                     0.1563655  0.0739074   2.116
## no2moy                                        0.0013012  0.0009089   1.432
## ns(time, df = round(2 * length(time)/153))1          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))2          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))3          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))4          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))5          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))6          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))7          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))8          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))9          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))10         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))11         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))12 -0.7298697  1.1247436  -0.649
## ns(time, df = round(2 * length(time)/153))13 -0.2277132  0.2019194  -1.128
## ns(time, df = round(2 * length(time)/153))14 -0.1367086  0.1109097  -1.233
## ns(time, df = round(2 * length(time)/153))15 -0.1799387  0.0870755  -2.066
## ns(time, df = round(2 * length(time)/153))16 -0.0237138  0.0824077  -0.288
## ns(time, df = round(2 * length(time)/153))17 -0.2322444  0.0792241  -2.931
## ns(time, df = round(2 * length(time)/153))18 -0.0972782  0.0807360  -1.205
## ns(time, df = round(2 * length(time)/153))19 -0.1711809  0.0779121  -2.197
## ns(time, df = round(2 * length(time)/153))20 -0.0598599  0.0790243  -0.757
## ns(time, df = round(2 * length(time)/153))21 -0.1250276  0.0767600  -1.629
## ns(time, df = round(2 * length(time)/153))22 -0.1781182  0.0798667  -2.230
## ns(time, df = round(2 * length(time)/153))23 -0.0527890  0.0769501  -0.686
## ns(time, df = round(2 * length(time)/153))24 -0.1190518  0.0790031  -1.507
## ns(time, df = round(2 * length(time)/153))25 -0.1286481  0.0757797  -1.698
## ns(time, df = round(2 * length(time)/153))26 -0.1928600  0.0796651  -2.421
## ns(time, df = round(2 * length(time)/153))27 -0.1322194  0.0741284  -1.784
## ns(time, df = round(2 * length(time)/153))28 -0.1853229  0.0816273  -2.270
## ns(time, df = round(2 * length(time)/153))29 -0.0589414  0.0677450  -0.870
## ns(time, df = round(2 * length(time)/153))30 -0.1172928  0.0948979  -1.236
## ns(time, df = round(2 * length(time)/153))31         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))32         NA         NA      NA
## Joursjeudi                                    0.0312913  0.0259773   1.205
## Jourslundi                                    0.0200727  0.0247807   0.810
## Joursmardi                                    0.0393040  0.0253448   1.551
## Joursmercredi                                 0.0095416  0.0258789   0.369
## Jourssamedi                                  -0.0200380  0.0253538  -0.790
## Joursvendredi                                 0.0722111  0.0256371   2.817
## Vacances1                                    -0.0215830  0.0175241  -1.232
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                     0.03437 *  
## no2moy                                        0.15225    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12  0.51639    
## ns(time, df = round(2 * length(time)/153))13  0.25943    
## ns(time, df = round(2 * length(time)/153))14  0.21772    
## ns(time, df = round(2 * length(time)/153))15  0.03878 *  
## ns(time, df = round(2 * length(time)/153))16  0.77353    
## ns(time, df = round(2 * length(time)/153))17  0.00337 ** 
## ns(time, df = round(2 * length(time)/153))18  0.22824    
## ns(time, df = round(2 * length(time)/153))19  0.02801 *  
## ns(time, df = round(2 * length(time)/153))20  0.44876    
## ns(time, df = round(2 * length(time)/153))21  0.10335    
## ns(time, df = round(2 * length(time)/153))22  0.02573 *  
## ns(time, df = round(2 * length(time)/153))23  0.49270    
## ns(time, df = round(2 * length(time)/153))24  0.13183    
## ns(time, df = round(2 * length(time)/153))25  0.08957 .  
## ns(time, df = round(2 * length(time)/153))26  0.01548 *  
## ns(time, df = round(2 * length(time)/153))27  0.07448 .  
## ns(time, df = round(2 * length(time)/153))28  0.02319 *  
## ns(time, df = round(2 * length(time)/153))29  0.38427    
## ns(time, df = round(2 * length(time)/153))30  0.21646    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                    0.22837    
## Jourslundi                                    0.41793    
## Joursmardi                                    0.12096    
## Joursmercredi                                 0.71235    
## Jourssamedi                                   0.42933    
## Joursvendredi                                 0.00485 ** 
## Vacances1                                     0.21809    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1494.7  on 1376  degrees of freedom
## Residual deviance: 1425.7  on 1348  degrees of freedom
##   (1071 observations deleted due to missingness)
## AIC: 7879.6
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $marseille
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * 
##     length(time)/153)) + Jours + Vacances, family = poisson, 
##     data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.4263  -0.6918  -0.0618   0.6503   2.9680  
## 
## Coefficients: (13 not defined because of singularities)
##                                                Estimate Std. Error z value
## (Intercept)                                   2.9438244  0.0463758  63.478
## heat_wave                                    -0.0061396  0.0692970  -0.089
## no2moy                                        0.0010167  0.0005496   1.850
## ns(time, df = round(2 * length(time)/153))1          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))2          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))3          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))4          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))5          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))6          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))7          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))8          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))9          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))10         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))11         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))12  1.1729170  1.0095439   1.162
## ns(time, df = round(2 * length(time)/153))13 -0.2493245  0.1854388  -1.345
## ns(time, df = round(2 * length(time)/153))14  0.1044123  0.1018025   1.026
## ns(time, df = round(2 * length(time)/153))15 -0.0477790  0.0806113  -0.593
## ns(time, df = round(2 * length(time)/153))16  0.0739550  0.0765966   0.966
## ns(time, df = round(2 * length(time)/153))17  0.0116577  0.0726962   0.160
## ns(time, df = round(2 * length(time)/153))18  0.0420978  0.0744723   0.565
## ns(time, df = round(2 * length(time)/153))19 -0.0000861  0.0727438  -0.001
## ns(time, df = round(2 * length(time)/153))20  0.0085915  0.0757071   0.113
## ns(time, df = round(2 * length(time)/153))21 -0.0414456  0.0731189  -0.567
## ns(time, df = round(2 * length(time)/153))22 -0.0178394  0.0748848  -0.238
## ns(time, df = round(2 * length(time)/153))23 -0.0166517  0.0715315  -0.233
## ns(time, df = round(2 * length(time)/153))24  0.0716058  0.0732643   0.977
## ns(time, df = round(2 * length(time)/153))25 -0.0105791  0.0709071  -0.149
## ns(time, df = round(2 * length(time)/153))26  0.0812486  0.0736330   1.103
## ns(time, df = round(2 * length(time)/153))27 -0.0568571  0.0695597  -0.817
## ns(time, df = round(2 * length(time)/153))28  0.0203177  0.0765947   0.265
## ns(time, df = round(2 * length(time)/153))29 -0.1028092  0.0635562  -1.618
## ns(time, df = round(2 * length(time)/153))30  0.1350026  0.0892668   1.512
## ns(time, df = round(2 * length(time)/153))31         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))32         NA         NA      NA
## Joursjeudi                                    0.0348800  0.0230216   1.515
## Jourslundi                                    0.0106272  0.0228441   0.465
## Joursmardi                                    0.0178174  0.0229298   0.777
## Joursmercredi                                 0.0505939  0.0228933   2.210
## Jourssamedi                                   0.0236652  0.0228738   1.035
## Joursvendredi                                 0.0374145  0.0229958   1.627
## Vacances1                                    -0.0334064  0.0162029  -2.062
##                                              Pr(>|z|)    
## (Intercept)                                    <2e-16 ***
## heat_wave                                      0.9294    
## no2moy                                         0.0643 .  
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12   0.2453    
## ns(time, df = round(2 * length(time)/153))13   0.1788    
## ns(time, df = round(2 * length(time)/153))14   0.3051    
## ns(time, df = round(2 * length(time)/153))15   0.5534    
## ns(time, df = round(2 * length(time)/153))16   0.3343    
## ns(time, df = round(2 * length(time)/153))17   0.8726    
## ns(time, df = round(2 * length(time)/153))18   0.5719    
## ns(time, df = round(2 * length(time)/153))19   0.9991    
## ns(time, df = round(2 * length(time)/153))20   0.9096    
## ns(time, df = round(2 * length(time)/153))21   0.5708    
## ns(time, df = round(2 * length(time)/153))22   0.8117    
## ns(time, df = round(2 * length(time)/153))23   0.8159    
## ns(time, df = round(2 * length(time)/153))24   0.3284    
## ns(time, df = round(2 * length(time)/153))25   0.8814    
## ns(time, df = round(2 * length(time)/153))26   0.2698    
## ns(time, df = round(2 * length(time)/153))27   0.4137    
## ns(time, df = round(2 * length(time)/153))28   0.7908    
## ns(time, df = round(2 * length(time)/153))29   0.1057    
## ns(time, df = round(2 * length(time)/153))30   0.1304    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                     0.1297    
## Jourslundi                                     0.6418    
## Joursmardi                                     0.4371    
## Joursmercredi                                  0.0271 *  
## Jourssamedi                                    0.3009    
## Joursvendredi                                  0.1037    
## Vacances1                                      0.0392 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1401.9  on 1369  degrees of freedom
## Residual deviance: 1364.7  on 1341  degrees of freedom
##   (1078 observations deleted due to missingness)
## AIC: 8019.3
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $montpellier
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * 
##     length(time)/153)) + Jours + Vacances, family = poisson, 
##     data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.4697  -0.7451  -0.0615   0.5804   3.7192  
## 
## Coefficients: (13 not defined because of singularities)
##                                               Estimate Std. Error z value
## (Intercept)                                   1.867209   0.080556  23.179
## heat_wave                                     0.094337   0.125066   0.754
## no2moy                                        0.002230   0.001518   1.469
## ns(time, df = round(2 * length(time)/153))1         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))2         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))3         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))4         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))5         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))6         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))7         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))8         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))9         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))10        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))11        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))12  1.703083   1.851477   0.920
## ns(time, df = round(2 * length(time)/153))13 -0.490328   0.342764  -1.431
## ns(time, df = round(2 * length(time)/153))14 -0.140765   0.189339  -0.743
## ns(time, df = round(2 * length(time)/153))15 -0.284779   0.152543  -1.867
## ns(time, df = round(2 * length(time)/153))16 -0.163013   0.142297  -1.146
## ns(time, df = round(2 * length(time)/153))17 -0.113334   0.135098  -0.839
## ns(time, df = round(2 * length(time)/153))18 -0.146302   0.135702  -1.078
## ns(time, df = round(2 * length(time)/153))19 -0.128420   0.132371  -0.970
## ns(time, df = round(2 * length(time)/153))20 -0.175653   0.134572  -1.305
## ns(time, df = round(2 * length(time)/153))21 -0.006325   0.128852  -0.049
## ns(time, df = round(2 * length(time)/153))22 -0.232699   0.137708  -1.690
## ns(time, df = round(2 * length(time)/153))23 -0.143804   0.131708  -1.092
## ns(time, df = round(2 * length(time)/153))24 -0.106862   0.134345  -0.795
## ns(time, df = round(2 * length(time)/153))25 -0.087953   0.128022  -0.687
## ns(time, df = round(2 * length(time)/153))26 -0.253850   0.134702  -1.885
## ns(time, df = round(2 * length(time)/153))27 -0.064197   0.124108  -0.517
## ns(time, df = round(2 * length(time)/153))28 -0.142462   0.136128  -1.047
## ns(time, df = round(2 * length(time)/153))29  0.030188   0.111554   0.271
## ns(time, df = round(2 * length(time)/153))30  0.041435   0.158406   0.262
## ns(time, df = round(2 * length(time)/153))31        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))32        NA         NA      NA
## Joursjeudi                                    0.001458   0.042230   0.035
## Jourslundi                                   -0.045309   0.041759  -1.085
## Joursmardi                                   -0.009648   0.041863  -0.230
## Joursmercredi                                -0.007036   0.042235  -0.167
## Jourssamedi                                  -0.076159   0.042457  -1.794
## Joursvendredi                                 0.029509   0.041887   0.704
## Vacances1                                     0.004159   0.029590   0.141
##                                              Pr(>|z|)    
## (Intercept)                                    <2e-16 ***
## heat_wave                                      0.4507    
## no2moy                                         0.1419    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12   0.3577    
## ns(time, df = round(2 * length(time)/153))13   0.1526    
## ns(time, df = round(2 * length(time)/153))14   0.4572    
## ns(time, df = round(2 * length(time)/153))15   0.0619 .  
## ns(time, df = round(2 * length(time)/153))16   0.2520    
## ns(time, df = round(2 * length(time)/153))17   0.4015    
## ns(time, df = round(2 * length(time)/153))18   0.2810    
## ns(time, df = round(2 * length(time)/153))19   0.3320    
## ns(time, df = round(2 * length(time)/153))20   0.1918    
## ns(time, df = round(2 * length(time)/153))21   0.9608    
## ns(time, df = round(2 * length(time)/153))22   0.0911 .  
## ns(time, df = round(2 * length(time)/153))23   0.2749    
## ns(time, df = round(2 * length(time)/153))24   0.4264    
## ns(time, df = round(2 * length(time)/153))25   0.4921    
## ns(time, df = round(2 * length(time)/153))26   0.0595 .  
## ns(time, df = round(2 * length(time)/153))27   0.6050    
## ns(time, df = round(2 * length(time)/153))28   0.2953    
## ns(time, df = round(2 * length(time)/153))29   0.7867    
## ns(time, df = round(2 * length(time)/153))30   0.7936    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                     0.9725    
## Jourslundi                                     0.2779    
## Joursmardi                                     0.8177    
## Joursmercredi                                  0.8677    
## Jourssamedi                                    0.0728 .  
## Joursvendredi                                  0.4811    
## Vacances1                                      0.8882    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1409.4  on 1373  degrees of freedom
## Residual deviance: 1356.1  on 1345  degrees of freedom
##   (1074 observations deleted due to missingness)
## AIC: 6293.9
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $nancy
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * 
##     length(time)/153)) + Jours + Vacances, family = poisson, 
##     data = villes_s[[i]])
## 
## Deviance Residuals: 
##      Min        1Q    Median        3Q       Max  
## -2.94989  -0.77694  -0.05847   0.63718   2.63307  
## 
## Coefficients: (13 not defined because of singularities)
##                                               Estimate Std. Error z value
## (Intercept)                                   1.834708   0.083264  22.035
## heat_wave                                     0.098727   0.106288   0.929
## no2moy                                        0.001206   0.001922   0.628
## ns(time, df = round(2 * length(time)/153))1         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))2         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))3         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))4         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))5         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))6         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))7         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))8         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))9         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))10        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))11        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))12 -2.809303   1.848424  -1.520
## ns(time, df = round(2 * length(time)/153))13  0.322093   0.326818   0.986
## ns(time, df = round(2 * length(time)/153))14 -0.193081   0.183362  -1.053
## ns(time, df = round(2 * length(time)/153))15 -0.008448   0.146195  -0.058
## ns(time, df = round(2 * length(time)/153))16 -0.137363   0.140392  -0.978
## ns(time, df = round(2 * length(time)/153))17 -0.097259   0.133486  -0.729
## ns(time, df = round(2 * length(time)/153))18  0.002130   0.135340   0.016
## ns(time, df = round(2 * length(time)/153))19 -0.188359   0.131636  -1.431
## ns(time, df = round(2 * length(time)/153))20  0.238769   0.128679   1.856
## ns(time, df = round(2 * length(time)/153))21 -0.099640   0.126437  -0.788
## ns(time, df = round(2 * length(time)/153))22  0.097217   0.130992   0.742
## ns(time, df = round(2 * length(time)/153))23 -0.081745   0.127118  -0.643
## ns(time, df = round(2 * length(time)/153))24  0.040640   0.129536   0.314
## ns(time, df = round(2 * length(time)/153))25 -0.012969   0.124106  -0.105
## ns(time, df = round(2 * length(time)/153))26  0.040635   0.129386   0.314
## ns(time, df = round(2 * length(time)/153))27  0.075839   0.120104   0.631
## ns(time, df = round(2 * length(time)/153))28 -0.082754   0.134255  -0.616
## ns(time, df = round(2 * length(time)/153))29  0.019538   0.110540   0.177
## ns(time, df = round(2 * length(time)/153))30  0.206773   0.156193   1.324
## ns(time, df = round(2 * length(time)/153))31        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))32        NA         NA      NA
## Joursjeudi                                    0.007604   0.041888   0.182
## Jourslundi                                    0.052132   0.039782   1.310
## Joursmardi                                    0.008518   0.041168   0.207
## Joursmercredi                                 0.028408   0.041490   0.685
## Jourssamedi                                  -0.044056   0.041516  -1.061
## Joursvendredi                                 0.037797   0.041781   0.905
## Vacances1                                    -0.028393   0.028427  -0.999
##                                              Pr(>|z|)    
## (Intercept)                                    <2e-16 ***
## heat_wave                                      0.3530    
## no2moy                                         0.5303    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12   0.1286    
## ns(time, df = round(2 * length(time)/153))13   0.3244    
## ns(time, df = round(2 * length(time)/153))14   0.2923    
## ns(time, df = round(2 * length(time)/153))15   0.9539    
## ns(time, df = round(2 * length(time)/153))16   0.3279    
## ns(time, df = round(2 * length(time)/153))17   0.4662    
## ns(time, df = round(2 * length(time)/153))18   0.9874    
## ns(time, df = round(2 * length(time)/153))19   0.1525    
## ns(time, df = round(2 * length(time)/153))20   0.0635 .  
## ns(time, df = round(2 * length(time)/153))21   0.4307    
## ns(time, df = round(2 * length(time)/153))22   0.4580    
## ns(time, df = round(2 * length(time)/153))23   0.5202    
## ns(time, df = round(2 * length(time)/153))24   0.7537    
## ns(time, df = round(2 * length(time)/153))25   0.9168    
## ns(time, df = round(2 * length(time)/153))26   0.7535    
## ns(time, df = round(2 * length(time)/153))27   0.5278    
## ns(time, df = round(2 * length(time)/153))28   0.5376    
## ns(time, df = round(2 * length(time)/153))29   0.8597    
## ns(time, df = round(2 * length(time)/153))30   0.1856    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                     0.8560    
## Jourslundi                                     0.1900    
## Joursmardi                                     0.8361    
## Joursmercredi                                  0.4935    
## Jourssamedi                                    0.2886    
## Joursvendredi                                  0.3656    
## Vacances1                                      0.3179    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1437.2  on 1374  degrees of freedom
## Residual deviance: 1391.9  on 1346  degrees of freedom
##   (1073 observations deleted due to missingness)
## AIC: 6446
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $nantes
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * 
##     length(time)/153)) + Jours + Vacances, family = poisson, 
##     data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.2018  -0.7205  -0.0167   0.5929   3.8579  
## 
## Coefficients: (13 not defined because of singularities)
##                                                Estimate Std. Error z value
## (Intercept)                                   2.313e+00  6.365e-02  36.341
## heat_wave                                     1.451e-03  1.894e-01   0.008
## no2moy                                        7.072e-04  2.361e-03   0.300
## ns(time, df = round(2 * length(time)/153))1          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))2          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))3          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))4          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))5          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))6          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))7          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))8          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))9          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))10         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))11         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))12 -1.688e+00  1.418e+00  -1.191
## ns(time, df = round(2 * length(time)/153))13  2.804e-01  2.597e-01   1.080
## ns(time, df = round(2 * length(time)/153))14 -2.140e-01  1.470e-01  -1.456
## ns(time, df = round(2 * length(time)/153))15  2.829e-02  1.211e-01   0.234
## ns(time, df = round(2 * length(time)/153))16 -2.121e-01  1.126e-01  -1.883
## ns(time, df = round(2 * length(time)/153))17  1.397e-02  1.081e-01   0.129
## ns(time, df = round(2 * length(time)/153))18 -1.450e-01  1.142e-01  -1.270
## ns(time, df = round(2 * length(time)/153))19 -4.267e-02  1.073e-01  -0.398
## ns(time, df = round(2 * length(time)/153))20 -9.187e-06  1.085e-01   0.000
## ns(time, df = round(2 * length(time)/153))21 -1.114e-01  1.060e-01  -1.051
## ns(time, df = round(2 * length(time)/153))22 -8.017e-02  1.154e-01  -0.695
## ns(time, df = round(2 * length(time)/153))23  9.803e-03  1.050e-01   0.093
## ns(time, df = round(2 * length(time)/153))24 -8.299e-02  1.077e-01  -0.771
## ns(time, df = round(2 * length(time)/153))25 -7.010e-03  1.013e-01  -0.069
## ns(time, df = round(2 * length(time)/153))26 -3.424e-02  1.128e-01  -0.304
## ns(time, df = round(2 * length(time)/153))27 -2.956e-02  9.890e-02  -0.299
## ns(time, df = round(2 * length(time)/153))28  1.994e-02  1.096e-01   0.182
## ns(time, df = round(2 * length(time)/153))29 -1.462e-01  9.055e-02  -1.614
## ns(time, df = round(2 * length(time)/153))30  1.210e-01  1.272e-01   0.951
## ns(time, df = round(2 * length(time)/153))31         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))32         NA         NA      NA
## Joursjeudi                                    4.213e-02  3.431e-02   1.228
## Jourslundi                                    4.235e-02  3.366e-02   1.258
## Joursmardi                                    6.232e-02  3.412e-02   1.826
## Joursmercredi                                 2.132e-02  3.433e-02   0.621
## Jourssamedi                                   4.105e-03  3.410e-02   0.120
## Joursvendredi                                 3.819e-02  3.462e-02   1.103
## Vacances1                                    -4.280e-02  2.329e-02  -1.838
##                                              Pr(>|z|)    
## (Intercept)                                    <2e-16 ***
## heat_wave                                      0.9939    
## no2moy                                         0.7645    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12   0.2338    
## ns(time, df = round(2 * length(time)/153))13   0.2803    
## ns(time, df = round(2 * length(time)/153))14   0.1453    
## ns(time, df = round(2 * length(time)/153))15   0.8152    
## ns(time, df = round(2 * length(time)/153))16   0.0597 .  
## ns(time, df = round(2 * length(time)/153))17   0.8972    
## ns(time, df = round(2 * length(time)/153))18   0.2042    
## ns(time, df = round(2 * length(time)/153))19   0.6908    
## ns(time, df = round(2 * length(time)/153))20   0.9999    
## ns(time, df = round(2 * length(time)/153))21   0.2931    
## ns(time, df = round(2 * length(time)/153))22   0.4873    
## ns(time, df = round(2 * length(time)/153))23   0.9256    
## ns(time, df = round(2 * length(time)/153))24   0.4408    
## ns(time, df = round(2 * length(time)/153))25   0.9449    
## ns(time, df = round(2 * length(time)/153))26   0.7614    
## ns(time, df = round(2 * length(time)/153))27   0.7651    
## ns(time, df = round(2 * length(time)/153))28   0.8556    
## ns(time, df = round(2 * length(time)/153))29   0.1064    
## ns(time, df = round(2 * length(time)/153))30   0.3415    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                     0.2195    
## Jourslundi                                     0.2084    
## Joursmardi                                     0.0678 .  
## Joursmercredi                                  0.5346    
## Jourssamedi                                    0.9042    
## Joursvendredi                                  0.2700    
## Vacances1                                      0.0660 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1381.2  on 1312  degrees of freedom
## Residual deviance: 1348.4  on 1284  degrees of freedom
##   (1135 observations deleted due to missingness)
## AIC: 6772.2
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $nice
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * 
##     length(time)/153)) + Jours + Vacances, family = poisson, 
##     data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.3116  -0.7364  -0.0479   0.6655   3.3366  
## 
## Coefficients: (13 not defined because of singularities)
##                                                Estimate Std. Error z value
## (Intercept)                                   2.3755509  0.0709423  33.486
## heat_wave                                     0.0056155  0.1025784   0.055
## no2moy                                        0.0004202  0.0017629   0.238
## ns(time, df = round(2 * length(time)/153))1          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))2          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))3          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))4          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))5          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))6          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))7          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))8          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))9          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))10         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))11         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))12  0.0084291  1.3740326   0.006
## ns(time, df = round(2 * length(time)/153))13 -0.0310653  0.2503218  -0.124
## ns(time, df = round(2 * length(time)/153))14 -0.1534734  0.1399368  -1.097
## ns(time, df = round(2 * length(time)/153))15  0.0410992  0.1096022   0.375
## ns(time, df = round(2 * length(time)/153))16 -0.0521964  0.1097822  -0.475
## ns(time, df = round(2 * length(time)/153))17  0.0076135  0.0985664   0.077
## ns(time, df = round(2 * length(time)/153))18  0.0110507  0.1033049   0.107
## ns(time, df = round(2 * length(time)/153))19 -0.0123503  0.0988009  -0.125
## ns(time, df = round(2 * length(time)/153))20 -0.1340540  0.1033003  -1.298
## ns(time, df = round(2 * length(time)/153))21  0.0522221  0.0985708   0.530
## ns(time, df = round(2 * length(time)/153))22 -0.1879697  0.1040421  -1.807
## ns(time, df = round(2 * length(time)/153))23  0.1249519  0.0974231   1.283
## ns(time, df = round(2 * length(time)/153))24 -0.2242161  0.1020966  -2.196
## ns(time, df = round(2 * length(time)/153))25  0.1831806  0.0962511   1.903
## ns(time, df = round(2 * length(time)/153))26 -0.1401847  0.1006560  -1.393
## ns(time, df = round(2 * length(time)/153))27  0.0155690  0.0936435   0.166
## ns(time, df = round(2 * length(time)/153))28  0.0016791  0.1022707   0.016
## ns(time, df = round(2 * length(time)/153))29 -0.0484968  0.0849791  -0.571
## ns(time, df = round(2 * length(time)/153))30  0.0181329  0.1193208   0.152
## ns(time, df = round(2 * length(time)/153))31         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))32         NA         NA      NA
## Joursjeudi                                   -0.0109434  0.0328211  -0.333
## Jourslundi                                    0.0455709  0.0308760   1.476
## Joursmardi                                    0.0123528  0.0321719   0.384
## Joursmercredi                                 0.0075825  0.0326404   0.232
## Jourssamedi                                   0.0442128  0.0316191   1.398
## Joursvendredi                                 0.0661642  0.0323894   2.043
## Vacances1                                     0.0112118  0.0222758   0.503
##                                              Pr(>|z|)    
## (Intercept)                                    <2e-16 ***
## heat_wave                                      0.9563    
## no2moy                                         0.8116    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12   0.9951    
## ns(time, df = round(2 * length(time)/153))13   0.9012    
## ns(time, df = round(2 * length(time)/153))14   0.2728    
## ns(time, df = round(2 * length(time)/153))15   0.7077    
## ns(time, df = round(2 * length(time)/153))16   0.6345    
## ns(time, df = round(2 * length(time)/153))17   0.9384    
## ns(time, df = round(2 * length(time)/153))18   0.9148    
## ns(time, df = round(2 * length(time)/153))19   0.9005    
## ns(time, df = round(2 * length(time)/153))20   0.1944    
## ns(time, df = round(2 * length(time)/153))21   0.5963    
## ns(time, df = round(2 * length(time)/153))22   0.0708 .  
## ns(time, df = round(2 * length(time)/153))23   0.1996    
## ns(time, df = round(2 * length(time)/153))24   0.0281 *  
## ns(time, df = round(2 * length(time)/153))25   0.0570 .  
## ns(time, df = round(2 * length(time)/153))26   0.1637    
## ns(time, df = round(2 * length(time)/153))27   0.8680    
## ns(time, df = round(2 * length(time)/153))28   0.9869    
## ns(time, df = round(2 * length(time)/153))29   0.5682    
## ns(time, df = round(2 * length(time)/153))30   0.8792    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                     0.7388    
## Jourslundi                                     0.1400    
## Joursmardi                                     0.7010    
## Joursmercredi                                  0.8163    
## Jourssamedi                                    0.1620    
## Joursvendredi                                  0.0411 *  
## Vacances1                                      0.6147    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1437.6  on 1358  degrees of freedom
## Residual deviance: 1408.2  on 1330  degrees of freedom
##   (1089 observations deleted due to missingness)
## AIC: 7158.5
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $paris
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * 
##     length(time)/153)) + Jours + Vacances, family = poisson, 
##     data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.4542  -0.7920  -0.0590   0.7474   3.8062  
## 
## Coefficients: (13 not defined because of singularities)
##                                                Estimate Std. Error z value
## (Intercept)                                   4.4622057  0.0218318 204.390
## heat_wave                                     0.2105394  0.0296090   7.111
## no2moy                                        0.0030195  0.0003559   8.484
## ns(time, df = round(2 * length(time)/153))1          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))2          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))3          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))4          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))5          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))6          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))7          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))8          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))9          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))10         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))11         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))12  0.5134040  0.4527567   1.134
## ns(time, df = round(2 * length(time)/153))13 -0.1508802  0.0823362  -1.832
## ns(time, df = round(2 * length(time)/153))14  0.1110419  0.0465671   2.385
## ns(time, df = round(2 * length(time)/153))15 -0.0931674  0.0369533  -2.521
## ns(time, df = round(2 * length(time)/153))16  0.1164288  0.0358935   3.244
## ns(time, df = round(2 * length(time)/153))17 -0.0866836  0.0337168  -2.571
## ns(time, df = round(2 * length(time)/153))18  0.0867078  0.0348089   2.491
## ns(time, df = round(2 * length(time)/153))19 -0.0497632  0.0332638  -1.496
## ns(time, df = round(2 * length(time)/153))20  0.0724571  0.0342344   2.116
## ns(time, df = round(2 * length(time)/153))21 -0.0266357  0.0329402  -0.809
## ns(time, df = round(2 * length(time)/153))22  0.0902264  0.0343832   2.624
## ns(time, df = round(2 * length(time)/153))23 -0.0085582  0.0326267  -0.262
## ns(time, df = round(2 * length(time)/153))24  0.0666488  0.0338982   1.966
## ns(time, df = round(2 * length(time)/153))25 -0.0401769  0.0321449  -1.250
## ns(time, df = round(2 * length(time)/153))26  0.1048259  0.0338546   3.096
## ns(time, df = round(2 * length(time)/153))27 -0.0969348  0.0319516  -3.034
## ns(time, df = round(2 * length(time)/153))28  0.0581616  0.0349793   1.663
## ns(time, df = round(2 * length(time)/153))29 -0.0014165  0.0288877  -0.049
## ns(time, df = round(2 * length(time)/153))30  0.0743031  0.0412569   1.801
## ns(time, df = round(2 * length(time)/153))31         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))32         NA         NA      NA
## Joursjeudi                                    0.0359921  0.0107097   3.361
## Jourslundi                                    0.0455830  0.0103614   4.399
## Joursmardi                                    0.0288158  0.0106208   2.713
## Joursmercredi                                 0.0180862  0.0107540   1.682
## Jourssamedi                                   0.0185546  0.0105251   1.763
## Joursvendredi                                 0.0138401  0.0107701   1.285
## Vacances1                                    -0.0376135  0.0073780  -5.098
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                    1.15e-12 ***
## no2moy                                        < 2e-16 ***
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12 0.256815    
## ns(time, df = round(2 * length(time)/153))13 0.066878 .  
## ns(time, df = round(2 * length(time)/153))14 0.017100 *  
## ns(time, df = round(2 * length(time)/153))15 0.011695 *  
## ns(time, df = round(2 * length(time)/153))16 0.001180 ** 
## ns(time, df = round(2 * length(time)/153))17 0.010142 *  
## ns(time, df = round(2 * length(time)/153))18 0.012740 *  
## ns(time, df = round(2 * length(time)/153))19 0.134649    
## ns(time, df = round(2 * length(time)/153))20 0.034302 *  
## ns(time, df = round(2 * length(time)/153))21 0.418742    
## ns(time, df = round(2 * length(time)/153))22 0.008687 ** 
## ns(time, df = round(2 * length(time)/153))23 0.793085    
## ns(time, df = round(2 * length(time)/153))24 0.049282 *  
## ns(time, df = round(2 * length(time)/153))25 0.211348    
## ns(time, df = round(2 * length(time)/153))26 0.001959 ** 
## ns(time, df = round(2 * length(time)/153))27 0.002415 ** 
## ns(time, df = round(2 * length(time)/153))28 0.096364 .  
## ns(time, df = round(2 * length(time)/153))29 0.960893    
## ns(time, df = round(2 * length(time)/153))30 0.071705 .  
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                   0.000777 ***
## Jourslundi                                   1.09e-05 ***
## Joursmardi                                   0.006665 ** 
## Joursmercredi                                0.092605 .  
## Jourssamedi                                  0.077918 .  
## Joursvendredi                                0.198776    
## Vacances1                                    3.43e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1995.9  on 1376  degrees of freedom
## Residual deviance: 1757.8  on 1348  degrees of freedom
##   (1071 observations deleted due to missingness)
## AIC: 10632
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $rennes
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * 
##     length(time)/153)) + Jours + Vacances, family = poisson, 
##     data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -2.8204  -0.7675  -0.0942   0.5922   3.6103  
## 
## Coefficients: (13 not defined because of singularities)
##                                                Estimate Std. Error z value
## (Intercept)                                   1.3847088  0.1030159  13.442
## heat_wave                                    -0.2123030  0.3376929  -0.629
## no2moy                                       -0.0038778  0.0031209  -1.243
## ns(time, df = round(2 * length(time)/153))1          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))2          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))3          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))4          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))5          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))6          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))7          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))8          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))9          NA         NA      NA
## ns(time, df = round(2 * length(time)/153))10         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))11         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))12  1.0974902  2.4202446   0.453
## ns(time, df = round(2 * length(time)/153))13 -0.3829355  0.4462680  -0.858
## ns(time, df = round(2 * length(time)/153))14 -0.0852518  0.2447391  -0.348
## ns(time, df = round(2 * length(time)/153))15 -0.1116258  0.1924692  -0.580
## ns(time, df = round(2 * length(time)/153))16 -0.0306236  0.1824174  -0.168
## ns(time, df = round(2 * length(time)/153))17 -0.2703200  0.1749598  -1.545
## ns(time, df = round(2 * length(time)/153))18 -0.0889802  0.1786972  -0.498
## ns(time, df = round(2 * length(time)/153))19  0.0106399  0.1704341   0.062
## ns(time, df = round(2 * length(time)/153))20 -0.4235258  0.1783575  -2.375
## ns(time, df = round(2 * length(time)/153))21  0.1390606  0.1669839   0.833
## ns(time, df = round(2 * length(time)/153))22 -0.0984123  0.1744111  -0.564
## ns(time, df = round(2 * length(time)/153))23 -0.0007603  0.1662277  -0.005
## ns(time, df = round(2 * length(time)/153))24 -0.0871773  0.1775229  -0.491
## ns(time, df = round(2 * length(time)/153))25  0.0279932  0.1651031   0.170
## ns(time, df = round(2 * length(time)/153))26 -0.0213547  0.1712863  -0.125
## ns(time, df = round(2 * length(time)/153))27 -0.0628965  0.1592337  -0.395
## ns(time, df = round(2 * length(time)/153))28  0.1182774  0.1737917   0.681
## ns(time, df = round(2 * length(time)/153))29 -0.1725963  0.1492209  -1.157
## ns(time, df = round(2 * length(time)/153))30 -0.0214462  0.2047781  -0.105
## ns(time, df = round(2 * length(time)/153))31         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))32         NA         NA      NA
## Joursjeudi                                    0.1175346  0.0562062   2.091
## Jourslundi                                    0.1160030  0.0532403   2.179
## Joursmardi                                    0.0978408  0.0553755   1.767
## Joursmercredi                                 0.0141606  0.0568249   0.249
## Jourssamedi                                   0.0969454  0.0547858   1.770
## Joursvendredi                                -0.0179802  0.0582975  -0.308
## Vacances1                                    -0.0465582  0.0379961  -1.225
##                                              Pr(>|z|)    
## (Intercept)                                    <2e-16 ***
## heat_wave                                      0.5296    
## no2moy                                         0.2140    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12   0.6502    
## ns(time, df = round(2 * length(time)/153))13   0.3908    
## ns(time, df = round(2 * length(time)/153))14   0.7276    
## ns(time, df = round(2 * length(time)/153))15   0.5619    
## ns(time, df = round(2 * length(time)/153))16   0.8667    
## ns(time, df = round(2 * length(time)/153))17   0.1223    
## ns(time, df = round(2 * length(time)/153))18   0.6185    
## ns(time, df = round(2 * length(time)/153))19   0.9502    
## ns(time, df = round(2 * length(time)/153))20   0.0176 *  
## ns(time, df = round(2 * length(time)/153))21   0.4050    
## ns(time, df = round(2 * length(time)/153))22   0.5726    
## ns(time, df = round(2 * length(time)/153))23   0.9964    
## ns(time, df = round(2 * length(time)/153))24   0.6234    
## ns(time, df = round(2 * length(time)/153))25   0.8654    
## ns(time, df = round(2 * length(time)/153))26   0.9008    
## ns(time, df = round(2 * length(time)/153))27   0.6928    
## ns(time, df = round(2 * length(time)/153))28   0.4961    
## ns(time, df = round(2 * length(time)/153))29   0.2474    
## ns(time, df = round(2 * length(time)/153))30   0.9166    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                     0.0365 *  
## Jourslundi                                     0.0293 *  
## Joursmardi                                     0.0773 .  
## Joursmercredi                                  0.8032    
## Jourssamedi                                    0.0768 .  
## Joursvendredi                                  0.7578    
## Vacances1                                      0.2204    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1280.2  on 1333  degrees of freedom
## Residual deviance: 1237.6  on 1305  degrees of freedom
##   (1114 observations deleted due to missingness)
## AIC: 5369.5
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $rouen
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * 
##     length(time)/153)) + Jours + Vacances, family = poisson, 
##     data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.3258  -0.6979  -0.0772   0.6079   3.6075  
## 
## Coefficients: (13 not defined because of singularities)
##                                               Estimate Std. Error z value
## (Intercept)                                   2.204044   0.070154  31.417
## heat_wave                                     0.155263   0.132243   1.174
## no2moy                                        0.002787   0.002122   1.314
## ns(time, df = round(2 * length(time)/153))1         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))2         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))3         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))4         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))5         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))6         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))7         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))8         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))9         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))10        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))11        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))12 -0.187839   1.522451  -0.123
## ns(time, df = round(2 * length(time)/153))13 -0.342084   0.272070  -1.257
## ns(time, df = round(2 * length(time)/153))14  0.169110   0.150673   1.122
## ns(time, df = round(2 * length(time)/153))15 -0.270900   0.121518  -2.229
## ns(time, df = round(2 * length(time)/153))16 -0.033658   0.115599  -0.291
## ns(time, df = round(2 * length(time)/153))17 -0.120159   0.109769  -1.095
## ns(time, df = round(2 * length(time)/153))18 -0.056666   0.112894  -0.502
## ns(time, df = round(2 * length(time)/153))19 -0.138892   0.108983  -1.274
## ns(time, df = round(2 * length(time)/153))20 -0.062910   0.110876  -0.567
## ns(time, df = round(2 * length(time)/153))21 -0.162114   0.107179  -1.513
## ns(time, df = round(2 * length(time)/153))22  0.045924   0.111400   0.412
## ns(time, df = round(2 * length(time)/153))23 -0.233565   0.106672  -2.190
## ns(time, df = round(2 * length(time)/153))24  0.044616   0.111353   0.401
## ns(time, df = round(2 * length(time)/153))25 -0.166784   0.105835  -1.576
## ns(time, df = round(2 * length(time)/153))26 -0.037289   0.111848  -0.333
## ns(time, df = round(2 * length(time)/153))27 -0.079310   0.101732  -0.780
## ns(time, df = round(2 * length(time)/153))28 -0.033411   0.113605  -0.294
## ns(time, df = round(2 * length(time)/153))29 -0.145362   0.092123  -1.578
## ns(time, df = round(2 * length(time)/153))30  0.114362   0.129935   0.880
## ns(time, df = round(2 * length(time)/153))31        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))32        NA         NA      NA
## Joursjeudi                                    0.041478   0.036769   1.128
## Jourslundi                                    0.047503   0.034454   1.379
## Joursmardi                                    0.053390   0.036295   1.471
## Joursmercredi                                 0.107310   0.036344   2.953
## Jourssamedi                                   0.081944   0.034833   2.353
## Joursvendredi                                 0.049508   0.036743   1.347
## Vacances1                                    -0.075246   0.023944  -3.143
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                     0.24036    
## no2moy                                        0.18900    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12  0.90181    
## ns(time, df = round(2 * length(time)/153))13  0.20863    
## ns(time, df = round(2 * length(time)/153))14  0.26171    
## ns(time, df = round(2 * length(time)/153))15  0.02579 *  
## ns(time, df = round(2 * length(time)/153))16  0.77093    
## ns(time, df = round(2 * length(time)/153))17  0.27367    
## ns(time, df = round(2 * length(time)/153))18  0.61571    
## ns(time, df = round(2 * length(time)/153))19  0.20251    
## ns(time, df = round(2 * length(time)/153))20  0.57045    
## ns(time, df = round(2 * length(time)/153))21  0.13039    
## ns(time, df = round(2 * length(time)/153))22  0.68016    
## ns(time, df = round(2 * length(time)/153))23  0.02856 *  
## ns(time, df = round(2 * length(time)/153))24  0.68866    
## ns(time, df = round(2 * length(time)/153))25  0.11505    
## ns(time, df = round(2 * length(time)/153))26  0.73884    
## ns(time, df = round(2 * length(time)/153))27  0.43563    
## ns(time, df = round(2 * length(time)/153))28  0.76868    
## ns(time, df = round(2 * length(time)/153))29  0.11458    
## ns(time, df = round(2 * length(time)/153))30  0.37878    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                    0.25929    
## Jourslundi                                    0.16798    
## Joursmardi                                    0.14128    
## Joursmercredi                                 0.00315 ** 
## Jourssamedi                                   0.01865 *  
## Joursvendredi                                 0.17785    
## Vacances1                                     0.00167 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1340.4  on 1376  degrees of freedom
## Residual deviance: 1293.9  on 1348  degrees of freedom
##   (1071 observations deleted due to missingness)
## AIC: 6869.4
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $strasbourg
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * 
##     length(time)/153)) + Jours + Vacances, family = poisson, 
##     data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.3570  -0.7403  -0.0308   0.5992   3.6948  
## 
## Coefficients:
##                                               Estimate Std. Error z value
## (Intercept)                                   1.894823   0.091723  20.658
## heat_wave                                     0.420064   0.050642   8.295
## no2moy                                        0.002884   0.001202   2.400
## ns(time, df = round(2 * length(time)/153))1  -0.121578   0.102577  -1.185
## ns(time, df = round(2 * length(time)/153))2   0.306127   0.139763   2.190
## ns(time, df = round(2 * length(time)/153))3   0.073988   0.115871   0.639
## ns(time, df = round(2 * length(time)/153))4   0.153223   0.136408   1.123
## ns(time, df = round(2 * length(time)/153))5   0.050074   0.120425   0.416
## ns(time, df = round(2 * length(time)/153))6   0.304980   0.131794   2.314
## ns(time, df = round(2 * length(time)/153))7  -0.073241   0.122741  -0.597
## ns(time, df = round(2 * length(time)/153))8   0.243553   0.134146   1.816
## ns(time, df = round(2 * length(time)/153))9  -0.201885   0.126151  -1.600
## ns(time, df = round(2 * length(time)/153))10  0.172631   0.135557   1.273
## ns(time, df = round(2 * length(time)/153))11 -0.207565   0.126036  -1.647
## ns(time, df = round(2 * length(time)/153))12  0.263511   0.132896   1.983
## ns(time, df = round(2 * length(time)/153))13 -0.067352   0.123237  -0.547
## ns(time, df = round(2 * length(time)/153))14  0.263755   0.132745   1.987
## ns(time, df = round(2 * length(time)/153))15  0.046676   0.122171   0.382
## ns(time, df = round(2 * length(time)/153))16  0.187585   0.133258   1.408
## ns(time, df = round(2 * length(time)/153))17 -0.028988   0.123416  -0.235
## ns(time, df = round(2 * length(time)/153))18  0.208140   0.134300   1.550
## ns(time, df = round(2 * length(time)/153))19  0.107393   0.122017   0.880
## ns(time, df = round(2 * length(time)/153))20  0.040637   0.133644   0.304
## ns(time, df = round(2 * length(time)/153))21  0.384537   0.120128   3.201
## ns(time, df = round(2 * length(time)/153))22 -0.147497   0.135353  -1.090
## ns(time, df = round(2 * length(time)/153))23  0.324455   0.121220   2.677
## ns(time, df = round(2 * length(time)/153))24  0.031509   0.132777   0.237
## ns(time, df = round(2 * length(time)/153))25  0.068700   0.122708   0.560
## ns(time, df = round(2 * length(time)/153))26  0.352634   0.130401   2.704
## ns(time, df = round(2 * length(time)/153))27 -0.100465   0.123222  -0.815
## ns(time, df = round(2 * length(time)/153))28  0.290971   0.129325   2.250
## ns(time, df = round(2 * length(time)/153))29  0.175968   0.120676   1.458
## ns(time, df = round(2 * length(time)/153))30  0.105776   0.103098   1.026
## ns(time, df = round(2 * length(time)/153))31  0.433073   0.217829   1.988
## ns(time, df = round(2 * length(time)/153))32 -0.053428   0.090863  -0.588
## Joursjeudi                                   -0.033443   0.028535  -1.172
## Jourslundi                                    0.039035   0.026824   1.455
## Joursmardi                                    0.011489   0.027771   0.414
## Joursmercredi                                 0.031322   0.028037   1.117
## Jourssamedi                                  -0.028183   0.027767  -1.015
## Joursvendredi                                -0.009874   0.028391  -0.348
## Vacances1                                    -0.045157   0.018806  -2.401
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                     < 2e-16 ***
## no2moy                                        0.01639 *  
## ns(time, df = round(2 * length(time)/153))1   0.23592    
## ns(time, df = round(2 * length(time)/153))2   0.02850 *  
## ns(time, df = round(2 * length(time)/153))3   0.52312    
## ns(time, df = round(2 * length(time)/153))4   0.26132    
## ns(time, df = round(2 * length(time)/153))5   0.67755    
## ns(time, df = round(2 * length(time)/153))6   0.02066 *  
## ns(time, df = round(2 * length(time)/153))7   0.55070    
## ns(time, df = round(2 * length(time)/153))8   0.06943 .  
## ns(time, df = round(2 * length(time)/153))9   0.10952    
## ns(time, df = round(2 * length(time)/153))10  0.20284    
## ns(time, df = round(2 * length(time)/153))11  0.09958 .  
## ns(time, df = round(2 * length(time)/153))12  0.04739 *  
## ns(time, df = round(2 * length(time)/153))13  0.58470    
## ns(time, df = round(2 * length(time)/153))14  0.04693 *  
## ns(time, df = round(2 * length(time)/153))15  0.70242    
## ns(time, df = round(2 * length(time)/153))16  0.15923    
## ns(time, df = round(2 * length(time)/153))17  0.81430    
## ns(time, df = round(2 * length(time)/153))18  0.12119    
## ns(time, df = round(2 * length(time)/153))19  0.37878    
## ns(time, df = round(2 * length(time)/153))20  0.76108    
## ns(time, df = round(2 * length(time)/153))21  0.00137 ** 
## ns(time, df = round(2 * length(time)/153))22  0.27583    
## ns(time, df = round(2 * length(time)/153))23  0.00744 ** 
## ns(time, df = round(2 * length(time)/153))24  0.81242    
## ns(time, df = round(2 * length(time)/153))25  0.57557    
## ns(time, df = round(2 * length(time)/153))26  0.00685 ** 
## ns(time, df = round(2 * length(time)/153))27  0.41489    
## ns(time, df = round(2 * length(time)/153))28  0.02445 *  
## ns(time, df = round(2 * length(time)/153))29  0.14479    
## ns(time, df = round(2 * length(time)/153))30  0.30490    
## ns(time, df = round(2 * length(time)/153))31  0.04680 *  
## ns(time, df = round(2 * length(time)/153))32  0.55653    
## Joursjeudi                                    0.24120    
## Jourslundi                                    0.14561    
## Joursmardi                                    0.67910    
## Joursmercredi                                 0.26391    
## Jourssamedi                                   0.31011    
## Joursvendredi                                 0.72800    
## Vacances1                                     0.01634 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 2652.8  on 2443  degrees of freedom
## Residual deviance: 2476.5  on 2402  degrees of freedom
##   (4 observations deleted due to missingness)
## AIC: 11990
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $toulouse
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * 
##     length(time)/153)) + Jours + Vacances, family = poisson, 
##     data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.3211  -0.7438  -0.0517   0.6442   3.4584  
## 
## Coefficients: (13 not defined because of singularities)
##                                               Estimate Std. Error z value
## (Intercept)                                   2.445996   0.060086  40.709
## heat_wave                                     0.081156   0.093078   0.872
## no2moy                                        0.001865   0.001399   1.333
## ns(time, df = round(2 * length(time)/153))1         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))2         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))3         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))4         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))5         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))6         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))7         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))8         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))9         NA         NA      NA
## ns(time, df = round(2 * length(time)/153))10        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))11        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))12 -2.920638   1.381131  -2.115
## ns(time, df = round(2 * length(time)/153))13  0.360370   0.245735   1.466
## ns(time, df = round(2 * length(time)/153))14 -0.340704   0.139401  -2.444
## ns(time, df = round(2 * length(time)/153))15 -0.075168   0.108224  -0.695
## ns(time, df = round(2 * length(time)/153))16 -0.089084   0.103604  -0.860
## ns(time, df = round(2 * length(time)/153))17 -0.121084   0.097842  -1.238
## ns(time, df = round(2 * length(time)/153))18 -0.049768   0.100760  -0.494
## ns(time, df = round(2 * length(time)/153))19 -0.215535   0.097272  -2.216
## ns(time, df = round(2 * length(time)/153))20 -0.034846   0.099197  -0.351
## ns(time, df = round(2 * length(time)/153))21 -0.054567   0.094357  -0.578
## ns(time, df = round(2 * length(time)/153))22 -0.072948   0.098277  -0.742
## ns(time, df = round(2 * length(time)/153))23 -0.003592   0.093873  -0.038
## ns(time, df = round(2 * length(time)/153))24 -0.186962   0.098118  -1.905
## ns(time, df = round(2 * length(time)/153))25  0.135384   0.091652   1.477
## ns(time, df = round(2 * length(time)/153))26 -0.142154   0.096768  -1.469
## ns(time, df = round(2 * length(time)/153))27  0.115173   0.089681   1.284
## ns(time, df = round(2 * length(time)/153))28 -0.260651   0.100686  -2.589
## ns(time, df = round(2 * length(time)/153))29  0.130194   0.082705   1.574
## ns(time, df = round(2 * length(time)/153))30 -0.149981   0.117216  -1.280
## ns(time, df = round(2 * length(time)/153))31        NA         NA      NA
## ns(time, df = round(2 * length(time)/153))32        NA         NA      NA
## Joursjeudi                                    0.014545   0.031528   0.461
## Jourslundi                                    0.045516   0.030299   1.502
## Joursmardi                                    0.010893   0.031190   0.349
## Joursmercredi                                 0.045470   0.031364   1.450
## Jourssamedi                                   0.020402   0.030690   0.665
## Joursvendredi                                 0.039047   0.031239   1.250
## Vacances1                                    -0.026472   0.021615  -1.225
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                     0.38326    
## no2moy                                        0.18238    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12  0.03446 *  
## ns(time, df = round(2 * length(time)/153))13  0.14251    
## ns(time, df = round(2 * length(time)/153))14  0.01452 *  
## ns(time, df = round(2 * length(time)/153))15  0.48733    
## ns(time, df = round(2 * length(time)/153))16  0.38987    
## ns(time, df = round(2 * length(time)/153))17  0.21588    
## ns(time, df = round(2 * length(time)/153))18  0.62136    
## ns(time, df = round(2 * length(time)/153))19  0.02671 *  
## ns(time, df = round(2 * length(time)/153))20  0.72538    
## ns(time, df = round(2 * length(time)/153))21  0.56306    
## ns(time, df = round(2 * length(time)/153))22  0.45793    
## ns(time, df = round(2 * length(time)/153))23  0.96948    
## ns(time, df = round(2 * length(time)/153))24  0.05672 .  
## ns(time, df = round(2 * length(time)/153))25  0.13964    
## ns(time, df = round(2 * length(time)/153))26  0.14183    
## ns(time, df = round(2 * length(time)/153))27  0.19905    
## ns(time, df = round(2 * length(time)/153))28  0.00963 ** 
## ns(time, df = round(2 * length(time)/153))29  0.11544    
## ns(time, df = round(2 * length(time)/153))30  0.20071    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                    0.64457    
## Jourslundi                                    0.13304    
## Joursmardi                                    0.72691    
## Joursmercredi                                 0.14712    
## Jourssamedi                                   0.50620    
## Joursvendredi                                 0.21132    
## Vacances1                                     0.22068    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1478.9  on 1376  degrees of freedom
## Residual deviance: 1420.3  on 1348  degrees of freedom
##   (1071 observations deleted due to missingness)
## AIC: 7290.8
## 
## Number of Fisher Scoring iterations: 4

REsults for gam function

lapply(m.outcome_g,function(x){summary(x)})
## $BM
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * length(time)/153)) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                                                Estimate Std. Error z value
## (Intercept)                                   1.9226319  0.0821893  23.393
## heat_wave                                    -0.0532369  0.1671523  -0.318
## no2moy                                        0.0012357  0.0018644   0.663
## ns(time, df = round(2 * length(time)/153))1   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))2   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))3   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))4   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))5   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))6   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))7   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))8   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))9   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))10  0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))11  0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))12 -0.0703808  1.6084924  -0.044
## ns(time, df = round(2 * length(time)/153))13  0.0880275  0.3026169   0.291
## ns(time, df = round(2 * length(time)/153))14  0.1423609  0.1851447   0.769
## ns(time, df = round(2 * length(time)/153))15 -0.0618071  0.1561045  -0.396
## ns(time, df = round(2 * length(time)/153))16  0.0547162  0.1426182   0.384
## ns(time, df = round(2 * length(time)/153))17  0.1373622  0.1328341   1.034
## ns(time, df = round(2 * length(time)/153))18  0.0028773  0.1349293   0.021
## ns(time, df = round(2 * length(time)/153))19 -0.0635845  0.1377579  -0.462
## ns(time, df = round(2 * length(time)/153))20  0.1727768  0.1295623   1.334
## ns(time, df = round(2 * length(time)/153))21 -0.0001943  0.1221734  -0.002
## ns(time, df = round(2 * length(time)/153))22  0.0881091  0.1268153   0.695
## ns(time, df = round(2 * length(time)/153))23 -0.0217584  0.1194120  -0.182
## ns(time, df = round(2 * length(time)/153))24  0.2740305  0.1245856   2.200
## ns(time, df = round(2 * length(time)/153))25 -0.1466061  0.1219284  -1.202
## ns(time, df = round(2 * length(time)/153))26  0.1791592  0.1269295   1.411
## ns(time, df = round(2 * length(time)/153))27 -0.2458586  0.1223640  -2.009
## ns(time, df = round(2 * length(time)/153))28  0.2705559  0.1314532   2.058
## ns(time, df = round(2 * length(time)/153))29 -0.0644477  0.1474195  -0.437
## ns(time, df = round(2 * length(time)/153))30  0.4368027  0.2988683   1.462
## ns(time, df = round(2 * length(time)/153))31  0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))32  0.0000000  0.0000000      NA
## Joursjeudi                                    0.0552982  0.0395789   1.397
## Jourslundi                                    0.0899628  0.0388819   2.314
## Joursmardi                                    0.0976611  0.0392444   2.489
## Joursmercredi                                 0.0913028  0.0395432   2.309
## Jourssamedi                                   0.0234589  0.0395555   0.593
## Joursvendredi                                 0.1171899  0.0392499   2.986
## Vacances1                                    -0.0106470  0.0278878  -0.382
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                     0.75011    
## no2moy                                        0.50745    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12  0.96510    
## ns(time, df = round(2 * length(time)/153))13  0.77114    
## ns(time, df = round(2 * length(time)/153))14  0.44194    
## ns(time, df = round(2 * length(time)/153))15  0.69215    
## ns(time, df = round(2 * length(time)/153))16  0.70123    
## ns(time, df = round(2 * length(time)/153))17  0.30109    
## ns(time, df = round(2 * length(time)/153))18  0.98299    
## ns(time, df = round(2 * length(time)/153))19  0.64439    
## ns(time, df = round(2 * length(time)/153))20  0.18235    
## ns(time, df = round(2 * length(time)/153))21  0.99873    
## ns(time, df = round(2 * length(time)/153))22  0.48719    
## ns(time, df = round(2 * length(time)/153))23  0.85542    
## ns(time, df = round(2 * length(time)/153))24  0.02784 *  
## ns(time, df = round(2 * length(time)/153))25  0.22921    
## ns(time, df = round(2 * length(time)/153))26  0.15810    
## ns(time, df = round(2 * length(time)/153))27  0.04451 *  
## ns(time, df = round(2 * length(time)/153))28  0.03957 *  
## ns(time, df = round(2 * length(time)/153))29  0.66199    
## ns(time, df = round(2 * length(time)/153))30  0.14387    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                    0.16236    
## Jourslundi                                    0.02068 *  
## Joursmardi                                    0.01283 *  
## Joursmercredi                                 0.02095 *  
## Jourssamedi                                   0.55314    
## Joursvendredi                                 0.00283 ** 
## Vacances1                                     0.70262    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Rank: 29/42
## R-sq.(adj) =  0.00983   Deviance explained = 3.14%
## UBRE = 0.12371  Scale est. = 1         n = 1211
## 
## $bordeaux
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * length(time)/153)) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                                               Estimate Std. Error z value
## (Intercept)                                   2.406333   0.060046  40.075
## heat_wave                                     0.214455   0.109573   1.957
## no2moy                                        0.002257   0.001737   1.300
## ns(time, df = round(2 * length(time)/153))1   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))2   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))3   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))4   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))5   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))6   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))7   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))8   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))9   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))10  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))11  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))12 -0.355271   1.296334  -0.274
## ns(time, df = round(2 * length(time)/153))13  0.120255   0.237558   0.506
## ns(time, df = round(2 * length(time)/153))14 -0.171739   0.134904  -1.273
## ns(time, df = round(2 * length(time)/153))15 -0.011240   0.106168  -0.106
## ns(time, df = round(2 * length(time)/153))16  0.010237   0.103572   0.099
## ns(time, df = round(2 * length(time)/153))17 -0.152227   0.098259  -1.549
## ns(time, df = round(2 * length(time)/153))18 -0.044714   0.100300  -0.446
## ns(time, df = round(2 * length(time)/153))19 -0.015040   0.096022  -0.157
## ns(time, df = round(2 * length(time)/153))20  0.035776   0.098922   0.362
## ns(time, df = round(2 * length(time)/153))21 -0.029963   0.095243  -0.315
## ns(time, df = round(2 * length(time)/153))22  0.001445   0.099723   0.014
## ns(time, df = round(2 * length(time)/153))23 -0.078848   0.095474  -0.826
## ns(time, df = round(2 * length(time)/153))24 -0.074488   0.098820  -0.754
## ns(time, df = round(2 * length(time)/153))25  0.104838   0.091127   1.150
## ns(time, df = round(2 * length(time)/153))26 -0.054977   0.096850  -0.568
## ns(time, df = round(2 * length(time)/153))27  0.056275   0.090110   0.625
## ns(time, df = round(2 * length(time)/153))28 -0.037238   0.100418  -0.371
## ns(time, df = round(2 * length(time)/153))29  0.128647   0.081225   1.584
## ns(time, df = round(2 * length(time)/153))30  0.010018   0.116864   0.086
## ns(time, df = round(2 * length(time)/153))31  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))32  0.000000   0.000000      NA
## Joursjeudi                                    0.049104   0.031439   1.562
## Jourslundi                                    0.064325   0.029856   2.155
## Joursmardi                                    0.042604   0.030940   1.377
## Joursmercredi                                 0.029669   0.031525   0.941
## Jourssamedi                                   0.044057   0.030434   1.448
## Joursvendredi                                 0.045112   0.031414   1.436
## Vacances1                                    -0.013433   0.021144  -0.635
##                                              Pr(>|z|)    
## (Intercept)                                    <2e-16 ***
## heat_wave                                      0.0503 .  
## no2moy                                         0.1937    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12   0.7840    
## ns(time, df = round(2 * length(time)/153))13   0.6127    
## ns(time, df = round(2 * length(time)/153))14   0.2030    
## ns(time, df = round(2 * length(time)/153))15   0.9157    
## ns(time, df = round(2 * length(time)/153))16   0.9213    
## ns(time, df = round(2 * length(time)/153))17   0.1213    
## ns(time, df = round(2 * length(time)/153))18   0.6557    
## ns(time, df = round(2 * length(time)/153))19   0.8755    
## ns(time, df = round(2 * length(time)/153))20   0.7176    
## ns(time, df = round(2 * length(time)/153))21   0.7531    
## ns(time, df = round(2 * length(time)/153))22   0.9884    
## ns(time, df = round(2 * length(time)/153))23   0.4089    
## ns(time, df = round(2 * length(time)/153))24   0.4510    
## ns(time, df = round(2 * length(time)/153))25   0.2500    
## ns(time, df = round(2 * length(time)/153))26   0.5703    
## ns(time, df = round(2 * length(time)/153))27   0.5323    
## ns(time, df = round(2 * length(time)/153))28   0.7108    
## ns(time, df = round(2 * length(time)/153))29   0.1132    
## ns(time, df = round(2 * length(time)/153))30   0.9317    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                     0.1183    
## Jourslundi                                     0.0312 *  
## Joursmardi                                     0.1685    
## Joursmercredi                                  0.3466    
## Jourssamedi                                    0.1477    
## Joursvendredi                                  0.1510    
## Vacances1                                      0.5252    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Rank: 29/42
## R-sq.(adj) =  0.0102   Deviance explained = 2.98%
## UBRE = 0.092221  Scale est. = 1         n = 1377
## 
## $clermont
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * length(time)/153)) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                                                Estimate Std. Error z value
## (Intercept)                                   1.802e+00  1.035e-01  17.410
## heat_wave                                     3.754e-01  7.836e-02   4.791
## no2moy                                        1.006e-03  1.578e-03   0.637
## ns(time, df = round(2 * length(time)/153))1  -4.221e-03  1.252e-01  -0.034
## ns(time, df = round(2 * length(time)/153))2  -4.299e-01  1.713e-01  -2.510
## ns(time, df = round(2 * length(time)/153))3  -1.136e-01  1.424e-01  -0.797
## ns(time, df = round(2 * length(time)/153))4  -1.559e-01  1.615e-01  -0.965
## ns(time, df = round(2 * length(time)/153))5  -2.770e-01  1.462e-01  -1.895
## ns(time, df = round(2 * length(time)/153))6  -7.394e-02  1.574e-01  -0.470
## ns(time, df = round(2 * length(time)/153))7  -1.905e-02  1.448e-01  -0.132
## ns(time, df = round(2 * length(time)/153))8  -3.251e-01  1.595e-01  -2.039
## ns(time, df = round(2 * length(time)/153))9  -1.708e-01  1.481e-01  -1.153
## ns(time, df = round(2 * length(time)/153))10 -2.449e-01  1.590e-01  -1.540
## ns(time, df = round(2 * length(time)/153))11 -1.690e-01  1.485e-01  -1.138
## ns(time, df = round(2 * length(time)/153))12 -3.312e-01  1.599e-01  -2.072
## ns(time, df = round(2 * length(time)/153))13 -1.596e-01  1.483e-01  -1.076
## ns(time, df = round(2 * length(time)/153))14 -2.124e-01  1.603e-01  -1.325
## ns(time, df = round(2 * length(time)/153))15 -3.318e-01  1.492e-01  -2.224
## ns(time, df = round(2 * length(time)/153))16 -4.655e-02  1.577e-01  -0.295
## ns(time, df = round(2 * length(time)/153))17 -2.499e-01  1.465e-01  -1.707
## ns(time, df = round(2 * length(time)/153))18 -5.361e-02  1.584e-01  -0.339
## ns(time, df = round(2 * length(time)/153))19 -1.522e-01  1.448e-01  -1.051
## ns(time, df = round(2 * length(time)/153))20 -6.131e-02  1.561e-01  -0.393
## ns(time, df = round(2 * length(time)/153))21 -2.005e-01  1.454e-01  -1.379
## ns(time, df = round(2 * length(time)/153))22 -9.564e-02  1.571e-01  -0.609
## ns(time, df = round(2 * length(time)/153))23 -2.914e-01  1.467e-01  -1.986
## ns(time, df = round(2 * length(time)/153))24 -2.184e-02  1.563e-01  -0.140
## ns(time, df = round(2 * length(time)/153))25 -2.543e-01  1.462e-01  -1.739
## ns(time, df = round(2 * length(time)/153))26 -9.181e-05  1.539e-01  -0.001
## ns(time, df = round(2 * length(time)/153))27 -3.029e-01  1.467e-01  -2.064
## ns(time, df = round(2 * length(time)/153))28 -3.936e-02  1.542e-01  -0.255
## ns(time, df = round(2 * length(time)/153))29 -2.189e-01  1.452e-01  -1.508
## ns(time, df = round(2 * length(time)/153))30  6.225e-02  1.264e-01   0.493
## ns(time, df = round(2 * length(time)/153))31 -4.470e-01  2.554e-01  -1.750
## ns(time, df = round(2 * length(time)/153))32 -7.470e-02  1.153e-01  -0.648
## Joursjeudi                                   -9.711e-03  3.488e-02  -0.278
## Jourslundi                                    2.025e-02  3.321e-02   0.610
## Joursmardi                                    8.673e-03  3.422e-02   0.253
## Joursmercredi                                 1.824e-02  3.465e-02   0.526
## Jourssamedi                                  -8.247e-03  3.414e-02  -0.242
## Joursvendredi                                 1.632e-02  3.489e-02   0.468
## Vacances1                                    -1.720e-02  2.294e-02  -0.750
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                    1.66e-06 ***
## no2moy                                         0.5240    
## ns(time, df = round(2 * length(time)/153))1    0.9731    
## ns(time, df = round(2 * length(time)/153))2    0.0121 *  
## ns(time, df = round(2 * length(time)/153))3    0.4253    
## ns(time, df = round(2 * length(time)/153))4    0.3344    
## ns(time, df = round(2 * length(time)/153))5    0.0581 .  
## ns(time, df = round(2 * length(time)/153))6    0.6385    
## ns(time, df = round(2 * length(time)/153))7    0.8953    
## ns(time, df = round(2 * length(time)/153))8    0.0415 *  
## ns(time, df = round(2 * length(time)/153))9    0.2489    
## ns(time, df = round(2 * length(time)/153))10   0.1236    
## ns(time, df = round(2 * length(time)/153))11   0.2553    
## ns(time, df = round(2 * length(time)/153))12   0.0383 *  
## ns(time, df = round(2 * length(time)/153))13   0.2818    
## ns(time, df = round(2 * length(time)/153))14   0.1852    
## ns(time, df = round(2 * length(time)/153))15   0.0261 *  
## ns(time, df = round(2 * length(time)/153))16   0.7678    
## ns(time, df = round(2 * length(time)/153))17   0.0879 .  
## ns(time, df = round(2 * length(time)/153))18   0.7349    
## ns(time, df = round(2 * length(time)/153))19   0.2932    
## ns(time, df = round(2 * length(time)/153))20   0.6944    
## ns(time, df = round(2 * length(time)/153))21   0.1678    
## ns(time, df = round(2 * length(time)/153))22   0.5427    
## ns(time, df = round(2 * length(time)/153))23   0.0470 *  
## ns(time, df = round(2 * length(time)/153))24   0.8888    
## ns(time, df = round(2 * length(time)/153))25   0.0821 .  
## ns(time, df = round(2 * length(time)/153))26   0.9995    
## ns(time, df = round(2 * length(time)/153))27   0.0390 *  
## ns(time, df = round(2 * length(time)/153))28   0.7985    
## ns(time, df = round(2 * length(time)/153))29   0.1316    
## ns(time, df = round(2 * length(time)/153))30   0.6224    
## ns(time, df = round(2 * length(time)/153))31   0.0801 .  
## ns(time, df = round(2 * length(time)/153))32   0.5172    
## Joursjeudi                                     0.7807    
## Jourslundi                                     0.5420    
## Joursmardi                                     0.7999    
## Joursmercredi                                  0.5986    
## Jourssamedi                                    0.8091    
## Joursvendredi                                  0.6400    
## Vacances1                                      0.4534    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## R-sq.(adj) =  0.016   Deviance explained = 2.93%
## UBRE = 0.018023  Scale est. = 1         n = 2431
## 
## $dijon
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * length(time)/153)) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                                                Estimate Std. Error z value
## (Intercept)                                   1.2020639  0.1255473   9.575
## heat_wave                                     0.3188149  0.0789417   4.039
## no2moy                                        0.0069614  0.0020802   3.346
## ns(time, df = round(2 * length(time)/153))1   0.0172788  0.1442802   0.120
## ns(time, df = round(2 * length(time)/153))2   0.0911124  0.1961564   0.464
## ns(time, df = round(2 * length(time)/153))3  -0.1446592  0.1650666  -0.876
## ns(time, df = round(2 * length(time)/153))4   0.2717373  0.1873806   1.450
## ns(time, df = round(2 * length(time)/153))5  -0.3411138  0.1712132  -1.992
## ns(time, df = round(2 * length(time)/153))6   0.4630186  0.1827020   2.534
## ns(time, df = round(2 * length(time)/153))7  -0.0608143  0.1688945  -0.360
## ns(time, df = round(2 * length(time)/153))8  -0.1208891  0.1857430  -0.651
## ns(time, df = round(2 * length(time)/153))9  -0.0724796  0.1744139  -0.416
## ns(time, df = round(2 * length(time)/153))10  0.1790974  0.1859112   0.963
## ns(time, df = round(2 * length(time)/153))11 -0.3468612  0.1771495  -1.958
## ns(time, df = round(2 * length(time)/153))12  0.2202232  0.1838580   1.198
## ns(time, df = round(2 * length(time)/153))13 -0.1380913  0.1726901  -0.800
## ns(time, df = round(2 * length(time)/153))14  0.1718846  0.1850753   0.929
## ns(time, df = round(2 * length(time)/153))15 -0.0064035  0.1699390  -0.038
## ns(time, df = round(2 * length(time)/153))16  0.1706140  0.1830471   0.932
## ns(time, df = round(2 * length(time)/153))17  0.0318045  0.1689820   0.188
## ns(time, df = round(2 * length(time)/153))18  0.2147801  0.1855697   1.157
## ns(time, df = round(2 * length(time)/153))19 -0.0860551  0.1720303  -0.500
## ns(time, df = round(2 * length(time)/153))20  0.2069020  0.1841970   1.123
## ns(time, df = round(2 * length(time)/153))21  0.1344377  0.1691257   0.795
## ns(time, df = round(2 * length(time)/153))22  0.1270269  0.1813229   0.701
## ns(time, df = round(2 * length(time)/153))23  0.2045805  0.1647623   1.242
## ns(time, df = round(2 * length(time)/153))24  0.3118946  0.1799032   1.734
## ns(time, df = round(2 * length(time)/153))25 -0.0444794  0.1671433  -0.266
## ns(time, df = round(2 * length(time)/153))26  0.3862037  0.1786292   2.162
## ns(time, df = round(2 * length(time)/153))27  0.0049116  0.1677407   0.029
## ns(time, df = round(2 * length(time)/153))28  0.3180926  0.1778763   1.788
## ns(time, df = round(2 * length(time)/153))29  0.1399787  0.1666157   0.840
## ns(time, df = round(2 * length(time)/153))30  0.2276601  0.1429924   1.592
## ns(time, df = round(2 * length(time)/153))31  0.1947785  0.3040791   0.641
## ns(time, df = round(2 * length(time)/153))32  0.3019432  0.1222140   2.471
## Joursjeudi                                    0.0120091  0.0395842   0.303
## Jourslundi                                    0.0249575  0.0377694   0.661
## Joursmardi                                    0.0377725  0.0388586   0.972
## Joursmercredi                                 0.0250714  0.0394444   0.636
## Jourssamedi                                   0.0485215  0.0383913   1.264
## Joursvendredi                                 0.0359819  0.0397767   0.905
## Vacances1                                     0.0003654  0.0257666   0.014
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                    5.38e-05 ***
## no2moy                                       0.000819 ***
## ns(time, df = round(2 * length(time)/153))1  0.904675    
## ns(time, df = round(2 * length(time)/153))2  0.642298    
## ns(time, df = round(2 * length(time)/153))3  0.380830    
## ns(time, df = round(2 * length(time)/153))4  0.147006    
## ns(time, df = round(2 * length(time)/153))5  0.046334 *  
## ns(time, df = round(2 * length(time)/153))6  0.011268 *  
## ns(time, df = round(2 * length(time)/153))7  0.718793    
## ns(time, df = round(2 * length(time)/153))8  0.515149    
## ns(time, df = round(2 * length(time)/153))9  0.677732    
## ns(time, df = round(2 * length(time)/153))10 0.335372    
## ns(time, df = round(2 * length(time)/153))11 0.050228 .  
## ns(time, df = round(2 * length(time)/153))12 0.230999    
## ns(time, df = round(2 * length(time)/153))13 0.423915    
## ns(time, df = round(2 * length(time)/153))14 0.353030    
## ns(time, df = round(2 * length(time)/153))15 0.969942    
## ns(time, df = round(2 * length(time)/153))16 0.351297    
## ns(time, df = round(2 * length(time)/153))17 0.850710    
## ns(time, df = round(2 * length(time)/153))18 0.247105    
## ns(time, df = round(2 * length(time)/153))19 0.616911    
## ns(time, df = round(2 * length(time)/153))20 0.261325    
## ns(time, df = round(2 * length(time)/153))21 0.426673    
## ns(time, df = round(2 * length(time)/153))22 0.483580    
## ns(time, df = round(2 * length(time)/153))23 0.214358    
## ns(time, df = round(2 * length(time)/153))24 0.082975 .  
## ns(time, df = round(2 * length(time)/153))25 0.790150    
## ns(time, df = round(2 * length(time)/153))26 0.030615 *  
## ns(time, df = round(2 * length(time)/153))27 0.976641    
## ns(time, df = round(2 * length(time)/153))28 0.073731 .  
## ns(time, df = round(2 * length(time)/153))29 0.400836    
## ns(time, df = round(2 * length(time)/153))30 0.111359    
## ns(time, df = round(2 * length(time)/153))31 0.521814    
## ns(time, df = round(2 * length(time)/153))32 0.013488 *  
## Joursjeudi                                   0.761600    
## Jourslundi                                   0.508749    
## Joursmardi                                   0.331027    
## Joursmercredi                                0.525028    
## Jourssamedi                                  0.206277    
## Joursvendredi                                0.365679    
## Vacances1                                    0.988686    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## R-sq.(adj) =  0.031   Deviance explained = 4.29%
## UBRE = 0.011835  Scale est. = 1         n = 2417
## 
## $grenoble
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * length(time)/153)) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                                               Estimate Std. Error z value
## (Intercept)                                   2.056765   0.075448  27.261
## heat_wave                                     0.114980   0.092664   1.241
## no2moy                                        0.008719   0.002585   3.373
## ns(time, df = round(2 * length(time)/153))1   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))2   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))3   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))4   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))5   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))6   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))7   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))8   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))9   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))10  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))11  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))12 -0.847711   1.781648  -0.476
## ns(time, df = round(2 * length(time)/153))13 -0.373198   0.317203  -1.177
## ns(time, df = round(2 * length(time)/153))14 -0.241921   0.173950  -1.391
## ns(time, df = round(2 * length(time)/153))15 -0.321894   0.135164  -2.382
## ns(time, df = round(2 * length(time)/153))16 -0.114496   0.129658  -0.883
## ns(time, df = round(2 * length(time)/153))17 -0.186402   0.119784  -1.556
## ns(time, df = round(2 * length(time)/153))18 -0.150188   0.125399  -1.198
## ns(time, df = round(2 * length(time)/153))19 -0.288523   0.119669  -2.411
## ns(time, df = round(2 * length(time)/153))20 -0.095634   0.122265  -0.782
## ns(time, df = round(2 * length(time)/153))21 -0.185639   0.115776  -1.603
## ns(time, df = round(2 * length(time)/153))22 -0.071266   0.122342  -0.583
## ns(time, df = round(2 * length(time)/153))23 -0.233828   0.116005  -2.016
## ns(time, df = round(2 * length(time)/153))24 -0.070739   0.119855  -0.590
## ns(time, df = round(2 * length(time)/153))25 -0.143490   0.112180  -1.279
## ns(time, df = round(2 * length(time)/153))26  0.035204   0.119061   0.296
## ns(time, df = round(2 * length(time)/153))27 -0.072588   0.107899  -0.673
## ns(time, df = round(2 * length(time)/153))28 -0.092633   0.121559  -0.762
## ns(time, df = round(2 * length(time)/153))29 -0.164095   0.100746  -1.629
## ns(time, df = round(2 * length(time)/153))30  0.074303   0.141862   0.524
## ns(time, df = round(2 * length(time)/153))31  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))32  0.000000   0.000000      NA
## Joursjeudi                                   -0.041093   0.039522  -1.040
## Jourslundi                                   -0.029132   0.037547  -0.776
## Joursmardi                                   -0.071709   0.039735  -1.805
## Joursmercredi                                -0.051252   0.039783  -1.288
## Jourssamedi                                   0.009798   0.037745   0.260
## Joursvendredi                                -0.047649   0.039708  -1.200
## Vacances1                                    -0.044894   0.026709  -1.681
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                    0.214673    
## no2moy                                       0.000744 ***
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12 0.634216    
## ns(time, df = round(2 * length(time)/153))13 0.239384    
## ns(time, df = round(2 * length(time)/153))14 0.164302    
## ns(time, df = round(2 * length(time)/153))15 0.017242 *  
## ns(time, df = round(2 * length(time)/153))16 0.377201    
## ns(time, df = round(2 * length(time)/153))17 0.119674    
## ns(time, df = round(2 * length(time)/153))18 0.231041    
## ns(time, df = round(2 * length(time)/153))19 0.015909 *  
## ns(time, df = round(2 * length(time)/153))20 0.434105    
## ns(time, df = round(2 * length(time)/153))21 0.108840    
## ns(time, df = round(2 * length(time)/153))22 0.560221    
## ns(time, df = round(2 * length(time)/153))23 0.043835 *  
## ns(time, df = round(2 * length(time)/153))24 0.555051    
## ns(time, df = round(2 * length(time)/153))25 0.200862    
## ns(time, df = round(2 * length(time)/153))26 0.767472    
## ns(time, df = round(2 * length(time)/153))27 0.501114    
## ns(time, df = round(2 * length(time)/153))28 0.446037    
## ns(time, df = round(2 * length(time)/153))29 0.103355    
## ns(time, df = round(2 * length(time)/153))30 0.600438    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                   0.298466    
## Jourslundi                                   0.437824    
## Joursmardi                                   0.071124 .  
## Joursmercredi                                0.197645    
## Jourssamedi                                  0.795174    
## Joursvendredi                                0.230147    
## Vacances1                                    0.092797 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Rank: 29/42
## R-sq.(adj) =  0.0407   Deviance explained = 5.82%
## UBRE = 0.069151  Scale est. = 1         n = 1377
## 
## $lehavre
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * length(time)/153)) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                                               Estimate Std. Error z value
## (Intercept)                                   1.689863   0.086531  19.529
## heat_wave                                     0.188521   0.152470   1.236
## no2moy                                        0.002378   0.001645   1.446
## ns(time, df = round(2 * length(time)/153))1   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))2   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))3   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))4   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))5   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))6   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))7   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))8   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))9   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))10  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))11  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))12  1.081215   2.025433   0.534
## ns(time, df = round(2 * length(time)/153))13 -0.481348   0.361768  -1.331
## ns(time, df = round(2 * length(time)/153))14  0.193238   0.199015   0.971
## ns(time, df = round(2 * length(time)/153))15 -0.185487   0.159780  -1.161
## ns(time, df = round(2 * length(time)/153))16  0.010392   0.151859   0.068
## ns(time, df = round(2 * length(time)/153))17 -0.012538   0.146274  -0.086
## ns(time, df = round(2 * length(time)/153))18 -0.032894   0.148837  -0.221
## ns(time, df = round(2 * length(time)/153))19 -0.037785   0.141318  -0.267
## ns(time, df = round(2 * length(time)/153))20  0.016982   0.144286   0.118
## ns(time, df = round(2 * length(time)/153))21 -0.023956   0.139255  -0.172
## ns(time, df = round(2 * length(time)/153))22  0.039813   0.144088   0.276
## ns(time, df = round(2 * length(time)/153))23 -0.058861   0.139279  -0.423
## ns(time, df = round(2 * length(time)/153))24 -0.013532   0.145109  -0.093
## ns(time, df = round(2 * length(time)/153))25 -0.101316   0.147799  -0.685
## ns(time, df = round(2 * length(time)/153))26  0.030102   0.145998   0.206
## ns(time, df = round(2 * length(time)/153))27 -0.004336   0.134260  -0.032
## ns(time, df = round(2 * length(time)/153))28 -0.075751   0.147616  -0.513
## ns(time, df = round(2 * length(time)/153))29  0.143777   0.119021   1.208
## ns(time, df = round(2 * length(time)/153))30  0.017265   0.169846   0.102
## ns(time, df = round(2 * length(time)/153))31  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))32  0.000000   0.000000      NA
## Joursjeudi                                   -0.029075   0.044270  -0.657
## Jourslundi                                   -0.043060   0.044069  -0.977
## Joursmardi                                    0.026681   0.043600   0.612
## Joursmercredi                                -0.025979   0.044304  -0.586
## Jourssamedi                                  -0.069627   0.044622  -1.560
## Joursvendredi                                -0.031317   0.044343  -0.706
## Vacances1                                    -0.030141   0.031395  -0.960
##                                              Pr(>|z|)    
## (Intercept)                                    <2e-16 ***
## heat_wave                                       0.216    
## no2moy                                          0.148    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12    0.593    
## ns(time, df = round(2 * length(time)/153))13    0.183    
## ns(time, df = round(2 * length(time)/153))14    0.332    
## ns(time, df = round(2 * length(time)/153))15    0.246    
## ns(time, df = round(2 * length(time)/153))16    0.945    
## ns(time, df = round(2 * length(time)/153))17    0.932    
## ns(time, df = round(2 * length(time)/153))18    0.825    
## ns(time, df = round(2 * length(time)/153))19    0.789    
## ns(time, df = round(2 * length(time)/153))20    0.906    
## ns(time, df = round(2 * length(time)/153))21    0.863    
## ns(time, df = round(2 * length(time)/153))22    0.782    
## ns(time, df = round(2 * length(time)/153))23    0.673    
## ns(time, df = round(2 * length(time)/153))24    0.926    
## ns(time, df = round(2 * length(time)/153))25    0.493    
## ns(time, df = round(2 * length(time)/153))26    0.837    
## ns(time, df = round(2 * length(time)/153))27    0.974    
## ns(time, df = round(2 * length(time)/153))28    0.608    
## ns(time, df = round(2 * length(time)/153))29    0.227    
## ns(time, df = round(2 * length(time)/153))30    0.919    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                      0.511    
## Jourslundi                                      0.329    
## Joursmardi                                      0.541    
## Joursmercredi                                   0.558    
## Jourssamedi                                     0.119    
## Joursvendredi                                   0.480    
## Vacances1                                       0.337    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Rank: 29/42
## R-sq.(adj) =  -0.00464   Deviance explained = 1.55%
## UBRE = 0.072209  Scale est. = 1         n = 1351
## 
## $lille
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * length(time)/153)) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                                                Estimate Std. Error z value
## (Intercept)                                   2.9301643  0.0461883  63.440
## heat_wave                                     0.0568800  0.0566277   1.004
## no2moy                                        0.0030755  0.0010057   3.058
## ns(time, df = round(2 * length(time)/153))1   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))2   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))3   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))4   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))5   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))6  -0.4173841  1.0011442  -0.417
## ns(time, df = round(2 * length(time)/153))7   0.0522596  0.1826347   0.286
## ns(time, df = round(2 * length(time)/153))8  -0.0895261  0.1012971  -0.884
## ns(time, df = round(2 * length(time)/153))9  -0.0023044  0.0809648  -0.028
## ns(time, df = round(2 * length(time)/153))10 -0.0347031  0.0773453  -0.449
## ns(time, df = round(2 * length(time)/153))11 -0.0239223  0.0751314  -0.318
## ns(time, df = round(2 * length(time)/153))12 -0.0135597  0.0766903  -0.177
## ns(time, df = round(2 * length(time)/153))13  0.0129686  0.0732767   0.177
## ns(time, df = round(2 * length(time)/153))14 -0.0939691  0.0753948  -1.246
## ns(time, df = round(2 * length(time)/153))15 -0.0243957  0.0744723  -0.328
## ns(time, df = round(2 * length(time)/153))16 -0.0837097  0.0757357  -1.105
## ns(time, df = round(2 * length(time)/153))17 -0.0353626  0.0737123  -0.480
## ns(time, df = round(2 * length(time)/153))18 -0.0300079  0.0754776  -0.398
## ns(time, df = round(2 * length(time)/153))19 -0.0921934  0.0735197  -1.254
## ns(time, df = round(2 * length(time)/153))20  0.0686105  0.0746496   0.919
## ns(time, df = round(2 * length(time)/153))21 -0.1028769  0.0728181  -1.413
## ns(time, df = round(2 * length(time)/153))22  0.0090584  0.0746651   0.121
## ns(time, df = round(2 * length(time)/153))23 -0.1052407  0.0725068  -1.451
## ns(time, df = round(2 * length(time)/153))24  0.0014422  0.0748668   0.019
## ns(time, df = round(2 * length(time)/153))25 -0.0449458  0.0715982  -0.628
## ns(time, df = round(2 * length(time)/153))26  0.0504185  0.0742851   0.679
## ns(time, df = round(2 * length(time)/153))27 -0.1461649  0.0703003  -2.079
## ns(time, df = round(2 * length(time)/153))28  0.0980994  0.0771729   1.271
## ns(time, df = round(2 * length(time)/153))29 -0.0809418  0.0636213  -1.272
## ns(time, df = round(2 * length(time)/153))30  0.0562432  0.0902751   0.623
## ns(time, df = round(2 * length(time)/153))31  0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))32  0.0000000  0.0000000      NA
## Joursjeudi                                   -0.0005368  0.0210316  -0.026
## Jourslundi                                    0.0471171  0.0198702   2.371
## Joursmardi                                    0.0228186  0.0204975   1.113
## Joursmercredi                                -0.0007559  0.0209003  -0.036
## Jourssamedi                                  -0.0291911  0.0205450  -1.421
## Joursvendredi                                -0.0070078  0.0211021  -0.332
## Vacances1                                    -0.0162439  0.0142787  -1.138
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                     0.31516    
## no2moy                                        0.00223 ** 
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6   0.67675    
## ns(time, df = round(2 * length(time)/153))7   0.77477    
## ns(time, df = round(2 * length(time)/153))8   0.37681    
## ns(time, df = round(2 * length(time)/153))9   0.97729    
## ns(time, df = round(2 * length(time)/153))10  0.65366    
## ns(time, df = round(2 * length(time)/153))11  0.75018    
## ns(time, df = round(2 * length(time)/153))12  0.85966    
## ns(time, df = round(2 * length(time)/153))13  0.85952    
## ns(time, df = round(2 * length(time)/153))14  0.21263    
## ns(time, df = round(2 * length(time)/153))15  0.74323    
## ns(time, df = round(2 * length(time)/153))16  0.26904    
## ns(time, df = round(2 * length(time)/153))17  0.63141    
## ns(time, df = round(2 * length(time)/153))18  0.69094    
## ns(time, df = round(2 * length(time)/153))19  0.20984    
## ns(time, df = round(2 * length(time)/153))20  0.35804    
## ns(time, df = round(2 * length(time)/153))21  0.15772    
## ns(time, df = round(2 * length(time)/153))22  0.90344    
## ns(time, df = round(2 * length(time)/153))23  0.14665    
## ns(time, df = round(2 * length(time)/153))24  0.98463    
## ns(time, df = round(2 * length(time)/153))25  0.53017    
## ns(time, df = round(2 * length(time)/153))26  0.49732    
## ns(time, df = round(2 * length(time)/153))27  0.03760 *  
## ns(time, df = round(2 * length(time)/153))28  0.20367    
## ns(time, df = round(2 * length(time)/153))29  0.20329    
## ns(time, df = round(2 * length(time)/153))30  0.53327    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                    0.97964    
## Jourslundi                                    0.01773 *  
## Joursmardi                                    0.26561    
## Joursmercredi                                 0.97115    
## Jourssamedi                                   0.15536    
## Joursvendredi                                 0.73982    
## Vacances1                                     0.25527    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Rank: 35/42
## R-sq.(adj) =  0.00836   Deviance explained = 2.64%
## UBRE = 0.059941  Scale est. = 1         n = 1834
## 
## $lyon
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * length(time)/153)) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                                                Estimate Std. Error z value
## (Intercept)                                   2.9125595  0.0473853  61.465
## heat_wave                                     0.1563655  0.0739074   2.116
## no2moy                                        0.0013012  0.0009089   1.432
## ns(time, df = round(2 * length(time)/153))1   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))2   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))3   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))4   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))5   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))6   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))7   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))8   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))9   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))10  0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))11  0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))12 -0.7298697  1.1247438  -0.649
## ns(time, df = round(2 * length(time)/153))13 -0.2277132  0.2019194  -1.128
## ns(time, df = round(2 * length(time)/153))14 -0.1367086  0.1109097  -1.233
## ns(time, df = round(2 * length(time)/153))15 -0.1799387  0.0870755  -2.066
## ns(time, df = round(2 * length(time)/153))16 -0.0237138  0.0824077  -0.288
## ns(time, df = round(2 * length(time)/153))17 -0.2322444  0.0792241  -2.931
## ns(time, df = round(2 * length(time)/153))18 -0.0972782  0.0807360  -1.205
## ns(time, df = round(2 * length(time)/153))19 -0.1711809  0.0779121  -2.197
## ns(time, df = round(2 * length(time)/153))20 -0.0598599  0.0790243  -0.757
## ns(time, df = round(2 * length(time)/153))21 -0.1250276  0.0767600  -1.629
## ns(time, df = round(2 * length(time)/153))22 -0.1781182  0.0798667  -2.230
## ns(time, df = round(2 * length(time)/153))23 -0.0527890  0.0769501  -0.686
## ns(time, df = round(2 * length(time)/153))24 -0.1190518  0.0790032  -1.507
## ns(time, df = round(2 * length(time)/153))25 -0.1286481  0.0757797  -1.698
## ns(time, df = round(2 * length(time)/153))26 -0.1928600  0.0796651  -2.421
## ns(time, df = round(2 * length(time)/153))27 -0.1322194  0.0741284  -1.784
## ns(time, df = round(2 * length(time)/153))28 -0.1853229  0.0816273  -2.270
## ns(time, df = round(2 * length(time)/153))29 -0.0589414  0.0677450  -0.870
## ns(time, df = round(2 * length(time)/153))30 -0.1172928  0.0948979  -1.236
## ns(time, df = round(2 * length(time)/153))31  0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))32  0.0000000  0.0000000      NA
## Joursjeudi                                    0.0312913  0.0259773   1.205
## Jourslundi                                    0.0200727  0.0247807   0.810
## Joursmardi                                    0.0393040  0.0253448   1.551
## Joursmercredi                                 0.0095416  0.0258789   0.369
## Jourssamedi                                  -0.0200380  0.0253538  -0.790
## Joursvendredi                                 0.0722111  0.0256371   2.817
## Vacances1                                    -0.0215830  0.0175241  -1.232
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                     0.03437 *  
## no2moy                                        0.15225    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12  0.51639    
## ns(time, df = round(2 * length(time)/153))13  0.25943    
## ns(time, df = round(2 * length(time)/153))14  0.21772    
## ns(time, df = round(2 * length(time)/153))15  0.03878 *  
## ns(time, df = round(2 * length(time)/153))16  0.77353    
## ns(time, df = round(2 * length(time)/153))17  0.00337 ** 
## ns(time, df = round(2 * length(time)/153))18  0.22824    
## ns(time, df = round(2 * length(time)/153))19  0.02801 *  
## ns(time, df = round(2 * length(time)/153))20  0.44876    
## ns(time, df = round(2 * length(time)/153))21  0.10335    
## ns(time, df = round(2 * length(time)/153))22  0.02573 *  
## ns(time, df = round(2 * length(time)/153))23  0.49270    
## ns(time, df = round(2 * length(time)/153))24  0.13183    
## ns(time, df = round(2 * length(time)/153))25  0.08957 .  
## ns(time, df = round(2 * length(time)/153))26  0.01548 *  
## ns(time, df = round(2 * length(time)/153))27  0.07448 .  
## ns(time, df = round(2 * length(time)/153))28  0.02319 *  
## ns(time, df = round(2 * length(time)/153))29  0.38427    
## ns(time, df = round(2 * length(time)/153))30  0.21646    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                    0.22837    
## Jourslundi                                    0.41793    
## Joursmardi                                    0.12096    
## Joursmercredi                                 0.71235    
## Jourssamedi                                   0.42933    
## Joursvendredi                                 0.00485 ** 
## Vacances1                                     0.21809    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Rank: 29/42
## R-sq.(adj) =  0.027   Deviance explained = 4.62%
## UBRE = 0.077458  Scale est. = 1         n = 1377
## 
## $marseille
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * length(time)/153)) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                                                Estimate Std. Error z value
## (Intercept)                                   2.9438244  0.0463758  63.478
## heat_wave                                    -0.0061396  0.0692970  -0.089
## no2moy                                        0.0010167  0.0005496   1.850
## ns(time, df = round(2 * length(time)/153))1   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))2   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))3   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))4   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))5   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))6   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))7   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))8   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))9   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))10  0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))11  0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))12  1.1729170  1.0095439   1.162
## ns(time, df = round(2 * length(time)/153))13 -0.2493245  0.1854388  -1.345
## ns(time, df = round(2 * length(time)/153))14  0.1044123  0.1018025   1.026
## ns(time, df = round(2 * length(time)/153))15 -0.0477790  0.0806113  -0.593
## ns(time, df = round(2 * length(time)/153))16  0.0739550  0.0765966   0.966
## ns(time, df = round(2 * length(time)/153))17  0.0116577  0.0726962   0.160
## ns(time, df = round(2 * length(time)/153))18  0.0420978  0.0744723   0.565
## ns(time, df = round(2 * length(time)/153))19 -0.0000861  0.0727438  -0.001
## ns(time, df = round(2 * length(time)/153))20  0.0085915  0.0757071   0.113
## ns(time, df = round(2 * length(time)/153))21 -0.0414456  0.0731189  -0.567
## ns(time, df = round(2 * length(time)/153))22 -0.0178394  0.0748848  -0.238
## ns(time, df = round(2 * length(time)/153))23 -0.0166517  0.0715315  -0.233
## ns(time, df = round(2 * length(time)/153))24  0.0716058  0.0732643   0.977
## ns(time, df = round(2 * length(time)/153))25 -0.0105791  0.0709071  -0.149
## ns(time, df = round(2 * length(time)/153))26  0.0812486  0.0736330   1.103
## ns(time, df = round(2 * length(time)/153))27 -0.0568571  0.0695597  -0.817
## ns(time, df = round(2 * length(time)/153))28  0.0203177  0.0765947   0.265
## ns(time, df = round(2 * length(time)/153))29 -0.1028092  0.0635562  -1.618
## ns(time, df = round(2 * length(time)/153))30  0.1350026  0.0892668   1.512
## ns(time, df = round(2 * length(time)/153))31  0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))32  0.0000000  0.0000000      NA
## Joursjeudi                                    0.0348800  0.0230216   1.515
## Jourslundi                                    0.0106272  0.0228441   0.465
## Joursmardi                                    0.0178174  0.0229298   0.777
## Joursmercredi                                 0.0505939  0.0228933   2.210
## Jourssamedi                                   0.0236652  0.0228738   1.035
## Joursvendredi                                 0.0374145  0.0229958   1.627
## Vacances1                                    -0.0334064  0.0162029  -2.062
##                                              Pr(>|z|)    
## (Intercept)                                    <2e-16 ***
## heat_wave                                      0.9294    
## no2moy                                         0.0643 .  
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12   0.2453    
## ns(time, df = round(2 * length(time)/153))13   0.1788    
## ns(time, df = round(2 * length(time)/153))14   0.3051    
## ns(time, df = round(2 * length(time)/153))15   0.5534    
## ns(time, df = round(2 * length(time)/153))16   0.3343    
## ns(time, df = round(2 * length(time)/153))17   0.8726    
## ns(time, df = round(2 * length(time)/153))18   0.5719    
## ns(time, df = round(2 * length(time)/153))19   0.9991    
## ns(time, df = round(2 * length(time)/153))20   0.9096    
## ns(time, df = round(2 * length(time)/153))21   0.5708    
## ns(time, df = round(2 * length(time)/153))22   0.8117    
## ns(time, df = round(2 * length(time)/153))23   0.8159    
## ns(time, df = round(2 * length(time)/153))24   0.3284    
## ns(time, df = round(2 * length(time)/153))25   0.8814    
## ns(time, df = round(2 * length(time)/153))26   0.2698    
## ns(time, df = round(2 * length(time)/153))27   0.4137    
## ns(time, df = round(2 * length(time)/153))28   0.7908    
## ns(time, df = round(2 * length(time)/153))29   0.1057    
## ns(time, df = round(2 * length(time)/153))30   0.1304    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                     0.1297    
## Jourslundi                                     0.6418    
## Joursmardi                                     0.4371    
## Joursmercredi                                  0.0271 *  
## Jourssamedi                                    0.3009    
## Joursvendredi                                  0.1037    
## Vacances1                                      0.0392 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Rank: 29/42
## R-sq.(adj) =  0.00611   Deviance explained = 2.66%
## UBRE = 0.038438  Scale est. = 1         n = 1370
## 
## $montpellier
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * length(time)/153)) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                                               Estimate Std. Error z value
## (Intercept)                                   1.867209   0.080556  23.179
## heat_wave                                     0.094337   0.125066   0.754
## no2moy                                        0.002230   0.001518   1.469
## ns(time, df = round(2 * length(time)/153))1   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))2   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))3   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))4   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))5   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))6   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))7   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))8   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))9   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))10  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))11  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))12  1.703083   1.851482   0.920
## ns(time, df = round(2 * length(time)/153))13 -0.490328   0.342765  -1.431
## ns(time, df = round(2 * length(time)/153))14 -0.140765   0.189340  -0.743
## ns(time, df = round(2 * length(time)/153))15 -0.284779   0.152544  -1.867
## ns(time, df = round(2 * length(time)/153))16 -0.163013   0.142297  -1.146
## ns(time, df = round(2 * length(time)/153))17 -0.113334   0.135098  -0.839
## ns(time, df = round(2 * length(time)/153))18 -0.146302   0.135702  -1.078
## ns(time, df = round(2 * length(time)/153))19 -0.128420   0.132372  -0.970
## ns(time, df = round(2 * length(time)/153))20 -0.175653   0.134572  -1.305
## ns(time, df = round(2 * length(time)/153))21 -0.006325   0.128852  -0.049
## ns(time, df = round(2 * length(time)/153))22 -0.232699   0.137708  -1.690
## ns(time, df = round(2 * length(time)/153))23 -0.143804   0.131709  -1.092
## ns(time, df = round(2 * length(time)/153))24 -0.106862   0.134346  -0.795
## ns(time, df = round(2 * length(time)/153))25 -0.087953   0.128022  -0.687
## ns(time, df = round(2 * length(time)/153))26 -0.253850   0.134703  -1.885
## ns(time, df = round(2 * length(time)/153))27 -0.064197   0.124108  -0.517
## ns(time, df = round(2 * length(time)/153))28 -0.142462   0.136128  -1.047
## ns(time, df = round(2 * length(time)/153))29  0.030188   0.111554   0.271
## ns(time, df = round(2 * length(time)/153))30  0.041435   0.158406   0.262
## ns(time, df = round(2 * length(time)/153))31  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))32  0.000000   0.000000      NA
## Joursjeudi                                    0.001458   0.042230   0.035
## Jourslundi                                   -0.045309   0.041759  -1.085
## Joursmardi                                   -0.009648   0.041863  -0.230
## Joursmercredi                                -0.007036   0.042235  -0.167
## Jourssamedi                                  -0.076159   0.042457  -1.794
## Joursvendredi                                 0.029509   0.041887   0.704
## Vacances1                                     0.004159   0.029590   0.141
##                                              Pr(>|z|)    
## (Intercept)                                    <2e-16 ***
## heat_wave                                      0.4507    
## no2moy                                         0.1419    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12   0.3577    
## ns(time, df = round(2 * length(time)/153))13   0.1526    
## ns(time, df = round(2 * length(time)/153))14   0.4572    
## ns(time, df = round(2 * length(time)/153))15   0.0619 .  
## ns(time, df = round(2 * length(time)/153))16   0.2520    
## ns(time, df = round(2 * length(time)/153))17   0.4015    
## ns(time, df = round(2 * length(time)/153))18   0.2810    
## ns(time, df = round(2 * length(time)/153))19   0.3320    
## ns(time, df = round(2 * length(time)/153))20   0.1918    
## ns(time, df = round(2 * length(time)/153))21   0.9608    
## ns(time, df = round(2 * length(time)/153))22   0.0911 .  
## ns(time, df = round(2 * length(time)/153))23   0.2749    
## ns(time, df = round(2 * length(time)/153))24   0.4264    
## ns(time, df = round(2 * length(time)/153))25   0.4921    
## ns(time, df = round(2 * length(time)/153))26   0.0595 .  
## ns(time, df = round(2 * length(time)/153))27   0.6050    
## ns(time, df = round(2 * length(time)/153))28   0.2953    
## ns(time, df = round(2 * length(time)/153))29   0.7867    
## ns(time, df = round(2 * length(time)/153))30   0.7936    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                     0.9725    
## Jourslundi                                     0.2779    
## Joursmardi                                     0.8177    
## Joursmercredi                                  0.8677    
## Jourssamedi                                    0.0728 .  
## Joursvendredi                                  0.4811    
## Vacances1                                      0.8882    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Rank: 29/42
## R-sq.(adj) =  0.0194   Deviance explained = 3.78%
## UBRE = 0.029158  Scale est. = 1         n = 1374
## 
## $nancy
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * length(time)/153)) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                                               Estimate Std. Error z value
## (Intercept)                                   1.834708   0.083264  22.035
## heat_wave                                     0.098727   0.106288   0.929
## no2moy                                        0.001206   0.001922   0.628
## ns(time, df = round(2 * length(time)/153))1   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))2   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))3   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))4   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))5   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))6   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))7   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))8   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))9   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))10  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))11  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))12 -2.809303   1.848438  -1.520
## ns(time, df = round(2 * length(time)/153))13  0.322093   0.326819   0.986
## ns(time, df = round(2 * length(time)/153))14 -0.193081   0.183362  -1.053
## ns(time, df = round(2 * length(time)/153))15 -0.008448   0.146195  -0.058
## ns(time, df = round(2 * length(time)/153))16 -0.137363   0.140392  -0.978
## ns(time, df = round(2 * length(time)/153))17 -0.097259   0.133486  -0.729
## ns(time, df = round(2 * length(time)/153))18  0.002130   0.135340   0.016
## ns(time, df = round(2 * length(time)/153))19 -0.188359   0.131637  -1.431
## ns(time, df = round(2 * length(time)/153))20  0.238769   0.128679   1.856
## ns(time, df = round(2 * length(time)/153))21 -0.099640   0.126438  -0.788
## ns(time, df = round(2 * length(time)/153))22  0.097217   0.130992   0.742
## ns(time, df = round(2 * length(time)/153))23 -0.081745   0.127119  -0.643
## ns(time, df = round(2 * length(time)/153))24  0.040640   0.129536   0.314
## ns(time, df = round(2 * length(time)/153))25 -0.012969   0.124106  -0.105
## ns(time, df = round(2 * length(time)/153))26  0.040635   0.129386   0.314
## ns(time, df = round(2 * length(time)/153))27  0.075839   0.120105   0.631
## ns(time, df = round(2 * length(time)/153))28 -0.082754   0.134255  -0.616
## ns(time, df = round(2 * length(time)/153))29  0.019538   0.110541   0.177
## ns(time, df = round(2 * length(time)/153))30  0.206773   0.156194   1.324
## ns(time, df = round(2 * length(time)/153))31  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))32  0.000000   0.000000      NA
## Joursjeudi                                    0.007604   0.041888   0.182
## Jourslundi                                    0.052132   0.039783   1.310
## Joursmardi                                    0.008518   0.041168   0.207
## Joursmercredi                                 0.028408   0.041490   0.685
## Jourssamedi                                  -0.044056   0.041516  -1.061
## Joursvendredi                                 0.037797   0.041781   0.905
## Vacances1                                    -0.028393   0.028427  -0.999
##                                              Pr(>|z|)    
## (Intercept)                                    <2e-16 ***
## heat_wave                                      0.3530    
## no2moy                                         0.5303    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12   0.1286    
## ns(time, df = round(2 * length(time)/153))13   0.3244    
## ns(time, df = round(2 * length(time)/153))14   0.2923    
## ns(time, df = round(2 * length(time)/153))15   0.9539    
## ns(time, df = round(2 * length(time)/153))16   0.3279    
## ns(time, df = round(2 * length(time)/153))17   0.4662    
## ns(time, df = round(2 * length(time)/153))18   0.9874    
## ns(time, df = round(2 * length(time)/153))19   0.1525    
## ns(time, df = round(2 * length(time)/153))20   0.0635 .  
## ns(time, df = round(2 * length(time)/153))21   0.4307    
## ns(time, df = round(2 * length(time)/153))22   0.4580    
## ns(time, df = round(2 * length(time)/153))23   0.5202    
## ns(time, df = round(2 * length(time)/153))24   0.7537    
## ns(time, df = round(2 * length(time)/153))25   0.9168    
## ns(time, df = round(2 * length(time)/153))26   0.7535    
## ns(time, df = round(2 * length(time)/153))27   0.5278    
## ns(time, df = round(2 * length(time)/153))28   0.5376    
## ns(time, df = round(2 * length(time)/153))29   0.8597    
## ns(time, df = round(2 * length(time)/153))30   0.1856    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                     0.8560    
## Jourslundi                                     0.1900    
## Joursmardi                                     0.8361    
## Joursmercredi                                  0.4935    
## Jourssamedi                                    0.2886    
## Joursvendredi                                  0.3657    
## Vacances1                                      0.3179    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Rank: 29/42
## R-sq.(adj) =  0.0124   Deviance explained = 3.15%
## UBRE = 0.054509  Scale est. = 1         n = 1375
## 
## $nantes
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * length(time)/153)) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                                                Estimate Std. Error z value
## (Intercept)                                   2.313e+00  6.365e-02  36.341
## heat_wave                                     1.451e-03  1.894e-01   0.008
## no2moy                                        7.072e-04  2.361e-03   0.300
## ns(time, df = round(2 * length(time)/153))1   0.000e+00  0.000e+00      NA
## ns(time, df = round(2 * length(time)/153))2   0.000e+00  0.000e+00      NA
## ns(time, df = round(2 * length(time)/153))3   0.000e+00  0.000e+00      NA
## ns(time, df = round(2 * length(time)/153))4   0.000e+00  0.000e+00      NA
## ns(time, df = round(2 * length(time)/153))5   0.000e+00  0.000e+00      NA
## ns(time, df = round(2 * length(time)/153))6   0.000e+00  0.000e+00      NA
## ns(time, df = round(2 * length(time)/153))7   0.000e+00  0.000e+00      NA
## ns(time, df = round(2 * length(time)/153))8   0.000e+00  0.000e+00      NA
## ns(time, df = round(2 * length(time)/153))9   0.000e+00  0.000e+00      NA
## ns(time, df = round(2 * length(time)/153))10  0.000e+00  0.000e+00      NA
## ns(time, df = round(2 * length(time)/153))11  0.000e+00  0.000e+00      NA
## ns(time, df = round(2 * length(time)/153))12 -1.688e+00  1.418e+00  -1.191
## ns(time, df = round(2 * length(time)/153))13  2.804e-01  2.597e-01   1.080
## ns(time, df = round(2 * length(time)/153))14 -2.140e-01  1.470e-01  -1.456
## ns(time, df = round(2 * length(time)/153))15  2.829e-02  1.211e-01   0.234
## ns(time, df = round(2 * length(time)/153))16 -2.121e-01  1.126e-01  -1.883
## ns(time, df = round(2 * length(time)/153))17  1.397e-02  1.081e-01   0.129
## ns(time, df = round(2 * length(time)/153))18 -1.450e-01  1.142e-01  -1.270
## ns(time, df = round(2 * length(time)/153))19 -4.267e-02  1.073e-01  -0.398
## ns(time, df = round(2 * length(time)/153))20 -9.187e-06  1.085e-01   0.000
## ns(time, df = round(2 * length(time)/153))21 -1.114e-01  1.060e-01  -1.051
## ns(time, df = round(2 * length(time)/153))22 -8.017e-02  1.154e-01  -0.695
## ns(time, df = round(2 * length(time)/153))23  9.803e-03  1.050e-01   0.093
## ns(time, df = round(2 * length(time)/153))24 -8.299e-02  1.077e-01  -0.771
## ns(time, df = round(2 * length(time)/153))25 -7.010e-03  1.013e-01  -0.069
## ns(time, df = round(2 * length(time)/153))26 -3.424e-02  1.128e-01  -0.304
## ns(time, df = round(2 * length(time)/153))27 -2.956e-02  9.890e-02  -0.299
## ns(time, df = round(2 * length(time)/153))28  1.994e-02  1.096e-01   0.182
## ns(time, df = round(2 * length(time)/153))29 -1.462e-01  9.055e-02  -1.614
## ns(time, df = round(2 * length(time)/153))30  1.210e-01  1.272e-01   0.951
## ns(time, df = round(2 * length(time)/153))31  0.000e+00  0.000e+00      NA
## ns(time, df = round(2 * length(time)/153))32  0.000e+00  0.000e+00      NA
## Joursjeudi                                    4.213e-02  3.431e-02   1.228
## Jourslundi                                    4.235e-02  3.366e-02   1.258
## Joursmardi                                    6.232e-02  3.412e-02   1.826
## Joursmercredi                                 2.132e-02  3.433e-02   0.621
## Jourssamedi                                   4.105e-03  3.410e-02   0.120
## Joursvendredi                                 3.819e-02  3.462e-02   1.103
## Vacances1                                    -4.280e-02  2.329e-02  -1.838
##                                              Pr(>|z|)    
## (Intercept)                                    <2e-16 ***
## heat_wave                                      0.9939    
## no2moy                                         0.7645    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12   0.2338    
## ns(time, df = round(2 * length(time)/153))13   0.2803    
## ns(time, df = round(2 * length(time)/153))14   0.1453    
## ns(time, df = round(2 * length(time)/153))15   0.8152    
## ns(time, df = round(2 * length(time)/153))16   0.0597 .  
## ns(time, df = round(2 * length(time)/153))17   0.8972    
## ns(time, df = round(2 * length(time)/153))18   0.2042    
## ns(time, df = round(2 * length(time)/153))19   0.6908    
## ns(time, df = round(2 * length(time)/153))20   0.9999    
## ns(time, df = round(2 * length(time)/153))21   0.2931    
## ns(time, df = round(2 * length(time)/153))22   0.4873    
## ns(time, df = round(2 * length(time)/153))23   0.9256    
## ns(time, df = round(2 * length(time)/153))24   0.4408    
## ns(time, df = round(2 * length(time)/153))25   0.9449    
## ns(time, df = round(2 * length(time)/153))26   0.7614    
## ns(time, df = round(2 * length(time)/153))27   0.7651    
## ns(time, df = round(2 * length(time)/153))28   0.8556    
## ns(time, df = round(2 * length(time)/153))29   0.1064    
## ns(time, df = round(2 * length(time)/153))30   0.3415    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                     0.2195    
## Jourslundi                                     0.2084    
## Joursmardi                                     0.0678 .  
## Joursmercredi                                  0.5346    
## Jourssamedi                                    0.9042    
## Joursvendredi                                  0.2700    
## Vacances1                                      0.0660 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Rank: 29/42
## R-sq.(adj) =  0.00286   Deviance explained = 2.38%
## UBRE = 0.071107  Scale est. = 1         n = 1313
## 
## $nice
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * length(time)/153)) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                                                Estimate Std. Error z value
## (Intercept)                                   2.3755509  0.0709423  33.486
## heat_wave                                     0.0056155  0.1025785   0.055
## no2moy                                        0.0004202  0.0017629   0.238
## ns(time, df = round(2 * length(time)/153))1   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))2   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))3   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))4   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))5   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))6   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))7   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))8   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))9   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))10  0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))11  0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))12  0.0084291  1.3740329   0.006
## ns(time, df = round(2 * length(time)/153))13 -0.0310653  0.2503218  -0.124
## ns(time, df = round(2 * length(time)/153))14 -0.1534734  0.1399368  -1.097
## ns(time, df = round(2 * length(time)/153))15  0.0410992  0.1096023   0.375
## ns(time, df = round(2 * length(time)/153))16 -0.0521964  0.1097823  -0.475
## ns(time, df = round(2 * length(time)/153))17  0.0076135  0.0985664   0.077
## ns(time, df = round(2 * length(time)/153))18  0.0110507  0.1033049   0.107
## ns(time, df = round(2 * length(time)/153))19 -0.0123503  0.0988010  -0.125
## ns(time, df = round(2 * length(time)/153))20 -0.1340540  0.1033003  -1.298
## ns(time, df = round(2 * length(time)/153))21  0.0522221  0.0985708   0.530
## ns(time, df = round(2 * length(time)/153))22 -0.1879697  0.1040421  -1.807
## ns(time, df = round(2 * length(time)/153))23  0.1249519  0.0974231   1.283
## ns(time, df = round(2 * length(time)/153))24 -0.2242161  0.1020967  -2.196
## ns(time, df = round(2 * length(time)/153))25  0.1831806  0.0962511   1.903
## ns(time, df = round(2 * length(time)/153))26 -0.1401847  0.1006560  -1.393
## ns(time, df = round(2 * length(time)/153))27  0.0155690  0.0936435   0.166
## ns(time, df = round(2 * length(time)/153))28  0.0016791  0.1022708   0.016
## ns(time, df = round(2 * length(time)/153))29 -0.0484968  0.0849792  -0.571
## ns(time, df = round(2 * length(time)/153))30  0.0181329  0.1193208   0.152
## ns(time, df = round(2 * length(time)/153))31  0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))32  0.0000000  0.0000000      NA
## Joursjeudi                                   -0.0109434  0.0328211  -0.333
## Jourslundi                                    0.0455709  0.0308760   1.476
## Joursmardi                                    0.0123528  0.0321719   0.384
## Joursmercredi                                 0.0075825  0.0326404   0.232
## Jourssamedi                                   0.0442128  0.0316191   1.398
## Joursvendredi                                 0.0661642  0.0323895   2.043
## Vacances1                                     0.0112118  0.0222758   0.503
##                                              Pr(>|z|)    
## (Intercept)                                    <2e-16 ***
## heat_wave                                      0.9563    
## no2moy                                         0.8116    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12   0.9951    
## ns(time, df = round(2 * length(time)/153))13   0.9012    
## ns(time, df = round(2 * length(time)/153))14   0.2728    
## ns(time, df = round(2 * length(time)/153))15   0.7077    
## ns(time, df = round(2 * length(time)/153))16   0.6345    
## ns(time, df = round(2 * length(time)/153))17   0.9384    
## ns(time, df = round(2 * length(time)/153))18   0.9148    
## ns(time, df = round(2 * length(time)/153))19   0.9005    
## ns(time, df = round(2 * length(time)/153))20   0.1944    
## ns(time, df = round(2 * length(time)/153))21   0.5963    
## ns(time, df = round(2 * length(time)/153))22   0.0708 .  
## ns(time, df = round(2 * length(time)/153))23   0.1996    
## ns(time, df = round(2 * length(time)/153))24   0.0281 *  
## ns(time, df = round(2 * length(time)/153))25   0.0570 .  
## ns(time, df = round(2 * length(time)/153))26   0.1637    
## ns(time, df = round(2 * length(time)/153))27   0.8680    
## ns(time, df = round(2 * length(time)/153))28   0.9869    
## ns(time, df = round(2 * length(time)/153))29   0.5682    
## ns(time, df = round(2 * length(time)/153))30   0.8792    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                     0.7388    
## Jourslundi                                     0.1400    
## Joursmardi                                     0.7010    
## Joursmercredi                                  0.8163    
## Jourssamedi                                    0.1620    
## Joursvendredi                                  0.0411 *  
## Vacances1                                      0.6147    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Rank: 29/42
## R-sq.(adj) =  0.00015   Deviance explained = 2.04%
## UBRE = 0.078912  Scale est. = 1         n = 1359
## 
## $paris
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * length(time)/153)) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                                                Estimate Std. Error z value
## (Intercept)                                   4.4622057  0.0218318 204.390
## heat_wave                                     0.2105394  0.0296090   7.111
## no2moy                                        0.0030195  0.0003559   8.484
## ns(time, df = round(2 * length(time)/153))1   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))2   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))3   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))4   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))5   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))6   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))7   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))8   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))9   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))10  0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))11  0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))12  0.5134040  0.4527567   1.134
## ns(time, df = round(2 * length(time)/153))13 -0.1508802  0.0823362  -1.832
## ns(time, df = round(2 * length(time)/153))14  0.1110419  0.0465671   2.385
## ns(time, df = round(2 * length(time)/153))15 -0.0931674  0.0369533  -2.521
## ns(time, df = round(2 * length(time)/153))16  0.1164288  0.0358935   3.244
## ns(time, df = round(2 * length(time)/153))17 -0.0866836  0.0337168  -2.571
## ns(time, df = round(2 * length(time)/153))18  0.0867078  0.0348089   2.491
## ns(time, df = round(2 * length(time)/153))19 -0.0497632  0.0332638  -1.496
## ns(time, df = round(2 * length(time)/153))20  0.0724571  0.0342344   2.116
## ns(time, df = round(2 * length(time)/153))21 -0.0266357  0.0329402  -0.809
## ns(time, df = round(2 * length(time)/153))22  0.0902264  0.0343832   2.624
## ns(time, df = round(2 * length(time)/153))23 -0.0085582  0.0326267  -0.262
## ns(time, df = round(2 * length(time)/153))24  0.0666488  0.0338982   1.966
## ns(time, df = round(2 * length(time)/153))25 -0.0401769  0.0321449  -1.250
## ns(time, df = round(2 * length(time)/153))26  0.1048259  0.0338546   3.096
## ns(time, df = round(2 * length(time)/153))27 -0.0969348  0.0319516  -3.034
## ns(time, df = round(2 * length(time)/153))28  0.0581616  0.0349793   1.663
## ns(time, df = round(2 * length(time)/153))29 -0.0014165  0.0288877  -0.049
## ns(time, df = round(2 * length(time)/153))30  0.0743031  0.0412569   1.801
## ns(time, df = round(2 * length(time)/153))31  0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))32  0.0000000  0.0000000      NA
## Joursjeudi                                    0.0359921  0.0107097   3.361
## Jourslundi                                    0.0455830  0.0103614   4.399
## Joursmardi                                    0.0288158  0.0106208   2.713
## Joursmercredi                                 0.0180862  0.0107540   1.682
## Jourssamedi                                   0.0185546  0.0105251   1.763
## Joursvendredi                                 0.0138401  0.0107701   1.285
## Vacances1                                    -0.0376135  0.0073780  -5.098
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                    1.15e-12 ***
## no2moy                                        < 2e-16 ***
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12 0.256815    
## ns(time, df = round(2 * length(time)/153))13 0.066878 .  
## ns(time, df = round(2 * length(time)/153))14 0.017100 *  
## ns(time, df = round(2 * length(time)/153))15 0.011695 *  
## ns(time, df = round(2 * length(time)/153))16 0.001180 ** 
## ns(time, df = round(2 * length(time)/153))17 0.010142 *  
## ns(time, df = round(2 * length(time)/153))18 0.012740 *  
## ns(time, df = round(2 * length(time)/153))19 0.134649    
## ns(time, df = round(2 * length(time)/153))20 0.034302 *  
## ns(time, df = round(2 * length(time)/153))21 0.418742    
## ns(time, df = round(2 * length(time)/153))22 0.008687 ** 
## ns(time, df = round(2 * length(time)/153))23 0.793085    
## ns(time, df = round(2 * length(time)/153))24 0.049282 *  
## ns(time, df = round(2 * length(time)/153))25 0.211348    
## ns(time, df = round(2 * length(time)/153))26 0.001959 ** 
## ns(time, df = round(2 * length(time)/153))27 0.002415 ** 
## ns(time, df = round(2 * length(time)/153))28 0.096364 .  
## ns(time, df = round(2 * length(time)/153))29 0.960893    
## ns(time, df = round(2 * length(time)/153))30 0.071705 .  
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                   0.000777 ***
## Jourslundi                                   1.09e-05 ***
## Joursmardi                                   0.006665 ** 
## Joursmercredi                                0.092605 .  
## Jourssamedi                                  0.077918 .  
## Joursvendredi                                0.198776    
## Vacances1                                    3.43e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Rank: 29/42
## R-sq.(adj) =  0.102   Deviance explained = 11.9%
## UBRE = 0.31869  Scale est. = 1         n = 1377
## 
## $rennes
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * length(time)/153)) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                                                Estimate Std. Error z value
## (Intercept)                                   1.3847088  0.1030165  13.442
## heat_wave                                    -0.2123030  0.3376930  -0.629
## no2moy                                       -0.0038778  0.0031209  -1.243
## ns(time, df = round(2 * length(time)/153))1   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))2   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))3   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))4   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))5   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))6   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))7   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))8   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))9   0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))10  0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))11  0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))12  1.0974901  2.4203477   0.453
## ns(time, df = round(2 * length(time)/153))13 -0.3829354  0.4462781  -0.858
## ns(time, df = round(2 * length(time)/153))14 -0.0852518  0.2447435  -0.348
## ns(time, df = round(2 * length(time)/153))15 -0.1116258  0.1924717  -0.580
## ns(time, df = round(2 * length(time)/153))16 -0.0306236  0.1824195  -0.168
## ns(time, df = round(2 * length(time)/153))17 -0.2703200  0.1749612  -1.545
## ns(time, df = round(2 * length(time)/153))18 -0.0889802  0.1786988  -0.498
## ns(time, df = round(2 * length(time)/153))19  0.0106399  0.1704359   0.062
## ns(time, df = round(2 * length(time)/153))20 -0.4235258  0.1783610  -2.375
## ns(time, df = round(2 * length(time)/153))21  0.1390606  0.1669863   0.833
## ns(time, df = round(2 * length(time)/153))22 -0.0984123  0.1744131  -0.564
## ns(time, df = round(2 * length(time)/153))23 -0.0007603  0.1662300  -0.005
## ns(time, df = round(2 * length(time)/153))24 -0.0871773  0.1775245  -0.491
## ns(time, df = round(2 * length(time)/153))25  0.0279932  0.1651045   0.170
## ns(time, df = round(2 * length(time)/153))26 -0.0213547  0.1712875  -0.125
## ns(time, df = round(2 * length(time)/153))27 -0.0628965  0.1592353  -0.395
## ns(time, df = round(2 * length(time)/153))28  0.1182774  0.1737929   0.681
## ns(time, df = round(2 * length(time)/153))29 -0.1725963  0.1492222  -1.157
## ns(time, df = round(2 * length(time)/153))30 -0.0214462  0.2047797  -0.105
## ns(time, df = round(2 * length(time)/153))31  0.0000000  0.0000000      NA
## ns(time, df = round(2 * length(time)/153))32  0.0000000  0.0000000      NA
## Joursjeudi                                    0.1175346  0.0562069   2.091
## Jourslundi                                    0.1160030  0.0532411   2.179
## Joursmardi                                    0.0978408  0.0553762   1.767
## Joursmercredi                                 0.0141606  0.0568255   0.249
## Jourssamedi                                   0.0969454  0.0547865   1.770
## Joursvendredi                                -0.0179802  0.0582983  -0.308
## Vacances1                                    -0.0465582  0.0379966  -1.225
##                                              Pr(>|z|)    
## (Intercept)                                    <2e-16 ***
## heat_wave                                      0.5296    
## no2moy                                         0.2140    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12   0.6502    
## ns(time, df = round(2 * length(time)/153))13   0.3909    
## ns(time, df = round(2 * length(time)/153))14   0.7276    
## ns(time, df = round(2 * length(time)/153))15   0.5619    
## ns(time, df = round(2 * length(time)/153))16   0.8667    
## ns(time, df = round(2 * length(time)/153))17   0.1223    
## ns(time, df = round(2 * length(time)/153))18   0.6185    
## ns(time, df = round(2 * length(time)/153))19   0.9502    
## ns(time, df = round(2 * length(time)/153))20   0.0176 *  
## ns(time, df = round(2 * length(time)/153))21   0.4050    
## ns(time, df = round(2 * length(time)/153))22   0.5726    
## ns(time, df = round(2 * length(time)/153))23   0.9964    
## ns(time, df = round(2 * length(time)/153))24   0.6234    
## ns(time, df = round(2 * length(time)/153))25   0.8654    
## ns(time, df = round(2 * length(time)/153))26   0.9008    
## ns(time, df = round(2 * length(time)/153))27   0.6928    
## ns(time, df = round(2 * length(time)/153))28   0.4961    
## ns(time, df = round(2 * length(time)/153))29   0.2474    
## ns(time, df = round(2 * length(time)/153))30   0.9166    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                     0.0365 *  
## Jourslundi                                     0.0293 *  
## Joursmardi                                     0.0773 .  
## Joursmercredi                                  0.8032    
## Jourssamedi                                    0.0768 .  
## Joursvendredi                                  0.7578    
## Vacances1                                      0.2205    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Rank: 29/42
## R-sq.(adj) =  0.0126   Deviance explained = 3.33%
## UBRE = -0.028814  Scale est. = 1         n = 1334
## 
## $rouen
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * length(time)/153)) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                                               Estimate Std. Error z value
## (Intercept)                                   2.204044   0.070154  31.417
## heat_wave                                     0.155263   0.132243   1.174
## no2moy                                        0.002787   0.002122   1.314
## ns(time, df = round(2 * length(time)/153))1   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))2   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))3   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))4   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))5   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))6   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))7   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))8   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))9   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))10  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))11  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))12 -0.187839   1.522453  -0.123
## ns(time, df = round(2 * length(time)/153))13 -0.342084   0.272070  -1.257
## ns(time, df = round(2 * length(time)/153))14  0.169110   0.150673   1.122
## ns(time, df = round(2 * length(time)/153))15 -0.270900   0.121518  -2.229
## ns(time, df = round(2 * length(time)/153))16 -0.033658   0.115599  -0.291
## ns(time, df = round(2 * length(time)/153))17 -0.120159   0.109769  -1.095
## ns(time, df = round(2 * length(time)/153))18 -0.056666   0.112895  -0.502
## ns(time, df = round(2 * length(time)/153))19 -0.138892   0.108983  -1.274
## ns(time, df = round(2 * length(time)/153))20 -0.062910   0.110876  -0.567
## ns(time, df = round(2 * length(time)/153))21 -0.162114   0.107179  -1.513
## ns(time, df = round(2 * length(time)/153))22  0.045924   0.111400   0.412
## ns(time, df = round(2 * length(time)/153))23 -0.233565   0.106672  -2.190
## ns(time, df = round(2 * length(time)/153))24  0.044616   0.111353   0.401
## ns(time, df = round(2 * length(time)/153))25 -0.166784   0.105835  -1.576
## ns(time, df = round(2 * length(time)/153))26 -0.037289   0.111848  -0.333
## ns(time, df = round(2 * length(time)/153))27 -0.079310   0.101732  -0.780
## ns(time, df = round(2 * length(time)/153))28 -0.033411   0.113605  -0.294
## ns(time, df = round(2 * length(time)/153))29 -0.145362   0.092123  -1.578
## ns(time, df = round(2 * length(time)/153))30  0.114362   0.129935   0.880
## ns(time, df = round(2 * length(time)/153))31  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))32  0.000000   0.000000      NA
## Joursjeudi                                    0.041478   0.036769   1.128
## Jourslundi                                    0.047503   0.034454   1.379
## Joursmardi                                    0.053390   0.036295   1.471
## Joursmercredi                                 0.107310   0.036344   2.953
## Jourssamedi                                   0.081944   0.034833   2.353
## Joursvendredi                                 0.049508   0.036743   1.347
## Vacances1                                    -0.075246   0.023944  -3.143
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                     0.24036    
## no2moy                                        0.18900    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12  0.90181    
## ns(time, df = round(2 * length(time)/153))13  0.20863    
## ns(time, df = round(2 * length(time)/153))14  0.26171    
## ns(time, df = round(2 * length(time)/153))15  0.02579 *  
## ns(time, df = round(2 * length(time)/153))16  0.77093    
## ns(time, df = round(2 * length(time)/153))17  0.27367    
## ns(time, df = round(2 * length(time)/153))18  0.61571    
## ns(time, df = round(2 * length(time)/153))19  0.20251    
## ns(time, df = round(2 * length(time)/153))20  0.57045    
## ns(time, df = round(2 * length(time)/153))21  0.13039    
## ns(time, df = round(2 * length(time)/153))22  0.68016    
## ns(time, df = round(2 * length(time)/153))23  0.02856 *  
## ns(time, df = round(2 * length(time)/153))24  0.68866    
## ns(time, df = round(2 * length(time)/153))25  0.11505    
## ns(time, df = round(2 * length(time)/153))26  0.73884    
## ns(time, df = round(2 * length(time)/153))27  0.43563    
## ns(time, df = round(2 * length(time)/153))28  0.76868    
## ns(time, df = round(2 * length(time)/153))29  0.11458    
## ns(time, df = round(2 * length(time)/153))30  0.37878    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                    0.25929    
## Jourslundi                                    0.16798    
## Joursmardi                                    0.14128    
## Joursmercredi                                 0.00315 ** 
## Jourssamedi                                   0.01865 *  
## Joursvendredi                                 0.17785    
## Vacances1                                     0.00167 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Rank: 29/42
## R-sq.(adj) =  0.0152   Deviance explained = 3.47%
## UBRE = -0.01825  Scale est. = 1         n = 1377
## 
## $strasbourg
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * length(time)/153)) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                                               Estimate Std. Error z value
## (Intercept)                                   1.894823   0.091723  20.658
## heat_wave                                     0.420064   0.050642   8.295
## no2moy                                        0.002884   0.001202   2.400
## ns(time, df = round(2 * length(time)/153))1  -0.121578   0.102577  -1.185
## ns(time, df = round(2 * length(time)/153))2   0.306127   0.139763   2.190
## ns(time, df = round(2 * length(time)/153))3   0.073988   0.115872   0.639
## ns(time, df = round(2 * length(time)/153))4   0.153223   0.136408   1.123
## ns(time, df = round(2 * length(time)/153))5   0.050074   0.120425   0.416
## ns(time, df = round(2 * length(time)/153))6   0.304980   0.131794   2.314
## ns(time, df = round(2 * length(time)/153))7  -0.073241   0.122742  -0.597
## ns(time, df = round(2 * length(time)/153))8   0.243553   0.134146   1.816
## ns(time, df = round(2 * length(time)/153))9  -0.201885   0.126151  -1.600
## ns(time, df = round(2 * length(time)/153))10  0.172631   0.135558   1.273
## ns(time, df = round(2 * length(time)/153))11 -0.207565   0.126036  -1.647
## ns(time, df = round(2 * length(time)/153))12  0.263511   0.132896   1.983
## ns(time, df = round(2 * length(time)/153))13 -0.067352   0.123237  -0.547
## ns(time, df = round(2 * length(time)/153))14  0.263755   0.132745   1.987
## ns(time, df = round(2 * length(time)/153))15  0.046676   0.122171   0.382
## ns(time, df = round(2 * length(time)/153))16  0.187585   0.133259   1.408
## ns(time, df = round(2 * length(time)/153))17 -0.028988   0.123416  -0.235
## ns(time, df = round(2 * length(time)/153))18  0.208140   0.134301   1.550
## ns(time, df = round(2 * length(time)/153))19  0.107393   0.122017   0.880
## ns(time, df = round(2 * length(time)/153))20  0.040637   0.133644   0.304
## ns(time, df = round(2 * length(time)/153))21  0.384537   0.120128   3.201
## ns(time, df = round(2 * length(time)/153))22 -0.147497   0.135353  -1.090
## ns(time, df = round(2 * length(time)/153))23  0.324455   0.121221   2.677
## ns(time, df = round(2 * length(time)/153))24  0.031509   0.132777   0.237
## ns(time, df = round(2 * length(time)/153))25  0.068700   0.122708   0.560
## ns(time, df = round(2 * length(time)/153))26  0.352634   0.130402   2.704
## ns(time, df = round(2 * length(time)/153))27 -0.100465   0.123222  -0.815
## ns(time, df = round(2 * length(time)/153))28  0.290971   0.129325   2.250
## ns(time, df = round(2 * length(time)/153))29  0.175968   0.120676   1.458
## ns(time, df = round(2 * length(time)/153))30  0.105776   0.103098   1.026
## ns(time, df = round(2 * length(time)/153))31  0.433073   0.217830   1.988
## ns(time, df = round(2 * length(time)/153))32 -0.053428   0.090863  -0.588
## Joursjeudi                                   -0.033443   0.028535  -1.172
## Jourslundi                                    0.039035   0.026824   1.455
## Joursmardi                                    0.011489   0.027771   0.414
## Joursmercredi                                 0.031322   0.028037   1.117
## Jourssamedi                                  -0.028183   0.027767  -1.015
## Joursvendredi                                -0.009874   0.028391  -0.348
## Vacances1                                    -0.045157   0.018806  -2.401
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                     < 2e-16 ***
## no2moy                                        0.01639 *  
## ns(time, df = round(2 * length(time)/153))1   0.23592    
## ns(time, df = round(2 * length(time)/153))2   0.02850 *  
## ns(time, df = round(2 * length(time)/153))3   0.52312    
## ns(time, df = round(2 * length(time)/153))4   0.26132    
## ns(time, df = round(2 * length(time)/153))5   0.67755    
## ns(time, df = round(2 * length(time)/153))6   0.02066 *  
## ns(time, df = round(2 * length(time)/153))7   0.55070    
## ns(time, df = round(2 * length(time)/153))8   0.06944 .  
## ns(time, df = round(2 * length(time)/153))9   0.10952    
## ns(time, df = round(2 * length(time)/153))10  0.20285    
## ns(time, df = round(2 * length(time)/153))11  0.09958 .  
## ns(time, df = round(2 * length(time)/153))12  0.04739 *  
## ns(time, df = round(2 * length(time)/153))13  0.58470    
## ns(time, df = round(2 * length(time)/153))14  0.04693 *  
## ns(time, df = round(2 * length(time)/153))15  0.70242    
## ns(time, df = round(2 * length(time)/153))16  0.15923    
## ns(time, df = round(2 * length(time)/153))17  0.81430    
## ns(time, df = round(2 * length(time)/153))18  0.12119    
## ns(time, df = round(2 * length(time)/153))19  0.37878    
## ns(time, df = round(2 * length(time)/153))20  0.76108    
## ns(time, df = round(2 * length(time)/153))21  0.00137 ** 
## ns(time, df = round(2 * length(time)/153))22  0.27584    
## ns(time, df = round(2 * length(time)/153))23  0.00744 ** 
## ns(time, df = round(2 * length(time)/153))24  0.81242    
## ns(time, df = round(2 * length(time)/153))25  0.57557    
## ns(time, df = round(2 * length(time)/153))26  0.00685 ** 
## ns(time, df = round(2 * length(time)/153))27  0.41489    
## ns(time, df = round(2 * length(time)/153))28  0.02445 *  
## ns(time, df = round(2 * length(time)/153))29  0.14479    
## ns(time, df = round(2 * length(time)/153))30  0.30491    
## ns(time, df = round(2 * length(time)/153))31  0.04680 *  
## ns(time, df = round(2 * length(time)/153))32  0.55653    
## Joursjeudi                                    0.24120    
## Jourslundi                                    0.14561    
## Joursmardi                                    0.67910    
## Joursmercredi                                 0.26391    
## Jourssamedi                                   0.31011    
## Joursvendredi                                 0.72800    
## Vacances1                                     0.01634 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## R-sq.(adj) =  0.0575   Deviance explained = 6.64%
## UBRE = 0.047678  Scale est. = 1         n = 2444
## 
## $toulouse
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + ns(time, df = round(2 * length(time)/153)) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                                               Estimate Std. Error z value
## (Intercept)                                   2.445996   0.060086  40.709
## heat_wave                                     0.081156   0.093078   0.872
## no2moy                                        0.001865   0.001399   1.333
## ns(time, df = round(2 * length(time)/153))1   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))2   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))3   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))4   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))5   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))6   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))7   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))8   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))9   0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))10  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))11  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))12 -2.920638   1.381133  -2.115
## ns(time, df = round(2 * length(time)/153))13  0.360370   0.245735   1.466
## ns(time, df = round(2 * length(time)/153))14 -0.340704   0.139401  -2.444
## ns(time, df = round(2 * length(time)/153))15 -0.075168   0.108224  -0.695
## ns(time, df = round(2 * length(time)/153))16 -0.089084   0.103604  -0.860
## ns(time, df = round(2 * length(time)/153))17 -0.121084   0.097842  -1.238
## ns(time, df = round(2 * length(time)/153))18 -0.049768   0.100760  -0.494
## ns(time, df = round(2 * length(time)/153))19 -0.215535   0.097272  -2.216
## ns(time, df = round(2 * length(time)/153))20 -0.034846   0.099197  -0.351
## ns(time, df = round(2 * length(time)/153))21 -0.054567   0.094357  -0.578
## ns(time, df = round(2 * length(time)/153))22 -0.072948   0.098277  -0.742
## ns(time, df = round(2 * length(time)/153))23 -0.003592   0.093873  -0.038
## ns(time, df = round(2 * length(time)/153))24 -0.186962   0.098118  -1.905
## ns(time, df = round(2 * length(time)/153))25  0.135384   0.091652   1.477
## ns(time, df = round(2 * length(time)/153))26 -0.142154   0.096768  -1.469
## ns(time, df = round(2 * length(time)/153))27  0.115173   0.089681   1.284
## ns(time, df = round(2 * length(time)/153))28 -0.260651   0.100686  -2.589
## ns(time, df = round(2 * length(time)/153))29  0.130194   0.082705   1.574
## ns(time, df = round(2 * length(time)/153))30 -0.149981   0.117216  -1.280
## ns(time, df = round(2 * length(time)/153))31  0.000000   0.000000      NA
## ns(time, df = round(2 * length(time)/153))32  0.000000   0.000000      NA
## Joursjeudi                                    0.014545   0.031528   0.461
## Jourslundi                                    0.045516   0.030299   1.502
## Joursmardi                                    0.010893   0.031190   0.349
## Joursmercredi                                 0.045470   0.031364   1.450
## Jourssamedi                                   0.020402   0.030690   0.665
## Joursvendredi                                 0.039047   0.031239   1.250
## Vacances1                                    -0.026472   0.021615  -1.225
##                                              Pr(>|z|)    
## (Intercept)                                   < 2e-16 ***
## heat_wave                                     0.38326    
## no2moy                                        0.18238    
## ns(time, df = round(2 * length(time)/153))1        NA    
## ns(time, df = round(2 * length(time)/153))2        NA    
## ns(time, df = round(2 * length(time)/153))3        NA    
## ns(time, df = round(2 * length(time)/153))4        NA    
## ns(time, df = round(2 * length(time)/153))5        NA    
## ns(time, df = round(2 * length(time)/153))6        NA    
## ns(time, df = round(2 * length(time)/153))7        NA    
## ns(time, df = round(2 * length(time)/153))8        NA    
## ns(time, df = round(2 * length(time)/153))9        NA    
## ns(time, df = round(2 * length(time)/153))10       NA    
## ns(time, df = round(2 * length(time)/153))11       NA    
## ns(time, df = round(2 * length(time)/153))12  0.03446 *  
## ns(time, df = round(2 * length(time)/153))13  0.14251    
## ns(time, df = round(2 * length(time)/153))14  0.01452 *  
## ns(time, df = round(2 * length(time)/153))15  0.48733    
## ns(time, df = round(2 * length(time)/153))16  0.38987    
## ns(time, df = round(2 * length(time)/153))17  0.21588    
## ns(time, df = round(2 * length(time)/153))18  0.62136    
## ns(time, df = round(2 * length(time)/153))19  0.02671 *  
## ns(time, df = round(2 * length(time)/153))20  0.72538    
## ns(time, df = round(2 * length(time)/153))21  0.56306    
## ns(time, df = round(2 * length(time)/153))22  0.45793    
## ns(time, df = round(2 * length(time)/153))23  0.96948    
## ns(time, df = round(2 * length(time)/153))24  0.05672 .  
## ns(time, df = round(2 * length(time)/153))25  0.13964    
## ns(time, df = round(2 * length(time)/153))26  0.14183    
## ns(time, df = round(2 * length(time)/153))27  0.19905    
## ns(time, df = round(2 * length(time)/153))28  0.00963 ** 
## ns(time, df = round(2 * length(time)/153))29  0.11544    
## ns(time, df = round(2 * length(time)/153))30  0.20071    
## ns(time, df = round(2 * length(time)/153))31       NA    
## ns(time, df = round(2 * length(time)/153))32       NA    
## Joursjeudi                                    0.64457    
## Jourslundi                                    0.13304    
## Joursmardi                                    0.72691    
## Joursmercredi                                 0.14712    
## Jourssamedi                                   0.50620    
## Joursvendredi                                 0.21132    
## Vacances1                                     0.22068    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Rank: 29/42
## R-sq.(adj) =  0.0202   Deviance explained = 3.97%
## UBRE = 0.073554  Scale est. = 1         n = 1377
## to get AIC of the model
lapply(m.outcome_g,function(x){AIC(x)})
## $BM
## [1] 6015.081
## 
## $bordeaux
## [1] 7370.001
## 
## $clermont
## [1] 10794.4
## 
## $dijon
## [1] 10169.21
## 
## $grenoble
## [1] 6677.972
## 
## $lehavre
## [1] 6099.378
## 
## $lille
## [1] 10709.97
## 
## $lyon
## [1] 7879.635
## 
## $marseille
## [1] 8019.308
## 
## $montpellier
## [1] 6293.925
## 
## $nancy
## [1] 6445.964
## 
## $nantes
## [1] 6772.152
## 
## $nice
## [1] 7158.469
## 
## $paris
## [1] 10631.65
## 
## $rennes
## [1] 5369.516
## 
## $rouen
## [1] 6869.369
## 
## $strasbourg
## [1] 11990.35
## 
## $toulouse
## [1] 7290.771

Results are identical for glm and gam function. In some cities, we identify a problem of collinearity for the coefficients linked to the different basis function of the time variable; this might be due to the fact that in some cities with les variablity in mortality, the model is overparametrized (i.e. too many dfs for time variable).

Model with 2 temporal indicators, one for the season (day of the season with 4 df), one for long-term trend (1 df every 5 or 10 years).

see Guo et al. 2017, Hajat et al. 2006, Gasparrini and Armstrong 2011, Zeng et al. 2014

## Create variable for day of the season, going from 1 at the 1st of may of every year and until 153 for 30th of september (except of bisextiles years, 2000 and 2004)

for (i in 1:18){
villes_s[[i]]$day<-ifelse(villes_s[[i]]$annee %in% c("2000","2004"),as.numeric(strftime(villes_s[[i]]$Dates,format="%j"))-121,as.numeric(strftime(villes_s[[i]]$Dates, format = "%j"))-120)   
 }

lapply(villes_s,function(x){summary(x$day)})
## $BM
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   39.00   77.00   77.12  115.00  154.00 
## 
## $bordeaux
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   39.00   77.00   77.12  115.00  154.00 
## 
## $clermont
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   39.00   77.00   77.12  115.00  154.00 
## 
## $dijon
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   39.00   77.00   77.12  115.00  154.00 
## 
## $grenoble
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   39.00   77.00   77.12  115.00  154.00 
## 
## $lehavre
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   39.00   77.00   77.12  115.00  154.00 
## 
## $lille
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   39.00   77.00   77.12  115.00  154.00 
## 
## $lyon
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   39.00   77.00   77.12  115.00  154.00 
## 
## $marseille
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   39.00   77.00   77.12  115.00  154.00 
## 
## $montpellier
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   39.00   77.00   77.12  115.00  154.00 
## 
## $nancy
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   39.00   77.00   77.12  115.00  154.00 
## 
## $nantes
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   39.00   77.00   77.12  115.00  154.00 
## 
## $nice
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   39.00   77.00   77.12  115.00  154.00 
## 
## $paris
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   39.00   77.00   77.12  115.00  154.00 
## 
## $rennes
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   39.00   77.00   77.12  115.00  154.00 
## 
## $rouen
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   39.00   77.00   77.12  115.00  154.00 
## 
## $strasbourg
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   39.00   77.00   77.12  115.00  154.00 
## 
## $toulouse
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   39.00   77.00   77.12  115.00  154.00
## Create a variable going for the year going from 1 in 2000 to 16 in 2015
for (i in 1:18){
villes_s[[i]]$year<-year(villes_s[[i]]$Dates)-1999
}

lapply(villes_s,function(x){summary(x$year)})
## $BM
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    4.75    8.50    8.50   12.25   16.00 
## 
## $bordeaux
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    4.75    8.50    8.50   12.25   16.00 
## 
## $clermont
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    4.75    8.50    8.50   12.25   16.00 
## 
## $dijon
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    4.75    8.50    8.50   12.25   16.00 
## 
## $grenoble
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    4.75    8.50    8.50   12.25   16.00 
## 
## $lehavre
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    4.75    8.50    8.50   12.25   16.00 
## 
## $lille
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    4.75    8.50    8.50   12.25   16.00 
## 
## $lyon
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    4.75    8.50    8.50   12.25   16.00 
## 
## $marseille
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    4.75    8.50    8.50   12.25   16.00 
## 
## $montpellier
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    4.75    8.50    8.50   12.25   16.00 
## 
## $nancy
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    4.75    8.50    8.50   12.25   16.00 
## 
## $nantes
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    4.75    8.50    8.50   12.25   16.00 
## 
## $nice
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    4.75    8.50    8.50   12.25   16.00 
## 
## $paris
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    4.75    8.50    8.50   12.25   16.00 
## 
## $rennes
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    4.75    8.50    8.50   12.25   16.00 
## 
## $rouen
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    4.75    8.50    8.50   12.25   16.00 
## 
## $strasbourg
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    4.75    8.50    8.50   12.25   16.00 
## 
## $toulouse
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    4.75    8.50    8.50   12.25   16.00
# Model 

m2.outcome<-list()

for (i in 1:18){
m2.outcome[[i]]<-glm(nocc_tot~heat_wave+no2moy+ns(year,df=4)+ns(day,df=4)+Jours+Vacances,data=villes_s[[i]],family=poisson)}

names(m2.outcome)<-names

lapply(m2.outcome,function(x){summary(x)})
## $BM
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(year, df = 4) + 
##     ns(day, df = 4) + Jours + Vacances, family = poisson, data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.1792  -0.7722  -0.0304   0.6327   2.9593  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)   
## (Intercept)        3.744e+01  2.974e+02   0.126  0.89982   
## heat_wave         -4.896e-02  1.665e-01  -0.294  0.76869   
## no2moy             7.985e-04  1.859e-03   0.430  0.66751   
## ns(year, df = 4)1 -3.539e+01  2.973e+02  -0.119  0.90524   
## ns(year, df = 4)2 -2.544e+01  2.135e+02  -0.119  0.90512   
## ns(year, df = 4)3 -6.543e+01  5.493e+02  -0.119  0.90519   
## ns(year, df = 4)4 -1.541e+01  1.295e+02  -0.119  0.90525   
## ns(day, df = 4)1   5.238e-02  6.437e-02   0.814  0.41581   
## ns(day, df = 4)2  -1.471e-01  6.618e-02  -2.222  0.02629 * 
## ns(day, df = 4)3  -1.439e-01  1.178e-01  -1.221  0.22203   
## ns(day, df = 4)4  -1.400e-02  5.158e-02  -0.271  0.78610   
## Joursjeudi         5.945e-02  3.964e-02   1.500  0.13369   
## Jourslundi         9.274e-02  3.890e-02   2.384  0.01712 * 
## Joursmardi         1.018e-01  3.930e-02   2.591  0.00958 **
## Joursmercredi      9.553e-02  3.963e-02   2.410  0.01594 * 
## Jourssamedi        2.564e-02  3.958e-02   0.648  0.51704   
## Joursvendredi      1.207e-01  3.927e-02   3.075  0.00211 **
## Vacances1          1.457e-02  4.254e-02   0.343  0.73194   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1345.0  on 1210  degrees of freedom
## Residual deviance: 1314.8  on 1193  degrees of freedom
##   (1237 observations deleted due to missingness)
## AIC: 6005
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $bordeaux
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(year, df = 4) + 
##     ns(day, df = 4) + Jours + Vacances, family = poisson, data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.5320  -0.7444  -0.0394   0.6352   2.7813  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)  
## (Intercept)        7.702e+01  2.198e+02   0.350   0.7261  
## heat_wave          2.059e-01  1.092e-01   1.885   0.0594 .
## no2moy             2.826e-03  1.892e-03   1.494   0.1353  
## ns(year, df = 4)1 -7.459e+01  2.198e+02  -0.339   0.7343  
## ns(year, df = 4)2 -5.350e+01  1.578e+02  -0.339   0.7346  
## ns(year, df = 4)3 -1.378e+02  4.060e+02  -0.339   0.7343  
## ns(year, df = 4)4 -3.235e+01  9.569e+01  -0.338   0.7353  
## ns(day, df = 4)1  -3.254e-02  4.801e-02  -0.678   0.4979  
## ns(day, df = 4)2  -3.299e-02  4.937e-02  -0.668   0.5040  
## ns(day, df = 4)3  -1.319e-01  8.732e-02  -1.510   0.1311  
## ns(day, df = 4)4  -1.883e-02  4.282e-02  -0.440   0.6602  
## Joursjeudi         4.509e-02  3.180e-02   1.418   0.1562  
## Jourslundi         6.322e-02  2.988e-02   2.115   0.0344 *
## Joursmardi         3.898e-02  3.118e-02   1.250   0.2111  
## Joursmercredi      2.566e-02  3.187e-02   0.805   0.4207  
## Jourssamedi        4.172e-02  3.057e-02   1.365   0.1723  
## Joursvendredi      4.096e-02  3.175e-02   1.290   0.1970  
## Vacances1         -2.125e-02  3.312e-02  -0.642   0.5211  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1490.4  on 1376  degrees of freedom
## Residual deviance: 1459.4  on 1359  degrees of freedom
##   (1071 observations deleted due to missingness)
## AIC: 7361.4
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $clermont
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(year, df = 4) + 
##     ns(day, df = 4) + Jours + Vacances, family = poisson, data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.1919  -0.7209  -0.0711   0.6168   3.3903  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)    
## (Intercept)        1.6957409  0.0602713  28.135  < 2e-16 ***
## heat_wave          0.4333304  0.0744939   5.817 5.99e-09 ***
## no2moy             0.0016609  0.0016936   0.981   0.3267    
## ns(year, df = 4)1 -0.0523191  0.0441386  -1.185   0.2359    
## ns(year, df = 4)2  0.0825395  0.0410473   2.011   0.0443 *  
## ns(year, df = 4)3  0.0345834  0.0776617   0.445   0.6561    
## ns(year, df = 4)4  0.0226835  0.0388630   0.584   0.5594    
## ns(day, df = 4)1   0.0377468  0.0549301   0.687   0.4920    
## ns(day, df = 4)2  -0.0707475  0.0554120  -1.277   0.2017    
## ns(day, df = 4)3  -0.2364428  0.0977144  -2.420   0.0155 *  
## ns(day, df = 4)4  -0.0008405  0.0473609  -0.018   0.9858    
## Joursjeudi        -0.0158980  0.0350886  -0.453   0.6505    
## Jourslundi         0.0196361  0.0332218   0.591   0.5545    
## Joursmardi         0.0044504  0.0343666   0.129   0.8970    
## Joursmercredi      0.0135356  0.0348625   0.388   0.6978    
## Jourssamedi       -0.0117581  0.0342687  -0.343   0.7315    
## Joursvendredi      0.0107253  0.0351337   0.305   0.7602    
## Vacances1         -0.0462484  0.0376776  -1.227   0.2196    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 2463.1  on 2430  degrees of freedom
## Residual deviance: 2412.8  on 2413  degrees of freedom
##   (17 observations deleted due to missingness)
## AIC: 10768
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $dijon
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(year, df = 4) + 
##     ns(day, df = 4) + Jours + Vacances, family = poisson, data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.0388  -0.7376  -0.0748   0.6090   3.2072  
## 
## Coefficients:
##                    Estimate Std. Error z value Pr(>|z|)    
## (Intercept)        1.234734   0.069816  17.686  < 2e-16 ***
## heat_wave          0.410229   0.073409   5.588 2.29e-08 ***
## no2moy             0.003953   0.002007   1.970 0.048891 *  
## ns(year, df = 4)1 -0.003958   0.049481  -0.080 0.936250    
## ns(year, df = 4)2  0.170393   0.046978   3.627 0.000287 ***
## ns(year, df = 4)3  0.216440   0.087488   2.474 0.013363 *  
## ns(year, df = 4)4  0.147837   0.049023   3.016 0.002564 ** 
## ns(day, df = 4)1   0.062744   0.062762   1.000 0.317455    
## ns(day, df = 4)2  -0.054957   0.062709  -0.876 0.380827    
## ns(day, df = 4)3  -0.018124   0.109205  -0.166 0.868185    
## ns(day, df = 4)4   0.019414   0.051321   0.378 0.705212    
## Joursjeudi         0.032246   0.039464   0.817 0.413881    
## Jourslundi         0.030016   0.037765   0.795 0.426721    
## Joursmardi         0.054433   0.038770   1.404 0.160321    
## Joursmercredi      0.044326   0.039357   1.126 0.260058    
## Jourssamedi        0.062642   0.038300   1.636 0.101934    
## Joursvendredi      0.057507   0.039582   1.453 0.146261    
## Vacances1          0.026180   0.042556   0.615 0.538432    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 2467.5  on 2416  degrees of freedom
## Residual deviance: 2394.7  on 2399  degrees of freedom
##   (31 observations deleted due to missingness)
## AIC: 10154
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $grenoble
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(year, df = 4) + 
##     ns(day, df = 4) + Jours + Vacances, family = poisson, data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.9344  -0.7214  -0.0354   0.5913   3.1636  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)   
## (Intercept)       -3.577e+02  2.801e+02  -1.277  0.20171   
## heat_wave          1.348e-01  8.929e-02   1.510  0.13115   
## no2moy             7.333e-03  2.775e-03   2.643  0.00823 **
## ns(year, df = 4)1  3.594e+02  2.801e+02   1.283  0.19945   
## ns(year, df = 4)2  2.582e+02  2.011e+02   1.284  0.19918   
## ns(year, df = 4)3  6.636e+02  5.174e+02   1.283  0.19965   
## ns(year, df = 4)4  1.569e+02  1.220e+02   1.286  0.19828   
## ns(day, df = 4)1   7.596e-02  6.021e-02   1.262  0.20707   
## ns(day, df = 4)2   6.134e-02  6.170e-02   0.994  0.32016   
## ns(day, df = 4)3   2.434e-01  1.137e-01   2.141  0.03230 * 
## ns(day, df = 4)4   4.202e-02  5.208e-02   0.807  0.41971   
## Joursjeudi        -3.283e-02  3.993e-02  -0.822  0.41096   
## Jourslundi        -2.649e-02  3.760e-02  -0.705  0.48109   
## Joursmardi        -6.428e-02  4.010e-02  -1.603  0.10892   
## Joursmercredi     -4.312e-02  4.021e-02  -1.072  0.28350   
## Jourssamedi        1.509e-02  3.793e-02   0.398  0.69064   
## Joursvendredi     -3.919e-02  4.014e-02  -0.976  0.32891   
## Vacances1         -1.917e-02  4.162e-02  -0.460  0.64518   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1501.6  on 1376  degrees of freedom
## Residual deviance: 1422.0  on 1359  degrees of freedom
##   (1071 observations deleted due to missingness)
## AIC: 6663.7
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $lehavre
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(year, df = 4) + 
##     ns(day, df = 4) + Jours + Vacances, family = poisson, data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.3272  -0.7441  -0.0974   0.6271   3.3028  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)
## (Intercept)        3.401e+02  3.252e+02   1.046    0.296
## heat_wave          1.682e-01  1.508e-01   1.115    0.265
## no2moy             2.683e-03  1.684e-03   1.593    0.111
## ns(year, df = 4)1 -3.383e+02  3.251e+02  -1.040    0.298
## ns(year, df = 4)2 -2.428e+02  2.334e+02  -1.040    0.298
## ns(year, df = 4)3 -6.253e+02  6.006e+02  -1.041    0.298
## ns(year, df = 4)4 -1.470e+02  1.416e+02  -1.039    0.299
## ns(day, df = 4)1  -2.011e-03  7.130e-02  -0.028    0.977
## ns(day, df = 4)2  -3.653e-02  7.379e-02  -0.495    0.621
## ns(day, df = 4)3  -8.803e-02  1.343e-01  -0.655    0.512
## ns(day, df = 4)4  -2.654e-02  6.137e-02  -0.432    0.665
## Joursjeudi        -3.005e-02  4.436e-02  -0.677    0.498
## Jourslundi        -4.224e-02  4.408e-02  -0.958    0.338
## Joursmardi         2.637e-02  4.364e-02   0.604    0.546
## Joursmercredi     -2.701e-02  4.439e-02  -0.608    0.543
## Jourssamedi       -7.053e-02  4.465e-02  -1.580    0.114
## Joursvendredi     -3.240e-02  4.440e-02  -0.730    0.466
## Vacances1         -1.416e-02  4.947e-02  -0.286    0.775
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1412.4  on 1350  degrees of freedom
## Residual deviance: 1395.0  on 1333  degrees of freedom
##   (1097 observations deleted due to missingness)
## AIC: 6081.8
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $lille
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(year, df = 4) + 
##     ns(day, df = 4) + Jours + Vacances, family = poisson, data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.0319  -0.7115  -0.0315   0.6285   3.7576  
## 
## Coefficients:
##                    Estimate Std. Error z value Pr(>|z|)    
## (Intercept)        2.592980   0.316632   8.189 2.63e-16 ***
## heat_wave          0.066780   0.054723   1.220 0.222338    
## no2moy             0.003737   0.001015   3.681 0.000233 ***
## ns(year, df = 4)1  0.289766   0.297335   0.975 0.329787    
## ns(year, df = 4)2  0.203379   0.220618   0.922 0.356602    
## ns(year, df = 4)3  0.663272   0.628505   1.055 0.291280    
## ns(year, df = 4)4  0.146264   0.108112   1.353 0.176088    
## ns(day, df = 4)1  -0.010334   0.033074  -0.312 0.754705    
## ns(day, df = 4)2  -0.016022   0.033516  -0.478 0.632619    
## ns(day, df = 4)3  -0.080613   0.058978  -1.367 0.171680    
## ns(day, df = 4)4  -0.062959   0.027487  -2.291 0.021991 *  
## Joursjeudi        -0.004626   0.021068  -0.220 0.826212    
## Jourslundi         0.046239   0.019877   2.326 0.020003 *  
## Joursmardi         0.019728   0.020528   0.961 0.336545    
## Joursmercredi     -0.004341   0.020934  -0.207 0.835712    
## Jourssamedi       -0.031927   0.020563  -1.553 0.120496    
## Joursvendredi     -0.011440   0.021133  -0.541 0.588271    
## Vacances1         -0.015311   0.022508  -0.680 0.496366    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1924.7  on 1833  degrees of freedom
## Residual deviance: 1875.6  on 1816  degrees of freedom
##   (614 observations deleted due to missingness)
## AIC: 10678
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $lyon
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(year, df = 4) + 
##     ns(day, df = 4) + Jours + Vacances, family = poisson, data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.1685  -0.7627  -0.0855   0.6703   2.8358  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)   
## (Intercept)       -4.059e+01  1.797e+02  -0.226  0.82133   
## heat_wave          1.492e-01  7.210e-02   2.069  0.03856 * 
## no2moy             1.883e-03  9.572e-04   1.967  0.04920 * 
## ns(year, df = 4)1  4.344e+01  1.797e+02   0.242  0.80897   
## ns(year, df = 4)2  3.121e+01  1.290e+02   0.242  0.80884   
## ns(year, df = 4)3  7.976e+01  3.320e+02   0.240  0.81013   
## ns(year, df = 4)4  1.917e+01  7.824e+01   0.245  0.80645   
## ns(day, df = 4)1  -2.831e-02  3.931e-02  -0.720  0.47149   
## ns(day, df = 4)2  -8.622e-02  4.058e-02  -2.124  0.03363 * 
## ns(day, df = 4)3  -2.396e-02  7.336e-02  -0.327  0.74393   
## ns(day, df = 4)4  -2.293e-03  3.392e-02  -0.068  0.94609   
## Joursjeudi         2.790e-02  2.616e-02   1.066  0.28623   
## Jourslundi         1.992e-02  2.479e-02   0.803  0.42177   
## Joursmardi         3.766e-02  2.544e-02   1.480  0.13880   
## Joursmercredi      7.374e-03  2.603e-02   0.283  0.77693   
## Jourssamedi       -2.240e-02  2.541e-02  -0.881  0.37814   
## Joursvendredi      6.827e-02  2.580e-02   2.646  0.00815 **
## Vacances1          2.054e-02  2.733e-02   0.752  0.45233   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1494.7  on 1376  degrees of freedom
## Residual deviance: 1443.3  on 1359  degrees of freedom
##   (1071 observations deleted due to missingness)
## AIC: 7875.3
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $marseille
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(year, df = 4) + 
##     ns(day, df = 4) + Jours + Vacances, family = poisson, data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.4485  -0.6755  -0.0352   0.6332   3.1461  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)   
## (Intercept)       -1.700e+02  1.647e+02  -1.032  0.30190   
## heat_wave          2.023e-02  6.797e-02   0.298  0.76599   
## no2moy             1.465e-03  5.455e-04   2.686  0.00723 **
## ns(year, df = 4)1  1.730e+02  1.647e+02   1.051  0.29339   
## ns(year, df = 4)2  1.242e+02  1.182e+02   1.051  0.29347   
## ns(year, df = 4)3  3.195e+02  3.042e+02   1.050  0.29367   
## ns(year, df = 4)4  7.539e+01  7.170e+01   1.052  0.29301   
## ns(day, df = 4)1   1.710e-02  3.624e-02   0.472  0.63693   
## ns(day, df = 4)2  -3.978e-02  3.724e-02  -1.068  0.28547   
## ns(day, df = 4)3  -1.350e-01  6.821e-02  -1.980  0.04775 * 
## ns(day, df = 4)4  -2.766e-02  2.988e-02  -0.926  0.35450   
## Joursjeudi         3.185e-02  2.304e-02   1.382  0.16698   
## Jourslundi         1.013e-02  2.285e-02   0.443  0.65764   
## Joursmardi         1.574e-02  2.294e-02   0.686  0.49253   
## Joursmercredi      4.847e-02  2.291e-02   2.116  0.03438 * 
## Jourssamedi        2.136e-02  2.288e-02   0.934  0.35037   
## Joursvendredi      3.382e-02  2.300e-02   1.471  0.14138   
## Vacances1         -3.571e-02  2.532e-02  -1.410  0.15844   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1401.9  on 1369  degrees of freedom
## Residual deviance: 1372.9  on 1352  degrees of freedom
##   (1078 observations deleted due to missingness)
## AIC: 8005.6
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $montpellier
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(year, df = 4) + 
##     ns(day, df = 4) + Jours + Vacances, family = poisson, data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.3764  -0.7399  -0.0579   0.5850   3.6815  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)  
## (Intercept)        3.535e+02  3.086e+02   1.145   0.2521  
## heat_wave          1.129e-01  1.213e-01   0.931   0.3517  
## no2moy             2.134e-03  1.564e-03   1.364   0.1726  
## ns(year, df = 4)1 -3.515e+02  3.085e+02  -1.139   0.2546  
## ns(year, df = 4)2 -2.523e+02  2.215e+02  -1.139   0.2546  
## ns(year, df = 4)3 -6.501e+02  5.700e+02  -1.141   0.2541  
## ns(year, df = 4)4 -1.526e+02  1.343e+02  -1.136   0.2560  
## ns(day, df = 4)1  -5.285e-02  6.665e-02  -0.793   0.4278  
## ns(day, df = 4)2  -3.339e-02  6.806e-02  -0.491   0.6237  
## ns(day, df = 4)3  -8.614e-02  1.243e-01  -0.693   0.4884  
## ns(day, df = 4)4   1.419e-04  5.598e-02   0.003   0.9980  
## Joursjeudi         2.149e-03  4.230e-02   0.051   0.9595  
## Jourslundi        -4.489e-02  4.176e-02  -1.075   0.2825  
## Joursmardi        -8.170e-03  4.189e-02  -0.195   0.8454  
## Joursmercredi     -6.028e-03  4.228e-02  -0.143   0.8866  
## Jourssamedi       -7.618e-02  4.248e-02  -1.793   0.0729 .
## Joursvendredi      2.974e-02  4.196e-02   0.709   0.4784  
## Vacances1          1.263e-02  4.620e-02   0.273   0.7845  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1409.4  on 1373  degrees of freedom
## Residual deviance: 1363.5  on 1356  degrees of freedom
##   (1074 observations deleted due to missingness)
## AIC: 6279.4
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $nancy
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(year, df = 4) + 
##     ns(day, df = 4) + Jours + Vacances, family = poisson, data = villes_s[[i]])
## 
## Deviance Residuals: 
##      Min        1Q    Median        3Q       Max  
## -2.87349  -0.78012  -0.08301   0.64760   2.79998  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)
## (Intercept)        4.001e+02  3.003e+02   1.332    0.183
## heat_wave          1.358e-01  1.038e-01   1.308    0.191
## no2moy             1.282e-03  2.024e-03   0.634    0.526
## ns(year, df = 4)1 -3.983e+02  3.002e+02  -1.327    0.185
## ns(year, df = 4)2 -2.858e+02  2.155e+02  -1.326    0.185
## ns(year, df = 4)3 -7.358e+02  5.547e+02  -1.327    0.185
## ns(year, df = 4)4 -1.733e+02  1.307e+02  -1.325    0.185
## ns(day, df = 4)1   5.642e-02  6.415e-02   0.879    0.379
## ns(day, df = 4)2  -9.234e-02  6.622e-02  -1.395    0.163
## ns(day, df = 4)3   1.347e-01  1.221e-01   1.103    0.270
## ns(day, df = 4)4   3.648e-02  5.559e-02   0.656    0.512
## Joursjeudi         1.062e-02  4.212e-02   0.252    0.801
## Jourslundi         5.273e-02  3.979e-02   1.325    0.185
## Joursmardi         9.798e-03  4.130e-02   0.237    0.812
## Joursmercredi      3.019e-02  4.168e-02   0.724    0.469
## Jourssamedi       -4.339e-02  4.163e-02  -1.042    0.297
## Joursvendredi      3.965e-02  4.203e-02   0.943    0.346
## Vacances1          2.722e-02  4.455e-02   0.611    0.541
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1437.2  on 1374  degrees of freedom
## Residual deviance: 1401.9  on 1357  degrees of freedom
##   (1073 observations deleted due to missingness)
## AIC: 6433.9
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $nantes
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(year, df = 4) + 
##     ns(day, df = 4) + Jours + Vacances, family = poisson, data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.3355  -0.7045  -0.0361   0.6052   3.8097  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)  
## (Intercept)        2.625e+02  2.455e+02   1.069   0.2849  
## heat_wave         -3.173e-02  1.877e-01  -0.169   0.8658  
## no2moy             4.295e-03  2.729e-03   1.574   0.1155  
## ns(year, df = 4)1 -2.602e+02  2.454e+02  -1.060   0.2891  
## ns(year, df = 4)2 -1.868e+02  1.762e+02  -1.060   0.2892  
## ns(year, df = 4)3 -4.806e+02  4.535e+02  -1.060   0.2893  
## ns(year, df = 4)4 -1.132e+02  1.069e+02  -1.060   0.2893  
## ns(day, df = 4)1  -1.830e-02  5.261e-02  -0.348   0.7279  
## ns(day, df = 4)2  -1.396e-01  5.495e-02  -2.541   0.0110 *
## ns(day, df = 4)3  -1.918e-01  9.625e-02  -1.993   0.0463 *
## ns(day, df = 4)4  -3.800e-02  5.015e-02  -0.758   0.4485  
## Joursjeudi         2.765e-02  3.473e-02   0.796   0.4259  
## Jourslundi         3.898e-02  3.370e-02   1.157   0.2474  
## Joursmardi         4.972e-02  3.438e-02   1.446   0.1481  
## Joursmercredi      8.019e-03  3.468e-02   0.231   0.8171  
## Jourssamedi       -5.815e-03  3.428e-02  -0.170   0.8653  
## Joursvendredi      2.198e-02  3.514e-02   0.626   0.5316  
## Vacances1         -2.169e-02  3.654e-02  -0.594   0.5528  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1381.2  on 1312  degrees of freedom
## Residual deviance: 1342.2  on 1295  degrees of freedom
##   (1135 observations deleted due to missingness)
## AIC: 6744
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $nice
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(year, df = 4) + 
##     ns(day, df = 4) + Jours + Vacances, family = poisson, data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.4136  -0.7459  -0.0684   0.6635   3.3109  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)  
## (Intercept)       -1.511e+02  2.304e+02  -0.656   0.5119  
## heat_wave          3.627e-02  1.016e-01   0.357   0.7211  
## no2moy            -1.996e-04  1.722e-03  -0.116   0.9077  
## ns(year, df = 4)1  1.536e+02  2.303e+02   0.667   0.5050  
## ns(year, df = 4)2  1.102e+02  1.654e+02   0.667   0.5050  
## ns(year, df = 4)3  2.833e+02  4.255e+02   0.666   0.5055  
## ns(year, df = 4)4  6.704e+01  1.003e+02   0.669   0.5038  
## ns(day, df = 4)1  -3.664e-02  4.911e-02  -0.746   0.4556  
## ns(day, df = 4)2  -3.635e-02  5.053e-02  -0.719   0.4719  
## ns(day, df = 4)3  -1.038e-01  9.252e-02  -1.122   0.2621  
## ns(day, df = 4)4   3.358e-02  4.061e-02   0.827   0.4082  
## Joursjeudi        -7.283e-03  3.274e-02  -0.222   0.8240  
## Jourslundi         4.576e-02  3.088e-02   1.482   0.1384  
## Joursmardi         1.439e-02  3.210e-02   0.448   0.6540  
## Joursmercredi      1.086e-02  3.254e-02   0.334   0.7385  
## Jourssamedi        4.630e-02  3.158e-02   1.466   0.1427  
## Joursvendredi      6.999e-02  3.229e-02   2.168   0.0302 *
## Vacances1         -4.429e-03  3.426e-02  -0.129   0.8972  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1437.6  on 1358  degrees of freedom
## Residual deviance: 1418.1  on 1341  degrees of freedom
##   (1089 observations deleted due to missingness)
## AIC: 7146.3
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $paris
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(year, df = 4) + 
##     ns(day, df = 4) + Jours + Vacances, family = poisson, data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.2600  -0.8119  -0.0253   0.7216   3.9448  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)    
## (Intercept)       -57.552542  75.280886  -0.765  0.44457    
## heat_wave           0.205802   0.029358   7.010 2.38e-12 ***
## no2moy              0.003221   0.000375   8.590  < 2e-16 ***
## ns(year, df = 4)1  62.035059  75.260833   0.824  0.40979    
## ns(year, df = 4)2  44.561061  54.032405   0.825  0.40954    
## ns(year, df = 4)3 114.518454 139.047642   0.824  0.41017    
## ns(year, df = 4)4  27.069876  32.769941   0.826  0.40877    
## ns(day, df = 4)1    0.034865   0.016737   2.083  0.03724 *  
## ns(day, df = 4)2   -0.044518   0.017409  -2.557  0.01055 *  
## ns(day, df = 4)3   -0.092045   0.030376  -3.030  0.00244 ** 
## ns(day, df = 4)4   -0.033879   0.014614  -2.318  0.02043 *  
## Joursjeudi          0.034876   0.010775   3.237  0.00121 ** 
## Jourslundi          0.045538   0.010368   4.392 1.12e-05 ***
## Joursmardi          0.028416   0.010663   2.665  0.00770 ** 
## Joursmercredi       0.017402   0.010815   1.609  0.10761    
## Jourssamedi         0.017450   0.010550   1.654  0.09812 .  
## Joursvendredi       0.012312   0.010829   1.137  0.25558    
## Vacances1          -0.027028   0.011526  -2.345  0.01903 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1995.9  on 1376  degrees of freedom
## Residual deviance: 1746.2  on 1359  degrees of freedom
##   (1071 observations deleted due to missingness)
## AIC: 10598
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $rennes
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(year, df = 4) + 
##     ns(day, df = 4) + Jours + Vacances, family = poisson, data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -2.7793  -0.7885  -0.1147   0.6015   3.7935  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)  
## (Intercept)       -5.809e+02  3.966e+02  -1.465   0.1430  
## heat_wave         -2.256e-01  3.360e-01  -0.671   0.5019  
## no2moy            -4.251e-03  3.179e-03  -1.337   0.1812  
## ns(year, df = 4)1  5.819e+02  3.965e+02   1.468   0.1422  
## ns(year, df = 4)2  4.179e+02  2.847e+02   1.468   0.1421  
## ns(year, df = 4)3  1.076e+03  7.326e+02   1.468   0.1420  
## ns(year, df = 4)4  2.534e+02  1.726e+02   1.468   0.1422  
## ns(day, df = 4)1  -2.045e-02  8.552e-02  -0.239   0.8110  
## ns(day, df = 4)2  -1.299e-01  8.984e-02  -1.446   0.1482  
## ns(day, df = 4)3  -5.702e-02  1.592e-01  -0.358   0.7201  
## ns(day, df = 4)4   6.703e-02  7.469e-02   0.897   0.3695  
## Joursjeudi         1.219e-01  5.642e-02   2.160   0.0308 *
## Jourslundi         1.164e-01  5.324e-02   2.187   0.0287 *
## Joursmardi         1.007e-01  5.544e-02   1.816   0.0693 .
## Joursmercredi      1.868e-02  5.695e-02   0.328   0.7429  
## Jourssamedi        9.884e-02  5.484e-02   1.802   0.0715 .
## Joursvendredi     -1.509e-02  5.846e-02  -0.258   0.7963  
## Vacances1         -3.572e-03  5.952e-02  -0.060   0.9521  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1280.2  on 1333  degrees of freedom
## Residual deviance: 1245.8  on 1316  degrees of freedom
##   (1114 observations deleted due to missingness)
## AIC: 5355.7
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $rouen
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(year, df = 4) + 
##     ns(day, df = 4) + Jours + Vacances, family = poisson, data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.3053  -0.6869  -0.0927   0.6022   3.6039  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)   
## (Intercept)        2.426e+02  2.475e+02   0.980  0.32709   
## heat_wave          1.175e-01  1.306e-01   0.899  0.36857   
## no2moy             4.840e-03  2.305e-03   2.100  0.03574 * 
## ns(year, df = 4)1 -2.404e+02  2.474e+02  -0.972  0.33129   
## ns(year, df = 4)2 -1.726e+02  1.776e+02  -0.972  0.33120   
## ns(year, df = 4)3 -4.441e+02  4.572e+02  -0.971  0.33131   
## ns(year, df = 4)4 -1.046e+02  1.077e+02  -0.971  0.33177   
## ns(day, df = 4)1   3.533e-02  5.384e-02   0.656  0.51167   
## ns(day, df = 4)2  -1.330e-01  5.568e-02  -2.388  0.01693 * 
## ns(day, df = 4)3  -8.991e-02  1.009e-01  -0.891  0.37306   
## ns(day, df = 4)4  -3.618e-02  4.865e-02  -0.744  0.45711   
## Joursjeudi         3.074e-02  3.730e-02   0.824  0.40987   
## Jourslundi         4.520e-02  3.452e-02   1.310  0.19035   
## Joursmardi         4.365e-02  3.669e-02   1.190  0.23423   
## Joursmercredi      9.684e-02  3.688e-02   2.626  0.00864 **
## Jourssamedi        7.445e-02  3.505e-02   2.124  0.03364 * 
## Joursvendredi      3.697e-02  3.728e-02   0.992  0.32144   
## Vacances1         -1.880e-02  3.743e-02  -0.502  0.61546   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1340.4  on 1376  degrees of freedom
## Residual deviance: 1290.1  on 1359  degrees of freedom
##   (1071 observations deleted due to missingness)
## AIC: 6843.6
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $strasbourg
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(year, df = 4) + 
##     ns(day, df = 4) + Jours + Vacances, family = poisson, data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.2143  -0.7537  -0.0338   0.6033   3.9679  
## 
## Coefficients:
##                    Estimate Std. Error z value Pr(>|z|)    
## (Intercept)        2.045999   0.053061  38.559  < 2e-16 ***
## heat_wave          0.428621   0.048577   8.824  < 2e-16 ***
## no2moy             0.002866   0.001238   2.315  0.02063 *  
## ns(year, df = 4)1 -0.054382   0.035664  -1.525  0.12730    
## ns(year, df = 4)2  0.006667   0.034711   0.192  0.84769    
## ns(year, df = 4)3 -0.096197   0.062648  -1.536  0.12466    
## ns(year, df = 4)4  0.086502   0.032060   2.698  0.00697 ** 
## ns(day, df = 4)1   0.093010   0.045788   2.031  0.04222 *  
## ns(day, df = 4)2  -0.028200   0.045741  -0.617  0.53756    
## ns(day, df = 4)3  -0.048604   0.078840  -0.616  0.53757    
## ns(day, df = 4)4   0.018223   0.036685   0.497  0.61937    
## Joursjeudi        -0.033571   0.028650  -1.172  0.24129    
## Jourslundi         0.038508   0.026831   1.435  0.15123    
## Joursmardi         0.011085   0.027842   0.398  0.69054    
## Joursmercredi      0.031227   0.028141   1.110  0.26716    
## Jourssamedi       -0.028417   0.027807  -1.022  0.30681    
## Joursvendredi     -0.010227   0.028485  -0.359  0.71958    
## Vacances1         -0.042888   0.031046  -1.381  0.16715    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 2652.8  on 2443  degrees of freedom
## Residual deviance: 2531.3  on 2426  degrees of freedom
##   (4 observations deleted due to missingness)
## AIC: 11997
## 
## Number of Fisher Scoring iterations: 4
## 
## 
## $toulouse
## 
## Call:
## glm(formula = nocc_tot ~ heat_wave + no2moy + ns(year, df = 4) + 
##     ns(day, df = 4) + Jours + Vacances, family = poisson, data = villes_s[[i]])
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.3675  -0.7421  -0.0525   0.6487   3.3187  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)
## (Intercept)       -1.564e+02  2.230e+02  -0.701    0.483
## heat_wave          9.891e-02  9.266e-02   1.067    0.286
## no2moy             1.816e-03  1.480e-03   1.227    0.220
## ns(year, df = 4)1  1.587e+02  2.230e+02   0.712    0.477
## ns(year, df = 4)2  1.140e+02  1.601e+02   0.712    0.476
## ns(year, df = 4)3  2.933e+02  4.120e+02   0.712    0.477
## ns(year, df = 4)4  6.921e+01  9.709e+01   0.713    0.476
## ns(day, df = 4)1  -3.182e-02  4.837e-02  -0.658    0.511
## ns(day, df = 4)2  -4.446e-02  4.966e-02  -0.895    0.371
## ns(day, df = 4)3  -1.228e-01  9.026e-02  -1.361    0.174
## ns(day, df = 4)4   3.068e-02  4.179e-02   0.734    0.463
## Joursjeudi         1.396e-02  3.172e-02   0.440    0.660
## Jourslundi         4.543e-02  3.032e-02   1.498    0.134
## Joursmardi         9.546e-03  3.132e-02   0.305    0.761
## Joursmercredi      4.468e-02  3.155e-02   1.416    0.157
## Jourssamedi        2.003e-02  3.075e-02   0.651    0.515
## Joursvendredi      3.899e-02  3.141e-02   1.242    0.214
## Vacances1         -4.267e-02  3.345e-02  -1.276    0.202
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1478.9  on 1376  degrees of freedom
## Residual deviance: 1439.2  on 1359  degrees of freedom
##   (1071 observations deleted due to missingness)
## AIC: 7287.6
## 
## Number of Fisher Scoring iterations: 4

I tried to fit a model with 5 df for the long term trend but there were still some collineatiry problems in some cities. A model with 4 df for long term trend seems OK.

A penalized cubic spline function of time to control for seasonality and for the long-term temporal trend.

The degree of smoothness is determined by minimization of the absolute value of the sum of the partial autocorrelation function of the model’s residuals from lag 0 to lag 30. The model is constrained to use at least 3 degrees of freedom per year in case the minimization of the sum of the partial autocorrelation function led to smaller values

see Hertel et al. 2009, Pascal et al. 2021, Touloumi et al. 2006. This is SpF’s approach

Estimation of smoothing parameter:

## Indicate the location of the script of the PSAS function 
source('C:/Users/Anna/Dropbox/Noemie/PSAS_optimate_pacf-3df.r')


Sparameter<- matrix(NA,length(villes_s),1,
                    dimnames=list(names))

for (i in 1:18){
# EXTRACT THE DATA
data <- villes_s[[i]]
data<-na.omit(data[, c("nocc_tot", "heat_wave", "no2moy", "time", "Jours", "Vacances")])
data$morta<-data$nocc_tot
mod.formula<-quote(morta~heat_wave+no2moy+s(time,k=nk,bs="cr",fx=FALSE)+Jours+Vacances)
# fonction for selection of smoothing parameter
mod <- iterate.model(model.dat = data, pind = 0:30, dsp = c(2, 4, 6), formul = mod.formula)  
#Save value of smoothing parameter for each city
Sparameter[i,]<-mod$bestspc
}
## Warning in gam.fit3(x = args$X, y = args$y, sp = lsp, Eb = args$Eb, UrS =
## args$UrS, : Algorithm did not converge

MODEL WITH SELECTED SMOOTHING PARAMETER:

m3.outcome<-list()
nk<-round(20*length(villes_s[[i]]$nocc_tot)/153.25) # max 20 df per warm season
  
for (i in 1:18){
m3.outcome[[i]]<-gam(nocc_tot~heat_wave+no2moy+s(time,k=nk,bs="cr",fx=FALSE)+Jours+Vacances,sp = 10^Sparameter[i,], data=villes_s[[i]],family=poisson)
}

names(m3.outcome)<-names 

lapply(m3.outcome,function(x){summary(x)})
## $BM
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + s(time, k = nk, bs = "cr", fx = FALSE) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    1.960926   0.040816  48.043  < 2e-16 ***
## heat_wave     -0.034981   0.167269  -0.209  0.83435    
## no2moy         0.001260   0.001804   0.698  0.48494    
## Joursjeudi     0.057627   0.039469   1.460  0.14427    
## Jourslundi     0.091476   0.038872   2.353  0.01861 *  
## Joursmardi     0.099309   0.039174   2.535  0.01124 *  
## Joursmercredi  0.093617   0.039447   2.373  0.01763 *  
## Jourssamedi    0.024402   0.039525   0.617  0.53699    
## Joursvendredi  0.118516   0.039173   3.025  0.00248 ** 
## Vacances1      0.020375   0.028572   0.713  0.47578    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Approximate significance of smooth terms:
##           edf Ref.df Chi.sq p-value
## s(time) 20.92  26.09  29.34   0.305
## 
## R-sq.(adj) =  0.0189   Deviance explained = 4.15%
## UBRE = 0.11569  Scale est. = 1         n = 1211
## 
## $bordeaux
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + s(time, k = nk, bs = "cr", fx = FALSE) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    2.393451   0.028821  83.045   <2e-16 ***
## heat_wave      0.214685   0.109797   1.955   0.0505 .  
## no2moy         0.002226   0.001698   1.310   0.1901    
## Joursjeudi     0.048951   0.031285   1.565   0.1177    
## Jourslundi     0.064198   0.029841   2.151   0.0314 *  
## Joursmardi     0.042308   0.030820   1.373   0.1698    
## Joursmercredi  0.029528   0.031370   0.941   0.3466    
## Jourssamedi    0.044083   0.030391   1.451   0.1469    
## Joursvendredi  0.045081   0.031295   1.441   0.1497    
## Vacances1     -0.017546   0.019826  -0.885   0.3762    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Approximate significance of smooth terms:
##           edf Ref.df Chi.sq p-value  
## s(time) 17.59  21.94  31.26  0.0865 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## R-sq.(adj) =  0.0167   Deviance explained =  3.5%
## UBRE = 0.084555  Scale est. = 1         n = 1377
## 
## $clermont
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + s(time, k = nk, bs = "cr", fx = FALSE) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                 Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    1.6322987  0.0340091  47.996  < 2e-16 ***
## heat_wave      0.3971615  0.0766642   5.181 2.21e-07 ***
## no2moy         0.0008577  0.0015172   0.565    0.572    
## Joursjeudi    -0.0085380  0.0346962  -0.246    0.806    
## Jourslundi     0.0207839  0.0332065   0.626    0.531    
## Joursmardi     0.0099898  0.0340921   0.293    0.770    
## Joursmercredi  0.0197694  0.0344866   0.573    0.566    
## Jourssamedi   -0.0070525  0.0340421  -0.207    0.836    
## Joursvendredi  0.0178925  0.0346995   0.516    0.606    
## Vacances1     -0.0150403  0.0196428  -0.766    0.444    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Approximate significance of smooth terms:
##           edf Ref.df Chi.sq p-value
## s(time) 21.05  26.26  24.74   0.561
## 
## R-sq.(adj) =  0.0176   Deviance explained = 2.66%
## UBRE = 0.011752  Scale est. = 1         n = 2431
## 
## $dijon
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + s(time, k = nk, bs = "cr", fx = FALSE) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##               Estimate Std. Error z value Pr(>|z|)    
## (Intercept)   1.298021   0.041416  31.341  < 2e-16 ***
## heat_wave     0.376669   0.076170   4.945 7.61e-07 ***
## no2moy        0.005053   0.001948   2.594  0.00948 ** 
## Joursjeudi    0.025490   0.039257   0.649  0.51613    
## Jourslundi    0.028457   0.037745   0.754  0.45089    
## Joursmardi    0.048837   0.038627   1.264  0.20611    
## Joursmercredi 0.038217   0.039146   0.976  0.32893    
## Jourssamedi   0.057696   0.038219   1.510  0.13115    
## Joursvendredi 0.049907   0.039411   1.266  0.20539    
## Vacances1     0.028999   0.021647   1.340  0.18038    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Approximate significance of smooth terms:
##           edf Ref.df Chi.sq p-value  
## s(time) 20.88  26.05  45.54  0.0107 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## R-sq.(adj) =  0.031   Deviance explained = 3.87%
## UBRE = 0.0069713  Scale est. = 1         n = 2417
## 
## $grenoble
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + s(time, k = nk, bs = "cr", fx = FALSE) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    1.915749   0.042343  45.244   <2e-16 ***
## heat_wave      0.119402   0.091784   1.301   0.1933    
## no2moy         0.008165   0.002522   3.238   0.0012 ** 
## Joursjeudi    -0.037549   0.039309  -0.955   0.3395    
## Jourslundi    -0.027763   0.037516  -0.740   0.4593    
## Joursmardi    -0.068325   0.039523  -1.729   0.0839 .  
## Joursmercredi -0.047735   0.039552  -1.207   0.2275    
## Jourssamedi    0.011966   0.037668   0.318   0.7507    
## Joursvendredi -0.044201   0.039522  -1.118   0.2634    
## Vacances1     -0.032640   0.025216  -1.294   0.1955    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Approximate significance of smooth terms:
##           edf Ref.df Chi.sq  p-value    
## s(time) 17.28  21.55  68.64 8.99e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## R-sq.(adj) =  0.0455   Deviance explained = 6.16%
## UBRE = 0.062953  Scale est. = 1         n = 1377
## 
## $lehavre
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + s(time, k = nk, bs = "cr", fx = FALSE) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    1.663836   0.041222  40.362   <2e-16 ***
## heat_wave      0.194262   0.151772   1.280    0.201    
## no2moy         0.002414   0.001630   1.481    0.139    
## Joursjeudi    -0.028138   0.044224  -0.636    0.525    
## Jourslundi    -0.042561   0.044061  -0.966    0.334    
## Joursmardi     0.027754   0.043546   0.637    0.524    
## Joursmercredi -0.024828   0.044246  -0.561    0.575    
## Jourssamedi   -0.069211   0.044605  -1.552    0.121    
## Joursvendredi -0.030690   0.044307  -0.693    0.489    
## Vacances1     -0.009456   0.029930  -0.316    0.752    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Approximate significance of smooth terms:
##           edf Ref.df Chi.sq p-value
## s(time) 19.11  23.87  13.56   0.953
## 
## R-sq.(adj) =  0.00353   Deviance explained = 2.33%
## UBRE = 0.064208  Scale est. = 1         n = 1351
## 
## $lille
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + s(time, k = nk, bs = "cr", fx = FALSE) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                 Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    2.8997674  0.0223114 129.968  < 2e-16 ***
## heat_wave      0.0626723  0.0556270   1.127  0.25989    
## no2moy         0.0029463  0.0009497   3.103  0.00192 ** 
## Joursjeudi     0.0007684  0.0208749   0.037  0.97064    
## Jourslundi     0.0475343  0.0198549   2.394  0.01666 *  
## Joursmardi     0.0238807  0.0203980   1.171  0.24170    
## Joursmercredi  0.0004466  0.0207619   0.022  0.98284    
## Jourssamedi   -0.0284817  0.0204927  -1.390  0.16457    
## Joursvendredi -0.0057894  0.0209544  -0.276  0.78233    
## Vacances1     -0.0097087  0.0124170  -0.782  0.43428    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Approximate significance of smooth terms:
##           edf Ref.df Chi.sq p-value
## s(time) 18.82  23.46  14.65    0.93
## 
## R-sq.(adj) =  0.0119   Deviance explained = 2.67%
## UBRE = 0.052897  Scale est. = 1         n = 1834
## 
## $lyon
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + s(time, k = nk, bs = "cr", fx = FALSE) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                 Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    2.7753268  0.0250934 110.600  < 2e-16 ***
## heat_wave      0.1475810  0.0734406   2.010  0.04448 *  
## no2moy         0.0015494  0.0009026   1.716  0.08608 .  
## Joursjeudi     0.0296039  0.0259161   1.142  0.25333    
## Jourslundi     0.0199157  0.0247749   0.804  0.42147    
## Joursmardi     0.0382665  0.0252951   1.513  0.13033    
## Joursmercredi  0.0081095  0.0258196   0.314  0.75346    
## Jourssamedi   -0.0210685  0.0253366  -0.832  0.40567    
## Joursvendredi  0.0704334  0.0255936   2.752  0.00592 ** 
## Vacances1     -0.0097522  0.0159895  -0.610  0.54192    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Approximate significance of smooth terms:
##           edf Ref.df Chi.sq p-value  
## s(time) 17.39   21.7  38.86  0.0136 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## R-sq.(adj) =  0.0348   Deviance explained = 5.26%
## UBRE = 0.068193  Scale est. = 1         n = 1377
## 
## $marseille
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + s(time, k = nk, bs = "cr", fx = FALSE) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                 Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    2.9428365  0.0229967 127.968   <2e-16 ***
## heat_wave      0.0012538  0.0690344   0.018   0.9855    
## no2moy         0.0010823  0.0005494   1.970   0.0488 *  
## Joursjeudi     0.0357184  0.0230020   1.553   0.1205    
## Jourslundi     0.0111037  0.0228415   0.486   0.6269    
## Joursmardi     0.0186111  0.0229181   0.812   0.4168    
## Joursmercredi  0.0516450  0.0228740   2.258   0.0240 *  
## Jourssamedi    0.0237333  0.0228696   1.038   0.2994    
## Joursvendredi  0.0375135  0.0229863   1.632   0.1027    
## Vacances1     -0.0176099  0.0143464  -1.227   0.2196    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Approximate significance of smooth terms:
##           edf Ref.df Chi.sq p-value
## s(time) 16.87  21.04  17.56   0.672
## 
## R-sq.(adj) =  0.0116   Deviance explained = 3.03%
## UBRE = 0.031527  Scale est. = 1         n = 1370
## 
## $montpellier
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + s(time, k = nk, bs = "cr", fx = FALSE) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                 Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    1.7355312  0.0432335  40.143   <2e-16 ***
## heat_wave      0.0893222  0.1238388   0.721   0.4707    
## no2moy         0.0023962  0.0015111   1.586   0.1128    
## Joursjeudi     0.0008739  0.0421739   0.021   0.9835    
## Jourslundi    -0.0454405  0.0417534  -1.088   0.2765    
## Joursmardi    -0.0097971  0.0418114  -0.234   0.8147    
## Joursmercredi -0.0074736  0.0421751  -0.177   0.8593    
## Jourssamedi   -0.0767754  0.0424347  -1.809   0.0704 .  
## Joursvendredi  0.0286448  0.0418444   0.685   0.4936    
## Vacances1      0.0067220  0.0267355   0.251   0.8015    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Approximate significance of smooth terms:
##           edf Ref.df Chi.sq p-value   
## s(time) 17.04  21.25  39.75 0.00879 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## R-sq.(adj) =  0.0225   Deviance explained = 3.94%
## UBRE = 0.024751  Scale est. = 1         n = 1374
## 
## $nancy
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + s(time, k = nk, bs = "cr", fx = FALSE) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                 Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    1.8250390  0.0470506  38.789   <2e-16 ***
## heat_wave      0.1118143  0.1056383   1.058    0.290    
## no2moy         0.0009841  0.0018996   0.518    0.604    
## Joursjeudi     0.0094699  0.0417739   0.227    0.821    
## Jourslundi     0.0525954  0.0397725   1.322    0.186    
## Joursmardi     0.0093100  0.0410715   0.227    0.821    
## Joursmercredi  0.0295712  0.0413677   0.715    0.475    
## Jourssamedi   -0.0427881  0.0414682  -1.032    0.302    
## Joursvendredi  0.0398174  0.0416770   0.955    0.339    
## Vacances1     -0.0186873  0.0259093  -0.721    0.471    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Approximate significance of smooth terms:
##           edf Ref.df Chi.sq p-value
## s(time) 16.88  21.05  29.07   0.112
## 
## R-sq.(adj) =  0.0167   Deviance explained = 3.37%
## UBRE = 0.049067  Scale est. = 1         n = 1375
## 
## $nantes
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + s(time, k = nk, bs = "cr", fx = FALSE) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    2.257007   0.033461  67.452   <2e-16 ***
## heat_wave     -0.003881   0.188806  -0.021   0.9836    
## no2moy         0.001524   0.002293   0.665   0.5063    
## Joursjeudi     0.038837   0.034146   1.137   0.2554    
## Jourslundi     0.041272   0.033640   1.227   0.2199    
## Joursmardi     0.058714   0.033964   1.729   0.0839 .  
## Joursmercredi  0.017907   0.034159   0.524   0.6001    
## Jourssamedi    0.001980   0.034036   0.058   0.9536    
## Joursvendredi  0.034672   0.034459   1.006   0.3143    
## Vacances1     -0.037882   0.022658  -1.672   0.0946 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Approximate significance of smooth terms:
##           edf Ref.df Chi.sq p-value
## s(time) 18.27  22.79  16.84   0.807
## 
## R-sq.(adj) =  0.00857   Deviance explained = 2.88%
## UBRE = 0.06472  Scale est. = 1         n = 1313
## 
## $nice
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + s(time, k = nk, bs = "cr", fx = FALSE) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                 Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    2.3496714  0.0404270  58.121   <2e-16 ***
## heat_wave      0.0121829  0.1025389   0.119   0.9054    
## no2moy         0.0006866  0.0017411   0.394   0.6933    
## Joursjeudi    -0.0127974  0.0327325  -0.391   0.6958    
## Jourslundi     0.0444377  0.0308636   1.440   0.1499    
## Joursmardi     0.0101839  0.0320985   0.317   0.7510    
## Joursmercredi  0.0054781  0.0325423   0.168   0.8663    
## Jourssamedi    0.0427854  0.0315858   1.355   0.1756    
## Joursvendredi  0.0644747  0.0323195   1.995   0.0461 *  
## Vacances1     -0.0051745  0.0195157  -0.265   0.7909    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Approximate significance of smooth terms:
##           edf Ref.df Chi.sq p-value
## s(time) 16.94  21.13  13.95   0.876
## 
## R-sq.(adj) =  0.00318   Deviance explained = 2.18%
## UBRE = 0.074442  Scale est. = 1         n = 1359
## 
## $paris
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + s(time, k = nk, bs = "cr", fx = FALSE) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                 Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    4.4741762  0.0114780 389.804  < 2e-16 ***
## heat_wave      0.2172572  0.0295601   7.350 1.99e-13 ***
## no2moy         0.0028079  0.0003472   8.087 6.13e-16 ***
## Joursjeudi     0.0389631  0.0106668   3.653 0.000259 ***
## Jourslundi     0.0466236  0.0103570   4.502 6.74e-06 ***
## Joursmardi     0.0316313  0.0105858   2.988 0.002807 ** 
## Joursmercredi  0.0212186  0.0107093   1.981 0.047556 *  
## Jourssamedi    0.0199926  0.0105134   1.902 0.057220 .  
## Joursvendredi  0.0163264  0.0107368   1.521 0.128362    
## Vacances1     -0.0168272  0.0068664  -2.451 0.014259 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Approximate significance of smooth terms:
##           edf Ref.df Chi.sq p-value  
## s(time) 17.29  21.57  36.24   0.025 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## R-sq.(adj) =  0.107   Deviance explained = 12.3%
## UBRE = 0.31152  Scale est. = 1         n = 1377
## 
## $rennes
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + s(time, k = nk, bs = "cr", fx = FALSE) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    1.305296   0.051557  25.318   <2e-16 ***
## heat_wave     -0.211266   0.337507  -0.626   0.5313    
## no2moy        -0.003458   0.003026  -1.143   0.2531    
## Joursjeudi     0.115910   0.055968   2.071   0.0384 *  
## Jourslundi     0.115086   0.053210   2.163   0.0306 *  
## Joursmardi     0.096293   0.055156   1.746   0.0808 .  
## Joursmercredi  0.013119   0.056579   0.232   0.8166    
## Jourssamedi    0.095242   0.054652   1.743   0.0814 .  
## Joursvendredi -0.020420   0.058040  -0.352   0.7250    
## Vacances1     -0.040034   0.035513  -1.127   0.2596    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Approximate significance of smooth terms:
##           edf Ref.df Chi.sq p-value
## s(time) 16.98  21.16  20.54   0.498
## 
## R-sq.(adj) =  0.0175   Deviance explained = 3.64%
## UBRE = -0.034831  Scale est. = 1         n = 1334
## 
## $rouen
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + s(time, k = nk, bs = "cr", fx = FALSE) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    2.114649   0.040884  51.723   <2e-16 ***
## heat_wave      0.156501   0.131729   1.188   0.2348    
## no2moy         0.002599   0.002029   1.281   0.2002    
## Joursjeudi     0.044606   0.036406   1.225   0.2205    
## Jourslundi     0.049090   0.034402   1.427   0.1536    
## Joursmardi     0.056223   0.035973   1.563   0.1181    
## Joursmercredi  0.110583   0.035953   3.076   0.0021 ** 
## Jourssamedi    0.083440   0.034710   2.404   0.0162 *  
## Joursvendredi  0.051751   0.036435   1.420   0.1555    
## Vacances1     -0.040124   0.021992  -1.824   0.0681 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Approximate significance of smooth terms:
##           edf Ref.df Chi.sq p-value
## s(time) 17.27  21.54  22.68   0.401
## 
## R-sq.(adj) =  0.0234   Deviance explained = 4.18%
## UBRE = -0.027652  Scale est. = 1         n = 1377
## 
## $strasbourg
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + s(time, k = nk, bs = "cr", fx = FALSE) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    2.007759   0.031261  64.226   <2e-16 ***
## heat_wave      0.426074   0.049199   8.660   <2e-16 ***
## no2moy         0.002427   0.001157   2.098   0.0359 *  
## Joursjeudi    -0.028982   0.028397  -1.021   0.3074    
## Jourslundi     0.039899   0.026816   1.488   0.1368    
## Joursmardi     0.015057   0.027673   0.544   0.5864    
## Joursmercredi  0.035908   0.027897   1.287   0.1980    
## Jourssamedi   -0.025635   0.027703  -0.925   0.3548    
## Joursvendredi -0.005768   0.028257  -0.204   0.8382    
## Vacances1     -0.019862   0.015766  -1.260   0.2077    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Approximate significance of smooth terms:
##           edf Ref.df Chi.sq p-value  
## s(time) 20.16  25.15  44.24  0.0113 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## R-sq.(adj) =  0.0526   Deviance explained = 5.75%
## UBRE = 0.047649  Scale est. = 1         n = 2444
## 
## $toulouse
## 
## Family: poisson 
## Link function: log 
## 
## Formula:
## nocc_tot ~ heat_wave + no2moy + s(time, k = nk, bs = "cr", fx = FALSE) + 
##     Jours + Vacances
## 
## Parametric coefficients:
##                Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    2.381047   0.028681  83.018   <2e-16 ***
## heat_wave      0.092850   0.093415   0.994   0.3202    
## no2moy         0.001935   0.001397   1.385   0.1662    
## Joursjeudi     0.013012   0.031491   0.413   0.6795    
## Jourslundi     0.044996   0.030294   1.485   0.1375    
## Joursmardi     0.008981   0.031156   0.288   0.7732    
## Joursmercredi  0.043643   0.031323   1.393   0.1635    
## Jourssamedi    0.019681   0.030681   0.641   0.5212    
## Joursvendredi  0.038186   0.031216   1.223   0.2212    
## Vacances1     -0.044426   0.019810  -2.243   0.0249 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Approximate significance of smooth terms:
##           edf Ref.df Chi.sq p-value  
## s(time) 17.53  21.87  34.25  0.0436 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## R-sq.(adj) =  0.0205   Deviance explained = 3.89%
## UBRE = 0.072207  Scale est. = 1         n = 1377
lapply(m3.outcome,function(x){AIC(x)})
## $BM
## [1] 6005.373
## 
## $bordeaux
## [1] 7359.445
## 
## $clermont
## [1] 10779.16
## 
## $dijon
## [1] 10157.45
## 
## $grenoble
## [1] 6669.436
## 
## $lehavre
## [1] 6088.569
## 
## $lille
## [1] 10697.05
## 
## $lyon
## [1] 7866.877
## 
## $marseille
## [1] 8009.84
## 
## $montpellier
## [1] 6287.869
## 
## $nancy
## [1] 6438.482
## 
## $nantes
## [1] 6763.765
## 
## $nice
## [1] 7152.394
## 
## $paris
## [1] 10621.77
## 
## $rennes
## [1] 5361.49
## 
## $rouen
## [1] 6856.424
## 
## $strasbourg
## [1] 11990.28
## 
## $toulouse
## [1] 7288.916

There is also a last approach with GEE, that assumed independence between successive warm seasons and specified a first-order autoregressive structure to account for the correlation of daily outcomes within each warm season. (Williams et al. 2012, D’Ippoliti et al. 2012, Baccini et al. 2008; Fouillet et al. 2007, Michelozzi et al. 2009)