Problem with line 219

Temperature Data Management

Creating Database only with summer months

table of N obs per months to check to have only summer month

## 
##   1   2   3   4   5   6   7   8   9  10  11  12 
##   0   0   0   0   0 480 496 496 480   0   0   0 
## 
##   1   2   3   4   5   6   7   8   9  10  11  12 
##   0   0   0   0   0 480 496 496 480   0   0   0 
## 
##   1   2   3   4   5   6   7   8   9  10  11  12 
##   0   0   0   0   0 480 496 496 480   0   0   0 
## 
##   1   2   3   4   5   6   7   8   9  10  11  12 
##   0   0   0   0   0 480 496 496 480   0   0   0 
## 
##   1   2   3   4   5   6   7   8   9  10  11  12 
##   0   0   0   0   0 480 496 496 480   0   0   0 
## 
##   1   2   3   4   5   6   7   8   9  10  11  12 
##   0   0   0   0   0 480 496 496 480   0   0   0 
## 
##   1   2   3   4   5   6   7   8   9  10  11  12 
##   0   0   0   0   0 480 496 496 480   0   0   0 
## 
##   1   2   3   4   5   6   7   8   9  10  11  12 
##   0   0   0   0   0 480 496 496 480   0   0   0 
## 
##   1   2   3   4   5   6   7   8   9  10  11  12 
##   0   0   0   0   0 480 496 496 480   0   0   0 
## 
##   1   2   3   4   5   6   7   8   9  10  11  12 
##   0   0   0   0   0 480 496 496 480   0   0   0 
## 
##   1   2   3   4   5   6   7   8   9  10  11  12 
##   0   0   0   0   0 480 496 496 480   0   0   0 
## 
##   1   2   3   4   5   6   7   8   9  10  11  12 
##   0   0   0   0   0 480 496 496 480   0   0   0 
## 
##   1   2   3   4   5   6   7   8   9  10  11  12 
##   0   0   0   0   0 480 496 496 480   0   0   0 
## 
##   1   2   3   4   5   6   7   8   9  10  11  12 
##   0   0   0   0   0 480 496 496 480   0   0   0 
## 
##   1   2   3   4   5   6   7   8   9  10  11  12 
##   0   0   0   0   0 480 496 496 480   0   0   0

Creation of Heat Wave Variable

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

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

 

Number of Heat Wave for each city:

Heat wave=0 Heat wave=1
bordeaux 1924 26
clermont 1926 24
grenoble 1914 36
lehavre 1927 23
lyon 1918 32
marseille 1915 35
montpellier 1922 28
nancy 1918 32
nantes 1926 24
nice 1924 26
paris 1923 27
rennes 1918 32
rouen 1925 25
strasbourg 1912 38
toulouse 1921 29

Descriptive Statistics

Number of Observations for each urban agglomeration:
V1 V2
bordeaux 1927
clermont 1944
grenoble 1935
lehavre 1943
lyon 1950
marseille 1948
montpellier 1937
nancy 1948
nantes 1950
nice 1948
paris 1950
rennes 1909
rouen 1950
strasbourg 1947
toulouse 1950
Temperature and Ozone statistics per City
Temperature
Ozone
city Temp 25 Perc Mean Temp Temp 75 Perc o3 25 Perc Mean o3 o3 75 Perc
bordeaux 17.95 20.29 22.30 52.44 65.02 76.18
clermont 16.35 19.00 21.50 53.17 65.23 76.07
grenoble 16.30 18.76 21.35 42.21 57.83 71.98
lehavre 15.26 16.97 18.20 51.40 60.67 68.09
lyon 18.00 20.71 23.38 46.44 61.52 75.30
marseille 21.18 23.25 25.32 59.62 70.45 80.98
montpellier 20.70 22.62 24.60 62.50 73.17 83.70
nancy 15.70 18.20 20.76 38.84 52.01 62.28
nantes 16.33 18.42 20.23 50.22 62.75 72.59
nice 21.25 22.96 24.70 66.13 77.64 89.11
paris 16.67 19.18 21.36 40.24 52.58 62.78
rennes 15.90 17.93 19.75 42.07 54.10 62.82
rouen 14.54 16.72 18.46 38.24 50.10 60.06
strasbourg 16.30 18.79 21.35 41.52 56.51 69.95
toulouse 18.70 21.18 23.61 54.50 66.82 77.79

Temperatures Distribution

## Picking joint bandwidth of 0.633
## 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

