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(nocc_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]
}
## Warning in gam.fit3(x = args$X, y = args$y, sp = lsp, Eb = args$Eb, UrS =
## args$UrS, : Algorithm did not converge
# 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(nocc_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(nocc_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 0.9988 0.9978 0.9999 1.0001 1.0001 1.0002
clermont 0.9969 0.9954 0.9985 1.0004 1.0002 1.0005
grenoble 0.9964 0.9953 0.9976 1.0004 1.0003 1.0005
lehavre 0.9989 0.9976 1.0003 1.0001 1.0000 1.0003
lille 1.0002 0.9995 1.0008 1.0000 0.9999 1.0000
marseille 1.0003 0.9996 1.0009 1.0000 0.9999 1.0000
nantes 0.9955 0.9942 0.9968 1.0005 1.0004 1.0006
paris 1.0010 1.0007 1.0014 0.9999 0.9999 0.9999
rennes 0.9963 0.9943 0.9983 1.0005 1.0003 1.0006
rouen 0.9986 0.9976 0.9997 1.0002 1.0001 1.0002
strasbourg 0.9993 0.9982 1.0005 1.0002 1.0001 1.0003
toulouse 0.9975 0.9963 0.9987 1.0003 1.0002 1.0004
villes Increase_2002 Increase_2015 Temp_change
bordeaux 0.253 1.915 1.662
clermont 0.702 5.391 4.689
grenoble 0.695 5.334 4.639
lehavre 0.276 2.091 1.815
lille -0.082 -0.613 -0.531
marseille -0.071 -0.530 -0.460
nantes 0.986 7.649 6.663
paris -0.193 -1.437 -1.244
rennes 0.874 6.754 5.880
rouen 0.312 2.367 2.055
strasbourg 0.363 2.757 2.394
toulouse 0.530 4.046 3.516

Results For Lag1 exposure

Ville Coefficient_B0 B0_CI95_Low B0_CI95_High Coefficient_B1 LB_CI95_Low B1_CI95_High
bordeaux 0.9988 0.9978 0.9999 1.0001 1.0001 1.0002
clermont 0.9969 0.9954 0.9985 1.0004 1.0002 1.0005
grenoble 0.9964 0.9953 0.9976 1.0004 1.0003 1.0005
lehavre 0.9989 0.9976 1.0003 1.0001 1.0000 1.0003
lille 1.0002 0.9995 1.0008 1.0000 0.9999 1.0000
marseille 1.0003 0.9996 1.0009 1.0000 0.9999 1.0000
nantes 0.9955 0.9942 0.9968 1.0005 1.0004 1.0006
paris 1.0010 1.0007 1.0014 0.9999 0.9999 0.9999
rennes 0.9963 0.9943 0.9983 1.0005 1.0003 1.0006
rouen 0.9986 0.9976 0.9997 1.0002 1.0001 1.0002
strasbourg 0.9993 0.9982 1.0005 1.0002 1.0001 1.0003
toulouse 0.9975 0.9963 0.9987 1.0003 1.0002 1.0004
villes Increase_2002 Increase_2015 Temp_change
bordeaux 0.274 2.076 1.802
clermont 0.671 5.145 4.474
grenoble 0.631 4.830 4.200
lehavre 0.266 2.014 1.748
lille -0.069 -0.516 -0.447
marseille -0.079 -0.588 -0.510
nantes 0.966 7.489 6.523
paris -0.194 -1.443 -1.250
rennes 0.853 6.581 5.728
rouen 0.330 2.504 2.173
strasbourg 0.379 2.880 2.500
toulouse 0.482 3.672 3.191

Results For Lag2 exposure

