Descriptive Statistics for PM10

Descriptive Statistics for pm10
Ville Minimum X1st.Qu Median Mean X3rd.Qu Max NA.s
bordeaux 0.0000000 17.00000 22.33333 24.68781 29.49141 101.66667 128
clermont 2.0000000 12.50000 17.25000 19.75139 24.00000 105.75000 1
grenoble 3.3333333 17.17448 24.09375 27.45367 34.00000 110.50000 172
lehavre 5.0416667 16.66667 21.66667 24.81355 29.66667 123.66667 20
lille 0.0000000 16.50000 22.00000 25.53733 30.50000 131.00000 132
marseille 4.8229167 22.33333 30.33333 32.00210 39.33333 120.00000 66
nantes 4.5000000 15.00000 19.33333 21.77588 25.79027 112.00000 55
paris 8.0000000 23.00000 29.00000 31.88335 37.57474 153.50000 3
rennes 0.0000000 12.50000 17.00000 19.34861 23.00000 101.50000 67
rouen 0.3958333 17.50000 22.50000 25.40337 29.50000 116.50000 39
strasbourg 2.0000000 16.18750 22.66667 25.66733 31.66667 167.00000 106
toulouse 3.2000000 14.40000 19.60000 21.18753 26.00000 95.33333 30

Descriptive Statistics for pm10 by period (to be completed…)

Linear Interaction Model

Models For Lag0, Lag1 and La2 exposure

## change year variable with numeric ordinal number
for (i in 1:length(villes)){
  villes[[i]]$year<-as.numeric(villes[[i]]$annee)
} 

# define model objects
tot <- matrix(NA, nrow = 12, ncol = 7)
colnames(tot) <- c("Ville","Coefficient_B0","B0_CI95_Low","B0_CI95_High", "Coefficient_B1","LB_CI95_Low","B1_CI95_High")
modtot<-list()
st_errb0<-c()
st_errb1<-c()


# Linear Model for Lag0

for(i in 1:length(villes)) {
   modtot[[i]]<-gam(cv_tot~pm10+pm10:year+ns(time,df=round(8*length(time)/365))+ns(tempmoy,df=6)+ns(temp3,df=6)+Jours++Vacances,data=villes[[i]],family=quasipoisson)
  est<-summary(modtot[[i]])
  tot[i, 1] <- as.character(villes_name[[i]])
  ll<-length(modtot[[i]]$coefficients)
  tot[i, 2] <- modtot[[i]]$coefficients[2]
  tot[i, 3] <- modtot[[i]]$coefficients[2]-(1.96*est$se[2])
  tot[i, 4] <- modtot[[i]]$coefficients[2]+(1.96*est$se[2])
  tot[i, 5] <- modtot[[i]]$coefficients[ll]
  tot[i, 6] <- modtot[[i]]$coefficients[ll]-(1.96*est$se[ll])
  tot[i, 7] <- modtot[[i]]$coefficients[ll]+(1.96*est$se[ll])
  st_errb0[i]<- est$se[2]
  st_errb1[i]<- est$se[ll]
}


# Linear Model for Lag1

# define model objects
tot_L1 <- matrix(NA, nrow = 12, ncol = 7)
colnames(tot_L1) <- c("Ville","Coefficient_B0","B0_CI95_Low","B0_CI95_High", "Coefficient_B1","LB_CI95_Low","B1_CI95_High")
modtot_L1<-list()
st_errb0_L1<-c()
st_errb1_L1<-c()


for(i in 1:length(villes)) {
   modtot_L1[[i]]<-gam(cv_tot~pm10_L1+pm10_L1:year+ns(time,df=round(8*length(time)/365))+ns(tempmoy,df=6)+ns(temp3,df=6)+Jours++Vacances,data=villes[[i]],family=quasipoisson)
  est<-summary(modtot_L1[[i]])
  tot_L1[i, 1] <- as.character(villes_name[[i]])
  ll<-length(modtot_L1[[i]]$coefficients)
  tot_L1[i, 2] <- modtot_L1[[i]]$coefficients[2]
  tot_L1[i, 3] <- modtot_L1[[i]]$coefficients[2]-(1.96*est$se[2])
  tot_L1[i, 4] <- modtot_L1[[i]]$coefficients[2]+(1.96*est$se[2])
  tot_L1[i, 5] <- modtot_L1[[i]]$coefficients[ll]
  tot_L1[i, 6] <- modtot_L1[[i]]$coefficients[ll]-(1.96*est$se[ll])
  tot_L1[i, 7] <- modtot_L1[[i]]$coefficients[ll]+(1.96*est$se[ll])
  st_errb0_L1[i]<- est$se[2]
  st_errb1_L1[i]<- est$se[ll]
}