Ozone concentrations Distribution

## Picking joint bandwidth of 3.43

Description of Mortality

Total number of deaths:

## [1] 450727
## [1] 117047
## [1] 25438
Mortality per City During non Heat-wave days
Non Accidental Causes
Cardiovascual Causes
Respiratory causes
city Minimum Nocc M Nocc Max Nocc Minimum Cv M Cv Max Cv Minimum Respi M Respi Max Respi
bordeaux 2 11.540242 25 0 3.263019 13 0 0.6649132 5
clermont 0 5.166146 15 0 1.464063 7 0 0.2802083 3
grenoble 0 7.230121 19 0 2.012638 11 0 0.3522907 4
lehavre 0 5.276042 14 0 1.368229 8 0 0.2864583 3
lyon 4 16.969239 36 0 4.426486 14 0 0.8868613 5
marseille 7 20.089388 39 0 5.595400 17 0 1.2618923 7
montpellier 0 5.834468 17 0 1.639078 8 0 0.3163960 3
nancy 0 6.288100 16 0 1.663883 7 0 0.4055324 4
nantes 1 9.483385 23 0 2.583074 11 0 0.5145379 6
nice 2 11.142039 24 0 3.059313 10 0 0.6529657 5
paris 60 98.195008 286 8 23.577743 56 0 5.4482579 20
rennes 0 3.567625 12 0 1.067093 5 0 0.2358892 3
rouen 1 9.028571 23 0 2.489351 12 0 0.4987013 5
strasbourg 1 7.862755 18 0 2.211629 9 0 0.4379256 6
toulouse 2 11.014055 34 0 2.966684 11 0 0.5637689 5
Mortality per City During Heat-wave days
Non Accidental Causes
Cardiovascual Causes
Respiratory causes
city Minimum Nocc M Nocc Max Nocc Minimum Cv M Cv Max Cv Minimum Respi M Respi Max Respi
bordeaux 7 18.576923 36 3 5.807692 12 0 1.6538462 6
clermont 4 8.041667 16 0 2.625000 6 0 0.3750000 2
grenoble 3 9.472222 16 0 2.861111 8 0 0.7222222 4
lehavre 2 6.956522 15 0 2.000000 6 0 0.5217391 2
lyon 11 27.781250 75 2 7.093750 22 0 2.4062500 7
marseille 12 24.885714 40 2 6.285714 14 0 1.8857143 5
montpellier 2 6.928571 14 0 1.785714 7 0 0.5000000 2
nancy 0 9.312500 24 0 2.656250 10 0 0.8437500 4
nantes 7 12.875000 32 0 3.541667 10 0 1.0416667 4
nice 4 15.269231 33 0 4.076923 11 0 1.0000000 3
paris 100 207.518518 724 13 50.481482 179 2 14.5185185 52
rennes 2 5.032258 9 0 1.580645 6 0 0.4838710 3
rouen 6 13.720000 28 0 3.400000 8 0 0.9600000 3
strasbourg 7 12.315789 22 0 3.447368 7 0 0.9473684 3
toulouse 6 14.620690 24 0 4.241379 9 0 0.8965517 3

Non accidental Mortality

Cardiovascular Mortality

Respiratory Mortality

Analysis On Non-Accidental Mortality

BOOTSTRAP METHOD

Code:

# some data management
 for (i in 1:length(villes_s)){
   villes_s[[i]]$time<-1:nrow(villes_s[[i]]) # Create a new variable for time 
 } 
   

    
  # start bootstrap
     
  nreps=700 #number of bootstrap reps
  results<-matrix(NA,nrow = 15,ncol=11)
  colnames(results)<-c("city","NDE","NDE_2.5","NDE_97.5","NIE","NIE_2.5","NIE_97.5","PMM","TE","TE_2.5","TE_97.5")
  