Ville Coefficient_B0 B0_CI95_Low B0_CI95_High Coefficient_B1 LB_CI95_Low B1_CI95_High
bordeaux 0.9988 0.9978 0.9999 1.0001 1.0001 1.0002
clermont 0.9969 0.9954 0.9985 1.0004 1.0002 1.0005
grenoble 0.9964 0.9953 0.9976 1.0004 1.0003 1.0005
lehavre 0.9989 0.9976 1.0003 1.0001 1.0000 1.0003
lille 1.0002 0.9995 1.0008 1.0000 0.9999 1.0000
marseille 1.0003 0.9996 1.0009 1.0000 0.9999 1.0000
nantes 0.9955 0.9942 0.9968 1.0005 1.0004 1.0006
paris 1.0010 1.0007 1.0014 0.9999 0.9999 0.9999
rennes 0.9963 0.9943 0.9983 1.0005 1.0003 1.0006
rouen 0.9986 0.9976 0.9997 1.0002 1.0001 1.0002
strasbourg 0.9993 0.9982 1.0005 1.0002 1.0001 1.0003
toulouse 0.9975 0.9963 0.9987 1.0003 1.0002 1.0004
villes Increase_2002 Increase_2015 Temp_change
bordeaux 0.300 2.271 1.971
clermont 0.658 5.042 4.384
grenoble 0.622 4.765 4.143
lehavre 0.265 2.002 1.737
lille -0.070 -0.526 -0.455
marseille -0.091 -0.677 -0.586
nantes 0.956 7.401 6.446
paris -0.178 -1.331 -1.152
rennes 0.833 6.423 5.590
rouen 0.330 2.506 2.175
strasbourg 0.442 3.361 2.919
toulouse 0.513 3.914 3.401

Metanalysis of the results

For Lag0 exposure

##         Increase_2002 Increase_2015 Temp_change
## intrcpt      0.380617      2.890759    2.510142

Results For Lag1 exposure

##         Increase_2002 Increase_2015 Temp_change
## intrcpt      0.367635      2.790857    2.423222

Results For Lag2 exposure

##         Increase_2002 Increase_2015 Temp_change
## intrcpt     0.3728513      2.830965    2.458114

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(nocc_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(nocc_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(nocc_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.0005      0.0005  -1.0893    0.2760   -0.0014    0.0004     
## y2   -0.0001      0.0004  -0.3578    0.7205   -0.0008    0.0006     
## y3   -0.0012      0.0007  -1.5655    0.1175   -0.0026    0.0003     
## y4    0.0045      0.0008   5.4632    0.0000    0.0029    0.0061  ***
## ---
## 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.0014      y1      y2      y3
## y2    0.0011  0.4871                
## y3    0.0023  0.9057  0.8114        
## y4    0.0027  0.7224  0.9558  0.9475
## 
## Multivariate Cochran Q-test for heterogeneity:
## Q = 403.9164 (df = 44), p-value = 0.0000
## I-square statistic = 89.1%
## 
## 12 studies, 48 observations, 4 fixed and 10 random-effects parameters
##    logLik        AIC        BIC  
##  247.8010  -467.6020  -441.4052

## 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.0006      0.0004  -1.3867    0.1655   -0.0015    0.0003     
## y2   -0.0001      0.0003  -0.3491    0.7270   -0.0008    0.0006     
## y3   -0.0013      0.0007  -1.8016    0.0716   -0.0028    0.0001    .
## y4    0.0043      0.0008   5.4946    0.0000    0.0028    0.0058  ***
## ---
## 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.0013      y1      y2      y3
## y2    0.0010  0.5220                
## y3    0.0022  0.9246  0.8076        
## y4    0.0026  0.6856  0.9788  0.9113
## 
## Multivariate Cochran Q-test for heterogeneity:
## Q = 383.4221 (df = 44), p-value = 0.0000
## I-square statistic = 88.5%
## 
## 12 studies, 48 observations, 4 fixed and 10 random-effects parameters
##    logLik        AIC        BIC  
##  248.8098  -469.6196  -443.4227

## 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.0007      0.0004  -1.7009    0.0890   -0.0015    0.0001    .
## y2   -0.0001      0.0003  -0.1567    0.8755   -0.0007    0.0006     
## y3   -0.0013      0.0007  -1.7982    0.0721   -0.0027    0.0001    .
## y4    0.0042      0.0008   5.4678    0.0000    0.0027    0.0058  ***
## ---
## 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.0012      y1      y2      y3
## y2    0.0010  0.5862                
## y3    0.0021  0.9181  0.8593        
## y4    0.0025  0.7350  0.9802  0.9435
## 
## Multivariate Cochran Q-test for heterogeneity:
## Q = 375.7338 (df = 44), p-value = 0.0000
## I-square statistic = 88.3%
## 
## 12 studies, 48 observations, 4 fixed and 10 random-effects parameters
##    logLik        AIC        BIC  
##  249.0245  -470.0490  -443.8522