# Linear Model for Lag2

# define model objects
tot_L2 <- matrix(NA, nrow = 12, ncol = 7)
colnames(tot_L2) <- c("Ville","Coefficient_B0","B0_CI95_Low","B0_CI95_High", "Coefficient_B1","LB_CI95_Low","B1_CI95_High")
modtot_L2<-list()
st_errb0_L2<-c()
st_errb1_L2<-c()


for(i in 1:length(villes)) {
   modtot_L2[[i]]<-gam(cv_tot~pm10_L2+pm10_L2:year+ns(time,df=round(8*length(time)/365))+ns(tempmoy,df=6)+ns(temp3,df=6)+Jours++Vacances,data=villes[[i]],family=quasipoisson)
  est<-summary(modtot_L2[[i]])
  tot_L2[i, 1] <- as.character(villes_name[[i]])
  ll<-length(modtot_L2[[i]]$coefficients)
  tot_L2[i, 2] <- modtot_L2[[i]]$coefficients[2]
  tot_L2[i, 3] <- modtot_L2[[i]]$coefficients[2]-(1.96*est$se[2])
  tot_L2[i, 4] <- modtot_L2[[i]]$coefficients[2]+(1.96*est$se[2])
  tot_L2[i, 5] <- modtot_L2[[i]]$coefficients[ll]
  tot_L2[i, 6] <- modtot_L2[[i]]$coefficients[ll]-(1.96*est$se[ll])
  tot_L2[i, 7] <- modtot_L2[[i]]$coefficients[ll]+(1.96*est$se[ll])
  st_errb0_L2[i]<- est$se[2]
  st_errb1_L2[i]<- est$se[ll]
}

Results For Lag0 exposure

Ville Coefficient_B0 B0_CI95_Low B0_CI95_High Coefficient_B1 LB_CI95_Low B1_CI95_High
bordeaux 1.0065 1.0046 1.0084 0.9993 0.9991 0.9994
clermont 1.0046 1.0017 1.0075 0.9994 0.9992 0.9997
grenoble 1.0001 0.9980 1.0021 1.0000 0.9998 1.0001
lehavre 1.0020 0.9995 1.0045 1.0000 0.9998 1.0002
lille 1.0054 1.0041 1.0067 0.9994 0.9993 0.9995
marseille 1.0044 1.0032 1.0056 0.9994 0.9993 0.9995
nantes 1.0015 0.9991 1.0040 0.9999 0.9997 1.0001
paris 1.0053 1.0047 1.0060 0.9994 0.9993 0.9994
rennes 0.9993 0.9955 1.0030 1.0001 0.9998 1.0004
rouen 1.0023 1.0003 1.0043 0.9997 0.9995 0.9998
strasbourg 1.0038 1.0018 1.0058 0.9996 0.9994 0.9997
toulouse 1.0079 1.0057 1.0100 0.9990 0.9988 0.9992
villes Increase_2002 Increase_2015 Temp_change
bordeaux -1.560 -11.162 -9.601
clermont -1.219 -8.803 -7.584
grenoble -0.047 -0.349 -0.302
lehavre 0.049 0.366 0.317
lille -1.239 -8.949 -7.709
marseille -1.169 -8.452 -7.283
nantes -0.185 -1.379 -1.194
paris -1.315 -9.473 -8.158
rennes 0.263 1.988 1.725
rouen -0.692 -5.077 -4.385
strasbourg -0.910 -6.631 -5.722
toulouse -2.128 -14.976 -12.848

Results For Lag1 exposure