for (i in (1:length(villes_s))){
  boot.nde<- rep(NA,nreps)
  boot.nie <- rep(NA,nreps)
  boot.pmm <- rep(NA,nreps)
  boot.te <- rep(NA,nreps)
  for (rep in 1:nreps)
      
    {
      dat_resample <- sample(1:nrow(villes_s[[i]]),nrow(villes_s[[i]]),replace=T)
      dat_boot <- villes_s[[i]][dat_resample,]
        
      # outcome model - Poisson Regression: Mortality, HW and O3
      m.outcome<-glm(nocc_tot~heat_wave+o3+no2moy+ns(time,df=round(3*length(time)/122))+Jours+Vacances+hol+mois,data=dat_boot,family=quasipoisson)
      
      # mediator model - multinomial linear regression
      m.mediator<-lm(o3~heat_wave+no2moy+ns(time,df=round(3*length(time)/122))+Jours+Vacances+hol+mois,data=dat_boot) 
      
      # save coefficients
      theta1<-coef(m.outcome)[2]
      
      theta2<-coef(m.outcome)[3]
     
      beta1<-coef(m.mediator)[2]
      
      # estimate CDE and NIE
      
      boot.nde[rep] <- exp(theta1) #NDE
      
      boot.nie[rep] <-exp(theta2*beta1) #NIE 
      
      boot.te[rep] <- boot.nde[rep]*boot.nie[rep] # TE
      
      boot.pmm[rep] <-boot.nde[rep]*(boot.nie[rep]-1)/(boot.nde[rep]*boot.nie[rep]-1) #NIE 
                   
      
    } #end bootstrap

  results[i,1]<-cities[[i]]
  results[i,2]<-median(boot.nde, na.rm=T)
  results[i,3]<-quantile(boot.nde, 0.025, na.rm=T)
  results[i,4]<-quantile(boot.nde, 0.975, na.rm=T)
  results[i,5]<-median(boot.nie, na.rm=T)
  results[i,6]<-quantile(boot.nie, 0.025, na.rm=T)
  results[i,7]<-quantile(boot.nie, 0.975, na.rm=T)
  results[i,8]<-median(boot.pmm, na.rm=T)
  results[i,9]<-median(boot.te, na.rm=T)
  results[i,10]<-quantile(boot.te, 0.025, na.rm=T)
  results[i,11]<-quantile(boot.te, 0.975, na.rm=T)     
    }
  
  # output CDE and NIE and confidence intervals

Results:

res<-data.frame(results)

for (i in (2:11)){
res[,i]<-as.numeric(as.character(res[,i]))
}

res[,2:11]<-round(res[,2:11],digits = 4)

kable(res)%>%kable_styling()%>%
  column_spec(1, bold = T, border_right = T)%>%
  column_spec(4, border_right = T)%>%
  column_spec(7, border_right = T)%>%
  column_spec(8, border_right = T)
city NDE NDE_2.5 NDE_97.5 NIE NIE_2.5 NIE_97.5 PMM TE TE_2.5 TE_97.5
bordeaux 1.4920 1.2917 1.7223 1.0247 0.9995 1.0529 0.0708 1.5283 1.3259 1.7682
clermont 1.4570 1.2084 1.7407 1.0203 0.9917 1.0496 0.0621 1.4814 1.2317 1.7741
grenoble 1.1509 1.0206 1.3147 1.0311 1.0078 1.0572 0.1897 1.1886 1.0528 1.3534
lehavre 1.2710 1.0159 1.5816 1.0329 0.9881 1.0867 0.1375 1.3163 1.0503 1.6311
lyon 1.3516 1.1443 1.5884 1.0280 1.0130 1.0462 0.0971 1.3887 1.1783 1.6253
marseille 1.1412 1.0566 1.2416 1.0032 0.9976 1.0110 0.0262 1.1454 1.0591 1.2517
montpellier 1.1035 0.9457 1.2826 1.0084 0.9957 1.0256 0.0705 1.1128 0.9582 1.2937
nancy 1.2035 1.0317 1.4235 0.9955 0.9723 1.0178 -0.0295 1.1970 1.0254 1.4167
nantes 1.1933 0.9896 1.4448 1.0753 1.0307 1.1235 0.3158 1.2856 1.0696 1.5410
nice 1.2162 1.0548 1.3999 1.0040 0.9985 1.0162 0.0222 1.2222 1.0623 1.4041
paris 1.6504 1.3663 2.0617 1.0353 1.0170 1.0651 0.0839 1.7089 1.3966 2.1337
rennes 1.3123 1.0966 1.5479 1.0599 1.0183 1.1154 0.2023 1.3932 1.1550 1.6500
rouen 1.3062 1.1121 1.5184 1.0684 1.0346 1.1097 0.2277 1.3972 1.1946 1.6364
strasbourg 1.4232 1.2833 1.5889 1.0197 0.9966 1.0506 0.0636 1.4534 1.3189 1.6149
toulouse 1.2400 1.1046 1.3737 1.0352 1.0147 1.0610 0.1582 1.2850 1.1447 1.4239
# write_xlsx(res,"C:/Users/Anna/Dropbox/Heat wave and O3/Meteo France/mortality/nonaccidental/results.xlsx")