Ville Coefficient_B0 B0_CI95_Low B0_CI95_High Coefficient_B1 LB_CI95_Low B1_CI95_High
bordeaux 1.0065 1.0046 1.0084 0.9993 0.9991 0.9994
clermont 1.0046 1.0017 1.0075 0.9994 0.9992 0.9997
grenoble 1.0001 0.9980 1.0021 1.0000 0.9998 1.0001
lehavre 1.0020 0.9995 1.0045 1.0000 0.9998 1.0002
lille 1.0054 1.0041 1.0067 0.9994 0.9993 0.9995
marseille 1.0044 1.0032 1.0056 0.9994 0.9993 0.9995
nantes 1.0015 0.9991 1.0040 0.9999 0.9997 1.0001
paris 1.0053 1.0047 1.0060 0.9994 0.9993 0.9994
rennes 0.9993 0.9955 1.0030 1.0001 0.9998 1.0004
rouen 1.0023 1.0003 1.0043 0.9997 0.9995 0.9998
strasbourg 1.0038 1.0018 1.0058 0.9996 0.9994 0.9997
toulouse 1.0079 1.0057 1.0100 0.9990 0.9988 0.9992
villes Increase_2002 Increase_2015 Temp_change
bordeaux -1.570 -11.233 -9.663
clermont -1.201 -8.683 -7.482
grenoble -0.190 -1.414 -1.225
lehavre 0.119 0.898 0.779
lille -1.173 -8.485 -7.312
marseille -1.187 -8.577 -7.391
nantes -0.165 -1.229 -1.064
paris -1.317 -9.484 -8.168
rennes 0.255 1.927 1.672
rouen -0.654 -4.806 -4.152
strasbourg -0.907 -6.612 -5.705
toulouse -2.180 -15.321 -13.141

Results For Lag2 exposure

Ville Coefficient_B0 B0_CI95_Low B0_CI95_High Coefficient_B1 LB_CI95_Low B1_CI95_High
bordeaux 1.0065 1.0046 1.0084 0.9993 0.9991 0.9994
clermont 1.0046 1.0017 1.0075 0.9994 0.9992 0.9997
grenoble 1.0001 0.9980 1.0021 1.0000 0.9998 1.0001
lehavre 1.0020 0.9995 1.0045 1.0000 0.9998 1.0002
lille 1.0054 1.0041 1.0067 0.9994 0.9993 0.9995
marseille 1.0044 1.0032 1.0056 0.9994 0.9993 0.9995
nantes 1.0015 0.9991 1.0040 0.9999 0.9997 1.0001
paris 1.0053 1.0047 1.0060 0.9994 0.9993 0.9994
rennes 0.9993 0.9955 1.0030 1.0001 0.9998 1.0004
rouen 1.0023 1.0003 1.0043 0.9997 0.9995 0.9998
strasbourg 1.0038 1.0018 1.0058 0.9996 0.9994 0.9997
toulouse 1.0079 1.0057 1.0100 0.9990 0.9988 0.9992
villes Increase_2002 Increase_2015 Temp_change
bordeaux -1.509 -10.810 -9.301
clermont -1.138 -8.241 -7.102
grenoble -0.284 -2.113 -1.829
lehavre 0.038 0.286 0.248
lille -1.170 -8.465 -7.295
marseille -1.206 -8.715 -7.509
nantes -0.181 -1.346 -1.166
paris -1.302 -9.383 -8.081
rennes 0.229 1.729 1.500
rouen -0.741 -5.427 -4.686
strasbourg -0.771 -5.644 -4.873
toulouse -2.029 -14.321 -12.292

Metanalysis of the results

For Lag0 exposure

##         Increase_2002 Increase_2015 Temp_change
## intrcpt    -0.8533283     -6.231571   -5.378243

Results For Lag1 exposure

##         Increase_2002 Increase_2015 Temp_change
## intrcpt    -0.8546975     -6.241711   -5.387014

Results For Lag2 exposure

##         Increase_2002 Increase_2015 Temp_change
## intrcpt    -0.8507206     -6.213144   -5.362423

Non-Linear Interaction Model

Models For Lag0, Lag1 and La2 exposure

# Non-Linear Model for Lag0

for(i in 1:length(villes)) {
  year[[i]] <- onebasis(villes[[i]]$year,"ns",knots=c(4,7,11))
  yr<-year[[i]]
  nl_modtot[[i]]<-gam(cv_tot~pm10+pm10:yr+ns(time,df=round(8*length(time)/365))+ns(tempmoy,df=6)+ns(temp3,df=6)+Jours++Vacances,data=villes[[i]],family=quasipoisson)
  est<-summary(nl_modtot[[i]])
  nl_coeffB0[i,1] <- as.character(villes_name[[i]])
  nl_coeffB1[i,1] <- as.character(villes_name[[i]])
  ll<-length(nl_modtot[[i]]$coefficients)
  nl_coeffB0[i, 2] <- nl_modtot[[i]]$coefficients[2]
  nl_coeffB0[i, 3] <- nl_modtot[[i]]$coefficients[2]-(1.96*est$se[2])
  nl_coeffB0[i, 4] <- nl_modtot[[i]]$coefficients[2]+(1.96*est$se[2])
  nl_coeffB1[i, 2] <- nl_modtot[[i]]$coefficients[ll-3]
  nl_coeffB1[i, 3] <- nl_modtot[[i]]$coefficients[ll-3]-(1.96*est$se[ll-3])
  nl_coeffB1[i, 4] <- nl_modtot[[i]]$coefficients[ll-3]+(1.96*est$se[ll-3])
  nl_coeffB1[i, 5] <- nl_modtot[[i]]$coefficients[ll-2]
  nl_coeffB1[i, 6] <- nl_modtot[[i]]$coefficients[ll-2]-(1.96*est$se[ll-2])
  nl_coeffB1[i, 7] <- nl_modtot[[i]]$coefficients[ll-2]+(1.96*est$se[ll-2])
  nl_coeffB1[i, 8] <- nl_modtot[[i]]$coefficients[ll-1]
  nl_coeffB1[i, 9] <- nl_modtot[[i]]$coefficients[ll-1]-(1.96*est$se[ll-1])
  nl_coeffB1[i, 10] <- nl_modtot[[i]]$coefficients[ll]+(1.96*est$se[ll-1])
  nl_coeffB1[i, 11] <- nl_modtot[[i]]$coefficients[ll]
  nl_coeffB1[i, 12] <- nl_modtot[[i]]$coefficients[ll]-(1.96*est$se[ll])
  nl_coeffB1[i, 13] <- nl_modtot[[i]]$coefficients[ll]+(1.96*est$se[ll])
  # nl_st_errb0[i]<- est$se[2]
  # nl_st_errb11[i]<- est$se[ll-3]
  # nl_st_errb12[i]<- est$se[ll-2]
  # nl_st_errb13[i]<- est$se[ll-1]
  # nl_st_errb14[i]<- est$se[ll]
  pred_nnlin[[i]]<-crosspred(yr,nl_modtot[[i]],cen=0)
  y_nl[i,] <- pred_nnlin[[i]]$coef
  S_nl[[i]] <- pred_nnlin[[i]]$vcov
}

# Non-Linear Model for Lag1

for(i in 1:length(villes)) {
  year[[i]] <- onebasis(villes[[i]]$year,"ns",knots=c(4,7,11))
  yr<-year[[i]]
  nl_modtot_L1[[i]]<-gam(cv_tot~pm10_L1+pm10_L1:yr+ns(time,df=round(8*length(time)/365))+ns(tempmoy,df=6)+ns(temp3,df=6)+Jours++Vacances,data=villes[[i]],family=quasipoisson)
  est<-summary(nl_modtot_L1[[i]])
  nl_coeffB0_L1[i,1] <- as.character(villes_name[[i]])
  nl_coeffB1_L1[i,1] <- as.character(villes_name[[i]])
  ll<-length(nl_modtot_L1[[i]]$coefficients)
  nl_coeffB0_L1[i, 2] <- nl_modtot_L1[[i]]$coefficients[2]
  nl_coeffB0_L1[i, 3] <- nl_modtot_L1[[i]]$coefficients[2]-(1.96*est$se[2])
  nl_coeffB0_L1[i, 4] <- nl_modtot_L1[[i]]$coefficients[2]+(1.96*est$se[2])
  nl_coeffB1_L1[i, 2] <- nl_modtot_L1[[i]]$coefficients[ll-3]
  nl_coeffB1_L1[i, 3] <- nl_modtot_L1[[i]]$coefficients[ll-3]-(1.96*est$se[ll-3])
  nl_coeffB1_L1[i, 4] <- nl_modtot_L1[[i]]$coefficients[ll-3]+(1.96*est$se[ll-3])
  nl_coeffB1_L1[i, 5] <- nl_modtot_L1[[i]]$coefficients[ll-2]
  nl_coeffB1_L1[i, 6] <- nl_modtot_L1[[i]]$coefficients[ll-2]-(1.96*est$se[ll-2])
  nl_coeffB1_L1[i, 7] <- nl_modtot_L1[[i]]$coefficients[ll-2]+(1.96*est$se[ll-2])
  nl_coeffB1_L1[i, 8] <- nl_modtot_L1[[i]]$coefficients[ll-1]
  nl_coeffB1_L1[i, 9] <- nl_modtot_L1[[i]]$coefficients[ll-1]-(1.96*est$se[ll-1])
  nl_coeffB1_L1[i, 10] <- nl_modtot_L1[[i]]$coefficients[ll]+(1.96*est$se[ll-1])
  nl_coeffB1_L1[i, 11] <- nl_modtot_L1[[i]]$coefficients[ll]
  nl_coeffB1_L1[i, 12] <- nl_modtot_L1[[i]]$coefficients[ll]-(1.96*est$se[ll])
  nl_coeffB1_L1[i, 13] <- nl_modtot_L1[[i]]$coefficients[ll]+(1.96*est$se[ll])
  pred_nnlin_L1[[i]]<-crosspred(yr,nl_modtot_L1[[i]],cen=0)
  y_nl_L1[i,] <- pred_nnlin_L1[[i]]$coef
  S_nl_L1[[i]] <- pred_nnlin_L1[[i]]$vcov
}