Meta-Analysis and Forestplot

Natural Direct Effect

## 
## Random-Effects Model (k = 15; tau^2 estimator: REML)
## 
## tau^2 (estimated amount of total heterogeneity): 0.0084 (SE = 0.0066)
## tau (square root of estimated tau^2 value):      0.0918
## I^2 (total heterogeneity / total variability):   50.60%
## H^2 (total variability / sampling variability):  2.02
## 
## Test for Heterogeneity:
## Q(df = 14) = 29.1531, p-val = 0.0100
## 
## Model Results:
## 
## estimate      se     zval    pval   ci.lb   ci.ub 
##   1.2722  0.0348  36.5505  <.0001  1.2040  1.3404  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Natural Indirect Effect

## 
## Random-Effects Model (k = 15; tau^2 estimator: REML)
## 
## tau^2 (estimated amount of total heterogeneity): 0.0002 (SE = 0.0001)
## tau (square root of estimated tau^2 value):      0.0156
## I^2 (total heterogeneity / total variability):   74.45%
## H^2 (total variability / sampling variability):  3.91
## 
## Test for Heterogeneity:
## Q(df = 14) = 46.9917, p-val < .0001
## 
## Model Results:
## 
## estimate      se      zval    pval   ci.lb   ci.ub 
##   1.0233  0.0052  195.4659  <.0001  1.0131  1.0336  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Analysis On Cardiovascular Mortality

Results:

city NDE NDE_2.5 NDE_97.5 NIE NIE_2.5 NIE_97.5 PMM TE TE_2.5 TE_97.5
bordeaux 1.5487 1.2798 1.8886 1.0109 0.9680 1.0610 0.0305 1.5706 1.2933 1.9016
clermont 1.7088 1.3208 2.2297 0.9999 0.9520 1.0535 -0.0004 1.7070 1.3192 2.2266
grenoble 1.2397 0.9698 1.5638 1.0489 1.0096 1.0994 0.1988 1.3042 1.0150 1.6206
lehavre 1.3145 0.8587 1.8159 1.1347 1.0447 1.2523 0.3537 1.4903 0.9908 2.0300
lyon 1.3785 1.0973 1.7082 1.0253 1.0003 1.0558 0.0851 1.4144 1.1229 1.7527
marseille 1.0666 0.9242 1.2335 1.0039 0.9975 1.0157 0.0391 1.0725 0.9249 1.2389
montpellier 1.0622 0.7207 1.5311 1.0069 0.9812 1.0392 0.0171 1.0695 0.7213 1.5313
nancy 1.4707 1.1122 1.9119 0.9846 0.9402 1.0297 -0.0491 1.4551 1.1008 1.8627
nantes 1.2334 0.9289 1.6271 1.1022 1.0259 1.1913 0.3547 1.3600 1.0278 1.7720
nice 1.1176 0.8578 1.4101 1.0064 0.9958 1.0260 0.0410 1.1229 0.8645 1.4200
paris 1.6794 1.3090 2.1246 1.0367 1.0132 1.0710 0.0863 1.7444 1.3498 2.2396
rennes 1.4808 0.9427 2.2680 1.0305 0.9502 1.1274 0.0872 1.5228 0.9633 2.3493
rouen 1.2178 0.9138 1.5689 1.0759 1.0054 1.1555 0.2987 1.3085 0.9869 1.6925
strasbourg 1.4740 1.2141 1.7991 0.9863 0.9446 1.0291 -0.0455 1.4567 1.1987 1.7603
toulouse 1.2175 0.9823 1.4776 1.0596 1.0223 1.1008 0.2462 1.2935 1.0347 1.5645

Meta-Analysis and Forestplot

Natural Direct Effect

## 
## Random-Effects Model (k = 15; tau^2 estimator: REML)
## 
## tau^2 (estimated amount of total heterogeneity): 0.0171 (SE = 0.0165)
## tau (square root of estimated tau^2 value):      0.1306
## I^2 (total heterogeneity / total variability):   40.41%
## H^2 (total variability / sampling variability):  1.68
## 
## Test for Heterogeneity:
## Q(df = 14) = 23.5839, p-val = 0.0514
## 
## Model Results:
## 
## estimate      se     zval    pval   ci.lb   ci.ub 
##   1.3084  0.0553  23.6593  <.0001  1.2000  1.4168  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Natural Indirect Effect