# Non-Linear Model for Lag2

for(i in 1:length(villes)) {
  year[[i]] <- onebasis(villes[[i]]$year,"ns",knots=c(4,7,11))
  yr<-year[[i]]
  nl_modtot_L2[[i]]<-gam(cv_tot~pm10_L2+pm10_L2:yr+ns(time,df=round(8*length(time)/365))+ns(tempmoy,df=6)+ns(temp3,df=6)+Jours++Vacances,data=villes[[i]],family=quasipoisson)
  est<-summary(nl_modtot_L2[[i]])
  nl_coeffB0_L2[i,1] <- as.character(villes_name[[i]])
  nl_coeffB1_L2[i,1] <- as.character(villes_name[[i]])
  ll<-length(nl_modtot_L2[[i]]$coefficients)
  nl_coeffB0_L2[i, 2] <- nl_modtot_L2[[i]]$coefficients[2]
  nl_coeffB0_L2[i, 3] <- nl_modtot_L2[[i]]$coefficients[2]-(1.96*est$se[2])
  nl_coeffB0_L2[i, 4] <- nl_modtot_L2[[i]]$coefficients[2]+(1.96*est$se[2])
  nl_coeffB1_L2[i, 2] <- nl_modtot_L2[[i]]$coefficients[ll-3]
  nl_coeffB1_L2[i, 3] <- nl_modtot_L2[[i]]$coefficients[ll-3]-(1.96*est$se[ll-3])
  nl_coeffB1_L2[i, 4] <- nl_modtot_L2[[i]]$coefficients[ll-3]+(1.96*est$se[ll-3])
  nl_coeffB1_L2[i, 5] <- nl_modtot_L2[[i]]$coefficients[ll-2]
  nl_coeffB1_L2[i, 6] <- nl_modtot_L2[[i]]$coefficients[ll-2]-(1.96*est$se[ll-2])
  nl_coeffB1_L2[i, 7] <- nl_modtot_L2[[i]]$coefficients[ll-2]+(1.96*est$se[ll-2])
  nl_coeffB1_L2[i, 8] <- nl_modtot_L2[[i]]$coefficients[ll-1]
  nl_coeffB1_L2[i, 9] <- nl_modtot_L2[[i]]$coefficients[ll-1]-(1.96*est$se[ll-1])
  nl_coeffB1_L2[i, 10] <- nl_modtot_L2[[i]]$coefficients[ll]+(1.96*est$se[ll-1])
  nl_coeffB1_L2[i, 11] <- nl_modtot_L2[[i]]$coefficients[ll]
  nl_coeffB1_L2[i, 12] <- nl_modtot_L2[[i]]$coefficients[ll]-(1.96*est$se[ll])
  nl_coeffB1_L2[i, 13] <- nl_modtot_L2[[i]]$coefficients[ll]+(1.96*est$se[ll])
  pred_nnlin_L2[[i]]<-crosspred(yr,nl_modtot_L2[[i]],cen=0)
  y_nl_L2[i,] <- pred_nnlin_L2[[i]]$coef
  S_nl_L2[[i]] <- pred_nnlin_L2[[i]]$vcov
}

Meta-analysis results

## Call:  mvmeta(formula = y_nl ~ 1, S = S_nl, method = "ml")
## 
## Multivariate random-effects meta-analysis
## Dimension: 4
## Estimation method: ML
## 
## Fixed-effects coefficients
##     Estimate  Std. Error        z  Pr(>|z|)  95%ci.lb  95%ci.ub     
## y1   -0.0029      0.0006  -5.2692    0.0000   -0.0040   -0.0018  ***
## y2   -0.0055      0.0011  -4.9205    0.0000   -0.0076   -0.0033  ***
## y3   -0.0095      0.0015  -6.3377    0.0000   -0.0125   -0.0066  ***
## y4   -0.0030      0.0012  -2.5475    0.0108   -0.0054   -0.0007    *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 
## 
## Between-study random-effects (co)variance components
## Structure: General positive-definite
##     Std. Dev    Corr                
## y1    0.0016      y1      y2      y3
## y2    0.0035  0.7905                
## y3    0.0048  0.9575  0.9335        
## y4    0.0036  0.9825  0.6625  0.8870
## 
## Multivariate Cochran Q-test for heterogeneity:
## Q = 202.1117 (df = 44), p-value = 0.0000
## I-square statistic = 78.2%
## 
## 12 studies, 48 observations, 4 fixed and 10 random-effects parameters
##    logLik        AIC        BIC  
##  220.4507  -412.9014  -386.7046

## Call:  mvmeta(formula = y_nl_L1 ~ 1, S = S_nl_L1, method = "ml")
## 
## Multivariate random-effects meta-analysis
## Dimension: 4
## Estimation method: ML
## 
## Fixed-effects coefficients
##     Estimate  Std. Error        z  Pr(>|z|)  95%ci.lb  95%ci.ub     
## y1   -0.0030      0.0006  -5.3705    0.0000   -0.0042   -0.0019  ***
## y2   -0.0055      0.0010  -5.2990    0.0000   -0.0075   -0.0035  ***
## y3   -0.0097      0.0015  -6.5720    0.0000   -0.0126   -0.0068  ***
## y4   -0.0030      0.0012  -2.3886    0.0169   -0.0054   -0.0005    *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 
## 
## Between-study random-effects (co)variance components
## Structure: General positive-definite
##     Std. Dev    Corr                
## y1    0.0016      y1      y2      y3
## y2    0.0032  0.7803                
## y3    0.0047  0.9658  0.9158        
## y4    0.0039  0.9911  0.6902  0.9227
## 
## Multivariate Cochran Q-test for heterogeneity:
## Q = 197.9010 (df = 44), p-value = 0.0000
## I-square statistic = 77.8%
## 
## 12 studies, 48 observations, 4 fixed and 10 random-effects parameters
##    logLik        AIC        BIC  
##  221.2760  -414.5519  -388.3551

## Call:  mvmeta(formula = y_nl_L2 ~ 1, S = S_nl_L2, method = "ml")
## 
## Multivariate random-effects meta-analysis
## Dimension: 4
## Estimation method: ML
## 
## Fixed-effects coefficients
##     Estimate  Std. Error        z  Pr(>|z|)  95%ci.lb  95%ci.ub     
## y1   -0.0029      0.0005  -5.3413    0.0000   -0.0040   -0.0019  ***
## y2   -0.0054      0.0010  -5.4234    0.0000   -0.0074   -0.0035  ***
## y3   -0.0095      0.0013  -7.1951    0.0000   -0.0121   -0.0069  ***
## y4   -0.0031      0.0012  -2.6642    0.0077   -0.0053   -0.0008   **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 
## 
## Between-study random-effects (co)variance components
## Structure: General positive-definite
##     Std. Dev    Corr                
## y1    0.0015      y1      y2      y3
## y2    0.0031  0.5240                
## y3    0.0040  0.8604  0.8849        
## y4    0.0035  0.9910  0.6335  0.9210
## 
## Multivariate Cochran Q-test for heterogeneity:
## Q = 178.9844 (df = 44), p-value = 0.0000
## I-square statistic = 75.4%
## 
## 12 studies, 48 observations, 4 fixed and 10 random-effects parameters
##    logLik        AIC        BIC  
##  221.4674  -414.9348  -388.7380