## 
## Random-Effects Model (k = 15; tau^2 estimator: REML)
## 
## tau^2 (estimated amount of total heterogeneity): 0.0003 (SE = 0.0002)
## tau (square root of estimated tau^2 value):      0.0170
## I^2 (total heterogeneity / total variability):   56.78%
## H^2 (total variability / sampling variability):  2.31
## 
## Test for Heterogeneity:
## Q(df = 14) = 31.4751, p-val = 0.0048
## 
## Model Results:
## 
## estimate      se      zval    pval   ci.lb   ci.ub 
##   1.0206  0.0068  149.0116  <.0001  1.0072  1.0340  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Analysis On Respiratory Mortality

Results:

city NDE NDE_2.5 NDE_97.5 NIE NIE_2.5 NIE_97.5 PMM TE TE_2.5 TE_97.5
bordeaux 2.0701 1.3912 3.0560 1.0687 0.9626 1.1876 0.1175 2.2136 1.5239 3.1739
clermont 1.1712 0.4799 2.5452 0.9489 0.8339 1.0802 -0.0574 1.1064 0.4475 2.4146
grenoble 1.4631 0.8836 2.2347 0.9541 0.8547 1.0514 -0.1572 1.3873 0.8533 2.1678
lehavre 2.4045 1.0285 4.8438 0.9202 0.7522 1.1232 -0.1600 2.2329 0.9713 4.1275
lyon 1.9310 1.4078 2.6515 1.0723 1.0162 1.1509 0.1346 2.0667 1.5161 2.9134
marseille 1.2442 0.9120 1.6542 1.0004 0.9898 1.0175 0.0014 1.2419 0.9126 1.6559
montpellier 1.1299 0.6024 1.8070 1.0628 1.0057 1.1494 0.1739 1.2058 0.6294 1.9442
nancy 1.6835 0.9571 2.8183 0.9509 0.8580 1.0381 -0.1314 1.6193 0.9122 2.6571
nantes 1.0418 0.6203 1.6001 1.2743 1.0770 1.5387 0.7115 1.3232 0.8232 1.9946
nice 1.2142 0.7882 1.8221 1.0068 0.9856 1.0413 0.0230 1.2253 0.7992 1.8317
paris 1.8864 1.4856 2.3918 1.0431 1.0109 1.0887 0.0847 1.9684 1.5523 2.4632
rennes 1.7232 0.8480 3.1175 1.1178 0.9382 1.3619 0.2120 1.9420 0.9232 3.4542
rouen 1.5397 0.8882 2.5089 1.0549 0.9070 1.2225 0.1258 1.6166 0.9575 2.5735
strasbourg 1.9418 1.3059 2.8571 1.0377 0.9350 1.1535 0.0722 2.0199 1.4062 2.9126
toulouse 1.4912 0.9608 2.2915 1.0002 0.9217 1.0903 0.0014 1.4938 0.9646 2.2367

Meta-analysis and Forestplot

Natural Direct Effect

## 
## Random-Effects Model (k = 15; tau^2 estimator: REML)
## 
## tau^2 (estimated amount of total heterogeneity): 0.0396 (SE = 0.0543)
## tau (square root of estimated tau^2 value):      0.1990
## I^2 (total heterogeneity / total variability):   26.87%
## H^2 (total variability / sampling variability):  1.37
## 
## Test for Heterogeneity:
## Q(df = 14) = 16.9650, p-val = 0.2580
## 
## Model Results:
## 
## estimate      se     zval    pval   ci.lb   ci.ub 
##   1.4987  0.1024  14.6329  <.0001  1.2980  1.6995  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Natural Indirect Effect

## 
## Random-Effects Model (k = 15; tau^2 estimator: REML)
## 
## tau^2 (estimated amount of total heterogeneity): 0.0003 (SE = 0.0004)
## tau (square root of estimated tau^2 value):      0.0181
## I^2 (total heterogeneity / total variability):   29.81%
## H^2 (total variability / sampling variability):  1.42
## 
## Test for Heterogeneity:
## Q(df = 14) = 22.3854, p-val = 0.0710
## 
## Model Results:
## 
## estimate      se     zval    pval   ci.lb   ci.ub 
##   1.0176  0.0102  99.8241  <.0001  0.9976  1.0376  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1