MA of pollution impacts on bird plumage colouration

Author

Katarzyna Janas, Agnieszka Gudowska, Szymek Drobniak

Published

February 12, 2024

1 Setup your session

Code
pacman::p_load(
    here, ggplot2, ggpubr, packcircles, metafor, devtools,
    patchwork, tidyverse, ape,
    R.rsp, emmeans
)
devtools::install_github("daniel1noble/orchaRd", force = TRUE)
devtools::install_github("daniel1noble/metaAidR", force = TRUE)
library(orchaRd)
library(metaAidR)
options(digits = 3, scipen = 5)

1.0.1 Helper functions

Code
run.model<-function(mydata,formula){
  
  mydata<-as.data.frame(mydata)
  Z <- make_VCV_matrix(mydata, V="Z_var", cluster = "Study_no", obs="es_ID")
  
  rma.mv(yi=ES_biol, V=Z,
         method="REML",
         mods= formula,
         random = list(~1|tip_label,
                       ~1|Study_no,
                       ~1|es_ID,
                       ~1|research_group),
         control=list(optimizer="optim",optmethod="Nelder-Mead"),
         data = mydata)
}

plot_continuous<-function(data, model, moderator, xlab){
  pred <- predict.rma(model)
  data %>% mutate(fit=pred$pred, 
                  ci.lb=pred$ci.lb,
                  ci.ub=pred$ci.ub,
                  pr.lb=pred$cr.lb,
                  pr.ub=pred$cr.ub) %>% 
    ggplot(aes(x = moderator, y = ES_biol)) +
    geom_ribbon(aes(ymin = pr.lb, ymax = pr.ub, color = NULL), alpha = .1) +
    geom_ribbon(aes(ymin = ci.lb, ymax = ci.ub, color = NULL), alpha = .3) +
    geom_point(aes(size=(1/sqrt(mydata$Z_var))), shape= 21, alpha=0.7, fill="#6F94B7", col="#305980") +
    geom_line(aes(y = fit), linewidth = 1.5)+  
    labs(x = xlab, y = "Effect size", size = "Precision (1/SE)") +
    theme_bw() +
    theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank()) +
    scale_size_continuous(range=c(1,12))+
    geom_hline(yintercept = 0, linetype = 2, colour = "black", alpha=0.5)+   
    theme(text = element_text(size = 18, colour = "black", hjust = 0.5),
          legend.text=element_text(size=14),
          legend.position=c(0,0), 
          legend.justification = c(0,0),
          legend.background = element_blank(), 
          legend.direction="horizontal",
          legend.title = element_text(size=15), 
          panel.border=element_rect(colour="black", fill=NA, size=1.2))
}

2 Load and process data

Original data

Raw data (both the “biological” and “physical” effect sizes) can be downloaded from this link. The files is a compressed archive with all datasets and the phylogenetic tree birdtree.tre.

Code
mydata <- read.csv(here("data", "ES_biol_2023.csv"), sep = ";")

# load phylogenetic tree
mytree <- multi2di(read.tree(here("data", "bird_tree.tre")))
mytree$edge.length[which(mytree$edge.length == 0)] = 1e-10

#subset tree to the species list
subtree <- drop.tip(mytree, setdiff(mytree$tip.label, mydata$tip_label))
cor <- vcv(subtree, cor = T)

#calculate weights
mydata$Z_var <- 1/(mydata$n-3)
mydata$weight <- 1/mydata$Z_var

3 Modelling

3.1 Model 0.0

Code
M0.0 <- rma.mv(yi = ES_biol, V = Z_var,
                        method = "REML",
                        mods = ~ 1,
                        random = list(~1|tip_label,
                                      ~1|research_group,
                                      ~1|Study_no,
                                      ~1|es_ID),
                        R = list(tip_label = cor),
                        control=list(optimizer="optim",optmethod="Nelder-Mead"),
                        data = mydata)
summary(M0.0)

Multivariate Meta-Analysis Model (k = 421; method: REML)

  logLik  Deviance       AIC       BIC      AICc   
-22.9203   45.8407   55.8407   76.0420   55.9856   

Variance Components:

            estim    sqrt  nlvls  fixed          factor    R 
sigma^2.1  0.0043  0.0654     25     no       tip_label  yes 
sigma^2.2  0.0050  0.0706     25     no  research_group   no 
sigma^2.3  0.0179  0.1339     59     no        Study_no   no 
sigma^2.4  0.0194  0.1395    402     no           es_ID   no 

Test for Heterogeneity:
Q(df = 420) = 1258.4298, p-val < .0001

Model Results:

estimate      se     zval    pval    ci.lb   ci.ub    
 -0.0819  0.0464  -1.7656  0.0775  -0.1728  0.0090  . 

---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

3.2 Model 0.1

Code
M0.1 <- rma.mv(yi = ES_biol, V = Z_var,
               method = "REML",
               mods = ~ 1,
               random = list(~1|tip_label,
                             ~1|research_group,
                             ~1|Study_no,
                             ~1|es_ID),
               control=list(optimizer="optim",optmethod="Nelder-Mead"),
               data = mydata)
summary(M0.1)

Multivariate Meta-Analysis Model (k = 421; method: REML)

  logLik  Deviance       AIC       BIC      AICc   
-21.4089   42.8179   52.8179   73.0191   52.9628   

Variance Components:

            estim    sqrt  nlvls  fixed          factor 
sigma^2.1  0.0108  0.1040     25     no       tip_label 
sigma^2.2  0.0021  0.0456     25     no  research_group 
sigma^2.3  0.0140  0.1181     59     no        Study_no 
sigma^2.4  0.0194  0.1392    402     no           es_ID 

Test for Heterogeneity:
Q(df = 420) = 1258.4298, p-val < .0001

Model Results:

estimate      se     zval    pval    ci.lb   ci.ub    
 -0.0602  0.0354  -1.6997  0.0892  -0.1296  0.0092  . 

---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Code
i2_ml(M0.1)
         I2_Total      I2_tip_label I2_research_group       I2_Study_no 
            76.51             17.89              3.44             23.10 
         I2_es_ID 
            32.08 

3.3 Model 1.0

Code
M1.0<- rma.mv(yi = ES_biol, V = Z_var,
              method = "REML",
              mods = ~ colour_type-1+sex+age+measured_part+study_type+raw_or_model+method ,
              random = list(~1|tip_label,
                            ~1|research_group,
                            ~1|Study_no,
                            ~1|es_ID),
              control=list(optimizer="optim",optmethod="Nelder-Mead"),
              data = mydata)
summary(M1.0)

Multivariate Meta-Analysis Model (k = 421; method: REML)

  logLik  Deviance       AIC       BIC      AICc   
 -5.5864   11.1728   43.1728  107.3922   44.5605   

Variance Components:

            estim    sqrt  nlvls  fixed          factor 
sigma^2.1  0.0113  0.1062     25     no       tip_label 
sigma^2.2  0.0008  0.0278     25     no  research_group 
sigma^2.3  0.0157  0.1254     59     no        Study_no 
sigma^2.4  0.0176  0.1327    402     no           es_ID 

Test for Residual Heterogeneity:
QE(df = 409) = 1078.8773, p-val < .0001

Test of Moderators (coefficients 1:12):
QM(df = 12) = 37.0666, p-val = 0.0002

Model Results:

                             estimate      se     zval    pval    ci.lb 
colour_typecarotenoid-based   -0.3099  0.0947  -3.2726  0.0011  -0.4956 
colour_typemelanin-based      -0.1118  0.0960  -1.1647  0.2441  -0.2998 
colour_typestructural         -0.1693  0.1039  -1.6292  0.1033  -0.3729 
sexM                          -0.0897  0.0499  -1.7977  0.0722  -0.1876 
sexM/F                        -0.0144  0.0589  -0.2451  0.8064  -0.1298 
ageJUV                         0.1004  0.0592   1.6953  0.0900  -0.0157 
ageMIXED                       0.1131  0.1003   1.1277  0.2595  -0.0835 
measured_partfeathers         -0.0365  0.0533  -0.6844  0.4937  -0.1411 
study_typeO                    0.0849  0.0596   1.4253  0.1541  -0.0319 
raw_or_modelraw                0.0739  0.0474   1.5585  0.1191  -0.0190 
methodphoto                    0.1453  0.0694   2.0954  0.0361   0.0094 
methodspectro                  0.1258  0.0603   2.0868  0.0369   0.0077 
                               ci.ub     
colour_typecarotenoid-based  -0.1243  ** 
colour_typemelanin-based      0.0763     
colour_typestructural         0.0344     
sexM                          0.0081   . 
sexM/F                        0.1010     
ageJUV                        0.2164   . 
ageMIXED                      0.3096     
measured_partfeathers         0.0680     
study_typeO                   0.2017     
raw_or_modelraw               0.1668     
methodphoto                   0.2813   * 
methodspectro                 0.2440   * 

---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Code
orchard_plot(M1.0, mod = "colour_type", group = "Study_no", by="method", xlab = "Correlation coefficient", transfm = "none", alpha = 0.4, angle = 0,  cb = FALSE, legend.pos = "top.left", condition.lab = "Method") + theme(legend.direction = "vertical")  
#extraction of marginal estimates for colour type from the M1.0:
res_colour_type <- orchaRd::mod_results(M1.0, mod = "colour_type",  group = "Study_no") 
res_colour_type
              name estimate lowerCL upperCL lowerPR upperPR
1 Carotenoid-based -0.14833 -0.2293 -0.0673  -0.574   0.277
2    Melanin-based  0.04984 -0.0507  0.1504  -0.380   0.479
3       Structural -0.00766 -0.1251  0.1098  -0.441   0.426

Figure 1— Orchard plot of the impact of pollution on avian colour traits as a function of the colour-producing mechanism conditioned for the measurement method (Nakagawa et al. 2023); Fig. 2 in the manuscript

Code
orchard_plot(M1.0, mod = "sex", group = "Study_no", xlab = "Correlation coefficient (r)", angle = 0,legend.pos = "top.left",  cb = FALSE) + theme(legend.direction = "vertical") 
res_sex <- orchaRd::mod_results(M1.0, mod = "sex",  group = "Study_no")
res_sex
  name estimate lowerCL upperCL lowerPR upperPR
1    F  -0.0497  -0.161  0.0618  -0.482   0.382
2    M  -0.1394  -0.234 -0.0445  -0.568   0.289
3  M/F  -0.0641  -0.151  0.0226  -0.490   0.362

Figure 2— Impact of sex on effect sizes; Fig. S2.A in the manuscript

Code
orchard_plot(M1.0, mod = "age", group = "Study_no", xlab = "Correlation coefficient (r)", angle = 0,legend.pos = "top.left",  cb = FALSE) + theme(legend.direction = "vertical") 
res_age <- orchaRd::mod_results(M1.0, mod = "age",  group = "Study_no")
res_age
   name estimate lowerCL upperCL lowerPR upperPR
1    AD -0.11037  -0.188  -0.033  -0.535   0.314
2   JUV -0.01001  -0.128   0.108  -0.444   0.424
3 MIXED  0.00272  -0.197   0.203  -0.460   0.466

Figure 3— Impact of age class on effect sizes; Fig. S2.B in the manuscript

Code
orchard_plot(M1.0, mod = "measured_part", group = "Study_no", xlab = "Correlation coefficient (r)", angle = 0,legend.pos = "top.left",  cb = FALSE) + theme(legend.direction = "vertical") 
res_measured_part <- orchaRd::mod_results(M1.0, mod = "measured_part",  group = "Study_no")
res_measured_part
       name estimate lowerCL upperCL lowerPR upperPR
1 Bare part  -0.0688  -0.167  0.0293  -0.498    0.36
2  Feathers  -0.1053  -0.189 -0.0218  -0.531    0.32

Figure 4— Impact of sampling region on effect sizes; Fig. S2.C in the manuscript

Code
orchard_plot(M1.0, mod = "raw_or_model", group = "Study_no", xlab = "Correlation coefficient (r)", angle = 0,legend.pos = "top.left",  cb = FALSE) + theme(legend.direction = "vertical") 
res_raw_or_model <- orchaRd::mod_results(M1.0, mod = "raw_or_model",  group = "Study_no")
res_raw_or_model
   name estimate lowerCL upperCL lowerPR upperPR
1 Model  -0.1248  -0.213 -0.0371  -0.551   0.302
2   Raw  -0.0509  -0.137  0.0348  -0.477   0.375

Figure 5— Impact of data type on effect sizes; Fig. S3.A in the manuscript

Code
orchard_plot(M1.0, mod = "study_type", group = "Study_no", xlab = "Correlation coefficient (r)", angle = 0,legend.pos = "top.left",  cb = TRUE) + theme(legend.direction = "vertical") 
res_study_type <- orchaRd::mod_results(M1.0, mod = "study_type",  group = "Study_no")
res_study_type
  name estimate lowerCL upperCL lowerPR upperPR
1    E   -0.146  -0.258 -0.0336  -0.578   0.286
2    O   -0.061  -0.140  0.0181  -0.486   0.364

Figure 6— Impact of study type on effect sizes; Fig. S3.B in the manuscript

Code
orchard_plot(M1.0, mod = "method", group = "Study_no", xlab = "Correlation coefficient (r)", angle = 0,legend.pos = "top.left",  cb = TRUE) + theme(legend.direction = "vertical") 
res_method <- orchaRd::mod_results(M1.0, mod = "method",  group = "Study_no")
res_method
     name estimate lowerCL  upperCL lowerPR upperPR
1   Other  -0.2131  -0.334 -0.09190  -0.648   0.222
2   Photo  -0.0677  -0.169  0.03384  -0.497   0.362
3 Spectro  -0.0872  -0.169 -0.00513  -0.513   0.338

Figure 7— Impact of measurement method on effect sizesl; Fig. S3.C in the manuscript

3.4 Models 2.1 - 2.4

3.4.1 Model 2.1 (on the subset of ‘hue’)

Code
hue <- subset(mydata, HSB == "hue")
# summary(hue)
mydata$Z_var <- 1/(mydata$n-3)
mydata$weight <- 1/mydata$Z_var
M2.1 <- rma.mv(yi = ES_biol, V = Z_var,
                    method = "REML",
                    mods = ~colour_type+pollution_type+colour_type:pollution_type+
                    sex+age+measured_part+study_type +raw_or_model+ method,
                    random = list(~1|tip_label,
                                  ~1|Study_no,
                                  ~1|es_ID),
                    control=list(optimizer="optim",optmethod="Nelder-Mead"),
                    data = hue)
Warning: Redundant predictors dropped from the model.
Code
summary(M2.1)# interaction not significant

Multivariate Meta-Analysis Model (k = 95; method: REML)

  logLik  Deviance       AIC       BIC      AICc   
 18.1084  -36.2167   -2.2167   38.4889    7.4976   

Variance Components:

            estim    sqrt  nlvls  fixed     factor 
sigma^2.1  0.0172  0.1310     13     no  tip_label 
sigma^2.2  0.0206  0.1437     25     no   Study_no 
sigma^2.3  0.0088  0.0937     95     no      es_ID 

Test for Residual Heterogeneity:
QE(df = 81) = 229.2318, p-val < .0001

Test of Moderators (coefficients 2:14):
QM(df = 13) = 13.9010, p-val = 0.3809

Model Results:

                                                  estimate      se     zval 
intrcpt                                            -0.2172  0.2265  -0.9588 
colour_typemelanin-based                            0.0986  0.2038   0.4837 
colour_typestructural                               0.0058  0.1826   0.0320 
pollution_typepersistent_organic_pollutants         0.0890  0.0954   0.9325 
pollution_typeurbanisation                          0.0639  0.1132   0.5649 
sexM                                               -0.1095  0.0878  -1.2475 
sexM/F                                              0.0660  0.1216   0.5428 
ageJUV                                              0.0661  0.1411   0.4687 
ageMIXED                                            0.1046  0.1907   0.5485 
measured_partfeathers                              -0.1072  0.1255  -0.8546 
study_typeO                                         0.0065  0.2008   0.0326 
raw_or_modelraw                                    -0.1607  0.1042  -1.5414 
methodspectro                                       0.1754  0.1420   1.2356 
colour_typestructural:pollution_typeurbanisation    0.2831  0.3262   0.8678 
                                                    pval    ci.lb   ci.ub    
intrcpt                                           0.3376  -0.6611  0.2268    
colour_typemelanin-based                          0.6286  -0.3009  0.4980    
colour_typestructural                             0.9745  -0.3520  0.3637    
pollution_typepersistent_organic_pollutants       0.3511  -0.0980  0.2760    
pollution_typeurbanisation                        0.5721  -0.1579  0.2858    
sexM                                              0.2122  -0.2816  0.0626    
sexM/F                                            0.5873  -0.1724  0.3044    
ageJUV                                            0.6393  -0.2104  0.3427    
ageMIXED                                          0.5833  -0.2692  0.4785    
measured_partfeathers                             0.3928  -0.3531  0.1387    
study_typeO                                       0.9740  -0.3871  0.4002    
raw_or_modelraw                                   0.1232  -0.3650  0.0436    
methodspectro                                     0.2166  -0.1028  0.4537    
colour_typestructural:pollution_typeurbanisation  0.3855  -0.3563  0.9225    

---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Code
M2.1 <- rma.mv(yi = ES_biol, V = Z_var,
                    method = "REML",
                    mods = ~colour_type+pollution_type+sex+age+measured_part
                    + study_type +raw_or_model+ method,
                    random = list(~1|tip_label,
                                  ~1|Study_no,
                                  ~1|es_ID),
                    control=list(optimizer="optim",optmethod="Nelder-Mead"),
                    data = hue)

summary(M2.1)

Multivariate Meta-Analysis Model (k = 95; method: REML)

  logLik  Deviance       AIC       BIC      AICc   
 17.9865  -35.9730   -3.9730   34.5345    4.3962   

Variance Components:

            estim    sqrt  nlvls  fixed     factor 
sigma^2.1  0.0171  0.1306     13     no  tip_label 
sigma^2.2  0.0200  0.1414     25     no   Study_no 
sigma^2.3  0.0088  0.0937     95     no      es_ID 

Test for Residual Heterogeneity:
QE(df = 82) = 234.1609, p-val < .0001

Test of Moderators (coefficients 2:13):
QM(df = 12) = 13.2791, p-val = 0.3491

Model Results:

                                             estimate      se     zval    pval 
intrcpt                                       -0.2637  0.2185  -1.2066  0.2276 
colour_typemelanin-based                       0.1110  0.2027   0.5473  0.5842 
colour_typestructural                          0.0869  0.1560   0.5571  0.5775 
pollution_typepersistent_organic_pollutants    0.0974  0.0948   1.0275  0.3042 
pollution_typeurbanisation                     0.0873  0.1092   0.7996  0.4239 
sexM                                          -0.1119  0.0877  -1.2764  0.2018 
sexM/F                                         0.0746  0.1206   0.6181  0.5365 
ageJUV                                         0.1031  0.1336   0.7723  0.4400 
ageMIXED                                       0.1306  0.1861   0.7018  0.4828 
measured_partfeathers                         -0.1152  0.1247  -0.9239  0.3555 
study_typeO                                    0.0350  0.1966   0.1779  0.8588 
raw_or_modelraw                               -0.1289  0.0964  -1.3369  0.1813 
methodspectro                                  0.1703  0.1409   1.2081  0.2270 
                                               ci.lb   ci.ub    
intrcpt                                      -0.6920  0.1646    
colour_typemelanin-based                     -0.2864  0.5083    
colour_typestructural                        -0.2189  0.3928    
pollution_typepersistent_organic_pollutants  -0.0884  0.2831    
pollution_typeurbanisation                   -0.1267  0.3014    
sexM                                         -0.2837  0.0599    
sexM/F                                       -0.1619  0.3110    
ageJUV                                       -0.1586  0.3649    
ageMIXED                                     -0.2342  0.4954    
measured_partfeathers                        -0.3597  0.1292    
study_typeO                                  -0.3504  0.4203    
raw_or_modelraw                              -0.3179  0.0601    
methodspectro                                -0.1060  0.4465    

---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

3.4.2 Model 2.2 (on the subset of ‘saturation’)

Code
saturation <- subset(mydata, HSB == "saturation")
# summary(saturation)
M2.2 <- rma.mv(yi = ES_biol, V = Z_var,
                           method = "REML",
                           mods = ~colour_type+pollution_type+colour_type:pollution_type
                           +sex+age+measured_part+ study_type +raw_or_model+ method,
                           random = list(~1|tip_label,
                                         ~1|Study_no,
                                         ~1|es_ID),
                           control=list(optimizer="optim",optmethod="Nelder-Mead"),
                           data = saturation)
Warning: Redundant predictors dropped from the model.
Code
summary(M2.2)# interaction not significant

Multivariate Meta-Analysis Model (k = 105; method: REML)

  logLik  Deviance       AIC       BIC      AICc   
  8.8067  -17.6134   16.3866   59.0712   24.7701   

Variance Components:

            estim    sqrt  nlvls  fixed     factor 
sigma^2.1  0.0000  0.0000     13     no  tip_label 
sigma^2.2  0.0137  0.1171     27     no   Study_no 
sigma^2.3  0.0144  0.1201    105     no      es_ID 

Test for Residual Heterogeneity:
QE(df = 91) = 248.1211, p-val < .0001

Test of Moderators (coefficients 2:14):
QM(df = 13) = 23.0519, p-val = 0.0411

Model Results:

                                                  estimate      se     zval 
intrcpt                                            -0.0034  0.1971  -0.0172 
colour_typemelanin-based                            0.2411  0.1840   1.3100 
colour_typestructural                               0.3094  0.1117   2.7693 
pollution_typepersistent_organic_pollutants         0.0935  0.0877   1.0659 
pollution_typeurbanisation                          0.0107  0.0778   0.1381 
sexM                                               -0.0146  0.1317  -0.1106 
sexM/F                                             -0.1043  0.1545  -0.6751 
ageJUV                                             -0.0261  0.0922  -0.2834 
ageMIXED                                            0.0613  0.1538   0.3983 
measured_partfeathers                               0.0407  0.1002   0.4060 
study_typeO                                         0.0570  0.1085   0.5254 
raw_or_modelraw                                     0.0228  0.0869   0.2620 
methodspectro                                      -0.1714  0.1064  -1.6116 
colour_typestructural:pollution_typeurbanisation    0.1827  0.2368   0.7716 
                                                    pval    ci.lb   ci.ub     
intrcpt                                           0.9863  -0.3896  0.3829     
colour_typemelanin-based                          0.1902  -0.1196  0.6017     
colour_typestructural                             0.0056   0.0904  0.5283  ** 
pollution_typepersistent_organic_pollutants       0.2865  -0.0784  0.2655     
pollution_typeurbanisation                        0.8902  -0.1417  0.1631     
sexM                                              0.9120  -0.2728  0.2437     
sexM/F                                            0.4996  -0.4072  0.1986     
ageJUV                                            0.7769  -0.2069  0.1546     
ageMIXED                                          0.6904  -0.2401  0.3626     
measured_partfeathers                             0.6847  -0.1557  0.2371     
study_typeO                                       0.5993  -0.1557  0.2697     
raw_or_modelraw                                   0.7933  -0.1476  0.1932     
methodspectro                                     0.1071  -0.3799  0.0371     
colour_typestructural:pollution_typeurbanisation  0.4403  -0.2813  0.6467     

---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Code
M2.2 <- rma.mv(yi = ES_biol, V = Z_var,
                           method = "REML",
                           mods = ~colour_type+pollution_type+sex+age+measured_part
                           +study_type +raw_or_model+ method,
                           random = list(~1|tip_label,
                                         ~1|Study_no,
                                         ~1|es_ID),
                           control=list(optimizer="optim",optmethod="Nelder-Mead"),
                           data = saturation)
summary(M2.2)

Multivariate Meta-Analysis Model (k = 105; method: REML)

  logLik  Deviance       AIC       BIC      AICc   
  8.9908  -17.9816   14.0184   54.3670   21.2718   

Variance Components:

            estim    sqrt  nlvls  fixed     factor 
sigma^2.1  0.0000  0.0000     13     no  tip_label 
sigma^2.2  0.0128  0.1131     27     no   Study_no 
sigma^2.3  0.0146  0.1207    105     no      es_ID 

Test for Residual Heterogeneity:
QE(df = 92) = 249.0711, p-val < .0001

Test of Moderators (coefficients 2:13):
QM(df = 12) = 23.0733, p-val = 0.0271

Model Results:

                                             estimate      se     zval    pval 
intrcpt                                       -0.0395  0.1903  -0.2077  0.8354 
colour_typemelanin-based                       0.2457  0.1829   1.3428  0.1793 
colour_typestructural                          0.3547  0.0930   3.8125  0.0001 
pollution_typepersistent_organic_pollutants    0.1029  0.0868   1.1860  0.2356 
pollution_typeurbanisation                     0.0235  0.0759   0.3095  0.7569 
sexM                                          -0.0255  0.1305  -0.1952  0.8452 
sexM/F                                        -0.1149  0.1532  -0.7504  0.4530 
ageJUV                                         0.0009  0.0845   0.0107  0.9915 
ageMIXED                                       0.0742  0.1491   0.4974  0.6189 
measured_partfeathers                          0.0352  0.0990   0.3558  0.7220 
study_typeO                                    0.0838  0.1017   0.8239  0.4100 
raw_or_modelraw                                0.0479  0.0791   0.6059  0.5446 
methodspectro                                 -0.1659  0.1048  -1.5836  0.1133 
                                               ci.lb   ci.ub      
intrcpt                                      -0.4124  0.3334      
colour_typemelanin-based                     -0.1129  0.6042      
colour_typestructural                         0.1724  0.5370  *** 
pollution_typepersistent_organic_pollutants  -0.0671  0.2729      
pollution_typeurbanisation                   -0.1252  0.1722      
sexM                                         -0.2813  0.2304      
sexM/F                                       -0.4151  0.1853      
ageJUV                                       -0.1647  0.1665      
ageMIXED                                     -0.2181  0.3664      
measured_partfeathers                        -0.1589  0.2294      
study_typeO                                  -0.1156  0.2832      
raw_or_modelraw                              -0.1071  0.2029      
methodspectro                                -0.3712  0.0394      

---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

3.4.3 Model 2.3 (on the subset of ‘brightness’)

Code
brightness <- subset(mydata, HSB == "brightness")
# summary(brightness)
M2.3<- rma.mv(yi = ES_biol, V = Z_var,
                          method = "REML",
                          mods = ~colour_type+pollution_type+colour_type:pollution_type+sex+age+measured_part+ study_type +raw_or_model+ method,
                          random = list(~1|tip_label,
                                        ~1|Study_no,
                                        ~1|es_ID),
                          control=list(optimizer="optim",optmethod="Nelder-Mead"),
                          data = brightness)
Warning: Redundant predictors dropped from the model.
Code
summary(M2.3)# interaction significant

Multivariate Meta-Analysis Model (k = 96; method: REML)

  logLik  Deviance       AIC       BIC      AICc   
 13.4732  -26.9463   11.0537   56.3122   23.7203   

Variance Components:

            estim    sqrt  nlvls  fixed     factor 
sigma^2.1  0.0229  0.1514     13     no  tip_label 
sigma^2.2  0.0750  0.2739     17     no   Study_no 
sigma^2.3  0.0030  0.0552     95     no      es_ID 

Test for Residual Heterogeneity:
QE(df = 80) = 126.9029, p-val = 0.0007

Test of Moderators (coefficients 2:16):
QM(df = 15) = 25.3802, p-val = 0.0451

Model Results:

                                                                      estimate 
intrcpt                                                                -0.0003 
colour_typemelanin-based                                                0.1185 
colour_typestructural                                                  -0.0958 
pollution_typepersistent_organic_pollutants                             0.2689 
pollution_typeurbanisation                                              0.1515 
sexM                                                                   -0.1778 
sexM/F                                                                 -0.0422 
ageJUV                                                                 -0.1763 
ageMIXED                                                                0.0437 
measured_partfeathers                                                  -0.0597 
study_typeO                                                            -0.2047 
raw_or_modelraw                                                         0.0890 
methodspectro                                                           0.2689 
colour_typemelanin-based:pollution_typepersistent_organic_pollutants   -0.7469 
colour_typemelanin-based:pollution_typeurbanisation                    -0.0404 
colour_typestructural:pollution_typeurbanisation                       -0.0571 
                                                                          se 
intrcpt                                                               0.6445 
colour_typemelanin-based                                              0.0739 
colour_typestructural                                                 0.1126 
pollution_typepersistent_organic_pollutants                           0.0920 
pollution_typeurbanisation                                            0.3675 
sexM                                                                  0.1153 
sexM/F                                                                0.1883 
ageJUV                                                                0.2128 
ageMIXED                                                              0.3390 
measured_partfeathers                                                 0.0837 
study_typeO                                                           0.3673 
raw_or_modelraw                                                       0.3618 
methodspectro                                                         0.4400 
colour_typemelanin-based:pollution_typepersistent_organic_pollutants  0.3892 
colour_typemelanin-based:pollution_typeurbanisation                   0.6103 
colour_typestructural:pollution_typeurbanisation                      0.6024 
                                                                         zval 
intrcpt                                                               -0.0004 
colour_typemelanin-based                                               1.6042 
colour_typestructural                                                 -0.8509 
pollution_typepersistent_organic_pollutants                            2.9230 
pollution_typeurbanisation                                             0.4122 
sexM                                                                  -1.5415 
sexM/F                                                                -0.2241 
ageJUV                                                                -0.8288 
ageMIXED                                                               0.1290 
measured_partfeathers                                                 -0.7124 
study_typeO                                                           -0.5574 
raw_or_modelraw                                                        0.2460 
methodspectro                                                          0.6112 
colour_typemelanin-based:pollution_typepersistent_organic_pollutants  -1.9193 
colour_typemelanin-based:pollution_typeurbanisation                   -0.0661 
colour_typestructural:pollution_typeurbanisation                      -0.0947 
                                                                        pval 
intrcpt                                                               0.9997 
colour_typemelanin-based                                              0.1087 
colour_typestructural                                                 0.3948 
pollution_typepersistent_organic_pollutants                           0.0035 
pollution_typeurbanisation                                            0.6802 
sexM                                                                  0.1232 
sexM/F                                                                0.8227 
ageJUV                                                                0.4072 
ageMIXED                                                              0.8973 
measured_partfeathers                                                 0.4762 
study_typeO                                                           0.5773 
raw_or_modelraw                                                       0.8057 
methodspectro                                                         0.5411 
colour_typemelanin-based:pollution_typepersistent_organic_pollutants  0.0549 
colour_typemelanin-based:pollution_typeurbanisation                   0.9473 
colour_typestructural:pollution_typeurbanisation                      0.9246 
                                                                        ci.lb 
intrcpt                                                               -1.2634 
colour_typemelanin-based                                              -0.0263 
colour_typestructural                                                 -0.3166 
pollution_typepersistent_organic_pollutants                            0.0886 
pollution_typeurbanisation                                            -0.5687 
sexM                                                                  -0.4039 
sexM/F                                                                -0.4113 
ageJUV                                                                -0.5934 
ageMIXED                                                              -0.6206 
measured_partfeathers                                                 -0.2238 
study_typeO                                                           -0.9247 
raw_or_modelraw                                                       -0.6201 
methodspectro                                                         -0.5935 
colour_typemelanin-based:pollution_typepersistent_organic_pollutants  -1.5096 
colour_typemelanin-based:pollution_typeurbanisation                   -1.2365 
colour_typestructural:pollution_typeurbanisation                      -1.2378 
                                                                       ci.ub 
intrcpt                                                               1.2629 
colour_typemelanin-based                                              0.2634 
colour_typestructural                                                 0.1249 
pollution_typepersistent_organic_pollutants                           0.4492 
pollution_typeurbanisation                                            0.8717 
sexM                                                                  0.0483 
sexM/F                                                                0.3269 
ageJUV                                                                0.2407 
ageMIXED                                                              0.7081 
measured_partfeathers                                                 0.1045 
study_typeO                                                           0.5152 
raw_or_modelraw                                                       0.7982 
methodspectro                                                         1.1313 
colour_typemelanin-based:pollution_typepersistent_organic_pollutants  0.0158 
colour_typemelanin-based:pollution_typeurbanisation                   1.1557 
colour_typestructural:pollution_typeurbanisation                      1.1237 
                                                                         
intrcpt                                                                  
colour_typemelanin-based                                                 
colour_typestructural                                                    
pollution_typepersistent_organic_pollutants                           ** 
pollution_typeurbanisation                                               
sexM                                                                     
sexM/F                                                                   
ageJUV                                                                   
ageMIXED                                                                 
measured_partfeathers                                                    
study_typeO                                                              
raw_or_modelraw                                                          
methodspectro                                                            
colour_typemelanin-based:pollution_typepersistent_organic_pollutants   . 
colour_typemelanin-based:pollution_typeurbanisation                      
colour_typestructural:pollution_typeurbanisation                         

---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

3.4.4 Model 2.4 (on the subset of ‘other’)

Code
other <- subset(mydata, HSB == "other")
# summary(other)
M2.4<- rma.mv(yi = ES_biol, V = Z_var,
                     method = "REML",
                     mods = ~colour_type+pollution_type+colour_type:pollution_type
                     +sex+age+measured_part+ study_type +raw_or_model+ method,
                     random = list(~1|tip_label,
                                   ~1|Study_no,
                                   ~1|es_ID),
                     control=list(optimizer="optim",optmethod="Nelder-Mead"),
                     data = other)
Warning: Redundant predictors dropped from the model.
Code
summary(M2.4)# interaction not significant

Multivariate Meta-Analysis Model (k = 125; method: REML)

  logLik  Deviance       AIC       BIC      AICc   
 -8.0858   16.1717   60.1717  118.7673   72.3644   

Variance Components:

            estim    sqrt  nlvls  fixed     factor 
sigma^2.1  0.0000  0.0000     20     no  tip_label 
sigma^2.2  0.0232  0.1523     32     no   Study_no 
sigma^2.3  0.0217  0.1473    125     no      es_ID 

Test for Residual Heterogeneity:
QE(df = 106) = 214.7590, p-val < .0001

Test of Moderators (coefficients 2:19):
QM(df = 18) = 43.4694, p-val = 0.0007

Model Results:

                                                                      estimate 
intrcpt                                                                -0.4828 
colour_typemelanin-based                                                0.4200 
colour_typestructural                                                   0.4827 
pollution_typeother                                                    -0.0760 
pollution_typepersistent_organic_pollutants                            -0.2350 
pollution_typeurbanisation                                              0.2683 
sexM                                                                   -0.0261 
sexM/F                                                                 -0.0243 
ageJUV                                                                  0.1667 
ageMIXED                                                                0.0706 
measured_partfeathers                                                  -0.2260 
study_typeO                                                             0.1839 
raw_or_modelraw                                                         0.1229 
methodphoto                                                             0.2194 
methodspectro                                                           0.2333 
colour_typestructural:pollution_typeother                              -0.1422 
colour_typemelanin-based:pollution_typepersistent_organic_pollutants    0.3514 
colour_typestructural:pollution_typepersistent_organic_pollutants       0.3385 
colour_typemelanin-based:pollution_typeurbanisation                    -0.3407 
                                                                          se 
intrcpt                                                               0.1553 
colour_typemelanin-based                                              0.1810 
colour_typestructural                                                 0.1943 
pollution_typeother                                                   0.2641 
pollution_typepersistent_organic_pollutants                           0.1630 
pollution_typeurbanisation                                            0.1819 
sexM                                                                  0.0848 
sexM/F                                                                0.1124 
ageJUV                                                                0.1151 
ageMIXED                                                              0.1522 
measured_partfeathers                                                 0.1429 
study_typeO                                                           0.1035 
raw_or_modelraw                                                       0.0914 
methodphoto                                                           0.0944 
methodspectro                                                         0.1049 
colour_typestructural:pollution_typeother                             0.3263 
colour_typemelanin-based:pollution_typepersistent_organic_pollutants  0.2545 
colour_typestructural:pollution_typepersistent_organic_pollutants     0.3187 
colour_typemelanin-based:pollution_typeurbanisation                   0.2079 
                                                                         zval 
intrcpt                                                               -3.1081 
colour_typemelanin-based                                               2.3205 
colour_typestructural                                                  2.4850 
pollution_typeother                                                   -0.2876 
pollution_typepersistent_organic_pollutants                           -1.4417 
pollution_typeurbanisation                                             1.4750 
sexM                                                                  -0.3079 
sexM/F                                                                -0.2163 
ageJUV                                                                 1.4481 
ageMIXED                                                               0.4641 
measured_partfeathers                                                 -1.5813 
study_typeO                                                            1.7772 
raw_or_modelraw                                                        1.3444 
methodphoto                                                            2.3251 
methodspectro                                                          2.2233 
colour_typestructural:pollution_typeother                             -0.4357 
colour_typemelanin-based:pollution_typepersistent_organic_pollutants   1.3809 
colour_typestructural:pollution_typepersistent_organic_pollutants      1.0624 
colour_typemelanin-based:pollution_typeurbanisation                   -1.6387 
                                                                        pval 
intrcpt                                                               0.0019 
colour_typemelanin-based                                              0.0203 
colour_typestructural                                                 0.0130 
pollution_typeother                                                   0.7737 
pollution_typepersistent_organic_pollutants                           0.1494 
pollution_typeurbanisation                                            0.1402 
sexM                                                                  0.7581 
sexM/F                                                                0.8288 
ageJUV                                                                0.1476 
ageMIXED                                                              0.6425 
measured_partfeathers                                                 0.1138 
study_typeO                                                           0.0755 
raw_or_modelraw                                                       0.1788 
methodphoto                                                           0.0201 
methodspectro                                                         0.0262 
colour_typestructural:pollution_typeother                             0.6631 
colour_typemelanin-based:pollution_typepersistent_organic_pollutants  0.1673 
colour_typestructural:pollution_typepersistent_organic_pollutants     0.2881 
colour_typemelanin-based:pollution_typeurbanisation                   0.1013 
                                                                        ci.lb 
intrcpt                                                               -0.7872 
colour_typemelanin-based                                               0.0652 
colour_typestructural                                                  0.1020 
pollution_typeother                                                   -0.5937 
pollution_typepersistent_organic_pollutants                           -0.5545 
pollution_typeurbanisation                                            -0.0882 
sexM                                                                  -0.1924 
sexM/F                                                                -0.2446 
ageJUV                                                                -0.0589 
ageMIXED                                                              -0.2276 
measured_partfeathers                                                 -0.5061 
study_typeO                                                           -0.0189 
raw_or_modelraw                                                       -0.0563 
methodphoto                                                            0.0345 
methodspectro                                                          0.0276 
colour_typestructural:pollution_typeother                             -0.7818 
colour_typemelanin-based:pollution_typepersistent_organic_pollutants  -0.1473 
colour_typestructural:pollution_typepersistent_organic_pollutants     -0.2860 
colour_typemelanin-based:pollution_typeurbanisation                   -0.7481 
                                                                        ci.ub 
intrcpt                                                               -0.1783 
colour_typemelanin-based                                               0.7747 
colour_typestructural                                                  0.8635 
pollution_typeother                                                    0.4418 
pollution_typepersistent_organic_pollutants                            0.0845 
pollution_typeurbanisation                                             0.6248 
sexM                                                                   0.1401 
sexM/F                                                                 0.1960 
ageJUV                                                                 0.3923 
ageMIXED                                                               0.3689 
measured_partfeathers                                                  0.0541 
study_typeO                                                            0.3867 
raw_or_modelraw                                                        0.3021 
methodphoto                                                            0.4044 
methodspectro                                                          0.4389 
colour_typestructural:pollution_typeother                              0.4974 
colour_typemelanin-based:pollution_typepersistent_organic_pollutants   0.8501 
colour_typestructural:pollution_typepersistent_organic_pollutants      0.9631 
colour_typemelanin-based:pollution_typeurbanisation                    0.0668 
                                                                         
intrcpt                                                               ** 
colour_typemelanin-based                                               * 
colour_typestructural                                                  * 
pollution_typeother                                                      
pollution_typepersistent_organic_pollutants                              
pollution_typeurbanisation                                               
sexM                                                                     
sexM/F                                                                   
ageJUV                                                                   
ageMIXED                                                                 
measured_partfeathers                                                    
study_typeO                                                            . 
raw_or_modelraw                                                          
methodphoto                                                            * 
methodspectro                                                          * 
colour_typestructural:pollution_typeother                                
colour_typemelanin-based:pollution_typepersistent_organic_pollutants     
colour_typestructural:pollution_typepersistent_organic_pollutants        
colour_typemelanin-based:pollution_typeurbanisation                      

---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Code
M2.4<- rma.mv(yi = ES_biol, V = Z_var,
                     method = "REML",
                     mods = ~colour_type+pollution_type+sex+age+measured_part+study_type
                     +raw_or_model+ method,
                     random = list(~1|tip_label,
                                   ~1|Study_no,
                                   ~1|es_ID),
                     control=list(optimizer="optim",optmethod="Nelder-Mead"),
                     data = other)
summary(M2.4)

Multivariate Meta-Analysis Model (k = 125; method: REML)

  logLik  Deviance       AIC       BIC      AICc   
-11.0174   22.0347   58.0347  106.6434   65.5512   

Variance Components:

            estim    sqrt  nlvls  fixed     factor 
sigma^2.1  0.0000  0.0001     20     no  tip_label 
sigma^2.2  0.0388  0.1970     32     no   Study_no 
sigma^2.3  0.0209  0.1447    125     no      es_ID 

Test for Residual Heterogeneity:
QE(df = 110) = 275.3088, p-val < .0001

Test of Moderators (coefficients 2:15):
QM(df = 14) = 30.7969, p-val = 0.0059

Model Results:

                                             estimate      se     zval    pval 
intrcpt                                       -0.5089  0.1546  -3.2912  0.0010 
colour_typemelanin-based                       0.3030  0.1535   1.9741  0.0484 
colour_typestructural                          0.3601  0.1696   2.1233  0.0337 
pollution_typeother                           -0.1289  0.2161  -0.5965  0.5508 
pollution_typepersistent_organic_pollutants   -0.1240  0.1294  -0.9584  0.3378 
pollution_typeurbanisation                     0.0495  0.1215   0.4069  0.6841 
sexM                                          -0.0341  0.0837  -0.4074  0.6837 
sexM/F                                        -0.0051  0.1196  -0.0425  0.9661 
ageJUV                                         0.2139  0.1221   1.7513  0.0799 
ageMIXED                                      -0.0121  0.1492  -0.0812  0.9353 
measured_partfeathers                         -0.1268  0.1501  -0.8448  0.3982 
study_typeO                                    0.2114  0.1007   2.0994  0.0358 
raw_or_modelraw                                0.1517  0.0948   1.6006  0.1095 
methodphoto                                    0.2166  0.0997   2.1726  0.0298 
methodspectro                                  0.2657  0.1164   2.2814  0.0225 
                                               ci.lb    ci.ub      
intrcpt                                      -0.8119  -0.2058  *** 
colour_typemelanin-based                      0.0022   0.6038    * 
colour_typestructural                         0.0277   0.6924    * 
pollution_typeother                          -0.5524   0.2946      
pollution_typepersistent_organic_pollutants  -0.3777   0.1296      
pollution_typeurbanisation                   -0.1888   0.2877      
sexM                                         -0.1982   0.1300      
sexM/F                                       -0.2395   0.2293      
ageJUV                                       -0.0255   0.4533    . 
ageMIXED                                     -0.3046   0.2804      
measured_partfeathers                        -0.4210   0.1674      
study_typeO                                   0.0140   0.4088    * 
raw_or_modelraw                              -0.0341   0.3376      
methodphoto                                   0.0212   0.4119    * 
methodspectro                                 0.0374   0.4939    * 

---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

3.5 Model 3.0 (on the subset of carotenoid-based colouration)

Code
carotenoids <- subset(mydata, colour_type == "carotenoid-based")
M3.0 <- rma.mv(yi = ES_biol, V = Z_var,
                           method = "REML",
                           mods = ~ pollution_type + measured_part:carotenoids_type+HSB+sex+age +measured_part
                           +study_type + raw_or_model+carotenoids_type,
                           random = list(~1|tip_label,
                                         ~1|Study_no,
                                         ~1|es_ID),
                           control=list(optimizer="optim",optmethod="Nelder-Mead"),
                           data = carotenoids)
Warning: 29 rows with NAs omitted from model fitting.
Warning: Redundant predictors dropped from the model.
Code
summary(M3.0) # interaction not significant

Multivariate Meta-Analysis Model (k = 256; method: REML)

  logLik  Deviance       AIC       BIC      AICc   
 17.4166  -34.8332    1.1668   63.8931    4.2479   

Variance Components:

            estim    sqrt  nlvls  fixed     factor 
sigma^2.1  0.0175  0.1323      8     no  tip_label 
sigma^2.2  0.0308  0.1755     34     no   Study_no 
sigma^2.3  0.0133  0.1153    243     no      es_ID 

Test for Residual Heterogeneity:
QE(df = 241) = 620.8080, p-val < .0001

Test of Moderators (coefficients 2:15):
QM(df = 14) = 28.3620, p-val = 0.0127

Model Results:

                                               estimate      se     zval 
intrcpt                                         -0.0438  0.1354  -0.3232 
pollution_typepersistent_organic_pollutants      0.1272  0.0562   2.2635 
pollution_typeurbanisation                      -0.0004  0.0695  -0.0051 
HSBhue                                          -0.1203  0.0363  -3.3153 
HSBother                                        -0.0327  0.0938  -0.3486 
HSBsaturation                                   -0.1376  0.0360  -3.8164 
sexM                                            -0.0640  0.0632  -1.0120 
sexM/F                                           0.0406  0.0782   0.5196 
ageJUV                                          -0.0034  0.0897  -0.0380 
ageMIXED                                         0.1243  0.1993   0.6236 
measured_partfeathers                           -0.0189  0.0853  -0.2215 
study_typeO                                      0.0365  0.1108   0.3293 
raw_or_modelraw                                 -0.0245  0.0731  -0.3350 
carotenoids_typedietary                         -0.0742  0.0446  -1.6646 
measured_partfeathers:carotenoids_typedietary   -0.0079  0.1873  -0.0424 
                                                 pval    ci.lb    ci.ub      
intrcpt                                        0.7466  -0.3091   0.2216      
pollution_typepersistent_organic_pollutants    0.0236   0.0171   0.2373    * 
pollution_typeurbanisation                     0.9959  -0.1366   0.1359      
HSBhue                                         0.0009  -0.1915  -0.0492  *** 
HSBother                                       0.7274  -0.2165   0.1511      
HSBsaturation                                  0.0001  -0.2082  -0.0669  *** 
sexM                                           0.3115  -0.1879   0.0599      
sexM/F                                         0.6033  -0.1127   0.1940      
ageJUV                                         0.9697  -0.1792   0.1724      
ageMIXED                                       0.5329  -0.2663   0.5149      
measured_partfeathers                          0.8247  -0.1861   0.1483      
study_typeO                                    0.7419  -0.1808   0.2538      
raw_or_modelraw                                0.7376  -0.1677   0.1187      
carotenoids_typedietary                        0.0960  -0.1616   0.0132    . 
measured_partfeathers:carotenoids_typedietary  0.9662  -0.3751   0.3592      

---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Code
M3.0 <- rma.mv(yi = ES_biol, V = Z_var,
                           method = "REML",
                           mods = ~ pollution_type +HSB+sex+age +measured_part
                           +study_type + raw_or_model+carotenoids_type,
                           random = list(~1|tip_label,
                                         ~1|Study_no,
                                         ~1|es_ID),
                           control=list(optimizer="optim",optmethod="Nelder-Mead"),
                           data = carotenoids)
Warning: 29 rows with NAs omitted from model fitting.

Warning: Redundant predictors dropped from the model.
Code
summary(M3.0)

Multivariate Meta-Analysis Model (k = 256; method: REML)

  logLik  Deviance       AIC       BIC      AICc   
 17.2500  -34.5000   -0.5000   58.8120    2.2322   

Variance Components:

            estim    sqrt  nlvls  fixed     factor 
sigma^2.1  0.0087  0.0935      8     no  tip_label 
sigma^2.2  0.0315  0.1776     34     no   Study_no 
sigma^2.3  0.0133  0.1152    243     no      es_ID 

Test for Residual Heterogeneity:
QE(df = 242) = 621.0423, p-val < .0001

Test of Moderators (coefficients 2:14):
QM(df = 13) = 28.6042, p-val = 0.0074

Model Results:

                                             estimate      se     zval    pval 
intrcpt                                       -0.0585  0.1282  -0.4566  0.6480 
pollution_typepersistent_organic_pollutants    0.1270  0.0555   2.2884  0.0221 
pollution_typeurbanisation                    -0.0021  0.0685  -0.0307  0.9755 
HSBhue                                        -0.1210  0.0363  -3.3378  0.0008 
HSBother                                      -0.0363  0.0927  -0.3918  0.6952 
HSBsaturation                                 -0.1375  0.0360  -3.8171  0.0001 
sexM                                          -0.0625  0.0628  -0.9956  0.3194 
sexM/F                                         0.0380  0.0773   0.4914  0.6232 
ageJUV                                         0.0013  0.0873   0.0150  0.9880 
ageMIXED                                       0.1207  0.1987   0.6076  0.5434 
measured_partfeathers                         -0.0250  0.0773  -0.3231  0.7466 
study_typeO                                    0.0547  0.1060   0.5162  0.6057 
raw_or_modelraw                               -0.0288  0.0729  -0.3957  0.6923 
carotenoids_typedietary                       -0.0721  0.0433  -1.6679  0.0953 
                                               ci.lb    ci.ub      
intrcpt                                      -0.3098   0.1927      
pollution_typepersistent_organic_pollutants   0.0182   0.2357    * 
pollution_typeurbanisation                   -0.1364   0.1322      
HSBhue                                       -0.1921  -0.0500  *** 
HSBother                                     -0.2179   0.1453      
HSBsaturation                                -0.2081  -0.0669  *** 
sexM                                         -0.1855   0.0605      
sexM/F                                       -0.1135   0.1894      
ageJUV                                       -0.1697   0.1723      
ageMIXED                                     -0.2687   0.5101      
measured_partfeathers                        -0.1764   0.1265      
study_typeO                                  -0.1530   0.2624      
raw_or_modelraw                              -0.1717   0.1140      
carotenoids_typedietary                      -0.1569   0.0126    . 

---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

3.6 Biases

3.6.1 Model 4.0 - Publication bias

Code
M4.0 <- run.model(mydata, ~sqrt(Z_var))
summary(M4.0)

Multivariate Meta-Analysis Model (k = 421; method: REML)

  logLik  Deviance       AIC       BIC      AICc   
-35.9087   71.8173   83.8173  108.0445   84.0212   

Variance Components:

            estim    sqrt  nlvls  fixed          factor 
sigma^2.1  0.0142  0.1191     25     no       tip_label 
sigma^2.2  0.0060  0.0773     59     no        Study_no 
sigma^2.3  0.0343  0.1851    402     no           es_ID 
sigma^2.4  0.0000  0.0001     25     no  research_group 

Test for Residual Heterogeneity:
QE(df = 419) = 1832.0103, p-val < .0001

Test of Moderators (coefficient 2):
QM(df = 1) = 0.1482, p-val = 0.7002

Model Results:

             estimate      se     zval    pval    ci.lb   ci.ub    
intrcpt       -0.0397  0.0559  -0.7106  0.4773  -0.1492  0.0698    
sqrt(Z_var)   -0.1206  0.3131  -0.3850  0.7002  -0.7343  0.4932    

---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

3.6.2 Model 5.0 - Time lag bias

Code
M5.0 <- run.model(mydata, ~date)
summary(M5.0)

Multivariate Meta-Analysis Model (k = 421; method: REML)

  logLik  Deviance       AIC       BIC      AICc   
-31.4363   62.8725   74.8725   99.0997   75.0764   

Variance Components:

            estim    sqrt  nlvls  fixed          factor 
sigma^2.1  0.0127  0.1127     25     no       tip_label 
sigma^2.2  0.0000  0.0000     59     no        Study_no 
sigma^2.3  0.0344  0.1855    402     no           es_ID 
sigma^2.4  0.0000  0.0001     25     no  research_group 

Test for Residual Heterogeneity:
QE(df = 419) = 1809.3232, p-val < .0001

Test of Moderators (coefficient 2):
QM(df = 1) = 11.9257, p-val = 0.0006

Model Results:

         estimate      se     zval    pval     ci.lb     ci.ub      
intrcpt  -24.9964  7.2242  -3.4601  0.0005  -39.1556  -10.8372  *** 
date       0.0124  0.0036   3.4534  0.0006    0.0054    0.0194  *** 

---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Code
pred_year_model <- predict.rma(M5.0)
plot_continuous(mydata, M5.0, mydata$date, "Publication year")
Warning: The `size` argument of `element_rect()` is deprecated as of ggplot2 3.4.0.
ℹ Please use the `linewidth` argument instead.

Figure 8— Bubble plot showing a positive significant temporal trend in trend in published effect size estimates; Fig. 3 in the manuscript

Code
pred_Egger_reg <- predict.rma(M4.0)  
plot_continuous(mydata, M4.0, sqrt(mydata$Z_var), "Standard error")

Figure 9— Funnel plot of effect sizes from the biology ES data set versus standard errors of effect sizes; Fig. S4 in the manuscript

4 Session information

Code
sessionInfo()
R version 4.3.1 (2023-06-16)
Platform: x86_64-apple-darwin20 (64-bit)
Running under: macOS Sonoma 14.1

Matrix products: default
BLAS:   /Library/Frameworks/R.framework/Versions/4.3-x86_64/Resources/lib/libRblas.0.dylib 
LAPACK: /Library/Frameworks/R.framework/Versions/4.3-x86_64/Resources/lib/libRlapack.dylib;  LAPACK version 3.11.0

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

time zone: Europe/Warsaw
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] metaAidR_0.0.0.9000 orchaRd_2.0         emmeans_1.10.0     
 [4] R.rsp_0.45.0        ape_5.7-1           lubridate_1.9.3    
 [7] forcats_1.0.0       stringr_1.5.1       dplyr_1.1.4        
[10] purrr_1.0.2         readr_2.1.5         tidyr_1.3.1        
[13] tibble_3.2.1        tidyverse_2.0.0     patchwork_1.1.3    
[16] devtools_2.4.5      usethis_2.2.2       metafor_4.4-0      
[19] numDeriv_2016.8-1.1 metadat_1.2-0       Matrix_1.6-1       
[22] packcircles_0.3.6   ggpubr_0.6.0        ggplot2_3.4.4      
[25] here_1.0.1         

loaded via a namespace (and not attached):
 [1] remotes_2.4.2.1    sandwich_3.1-0     rlang_1.1.3        magrittr_2.0.3    
 [5] multcomp_1.4-25    compiler_4.3.1     callr_3.7.3        vctrs_0.6.5       
 [9] profvis_0.3.8      pkgconfig_2.0.3    crayon_1.5.2       fastmap_1.1.1     
[13] backports_1.4.1    ellipsis_0.3.2     labeling_0.4.3     utf8_1.2.4        
[17] promises_1.2.1     rmarkdown_2.25     sessioninfo_1.2.2  tzdb_0.4.0        
[21] ggbeeswarm_0.7.2   ps_1.7.6           xfun_0.42          cachem_1.0.8      
[25] jsonlite_1.8.8     later_1.3.1        broom_1.0.5        parallel_4.3.1    
[29] prettyunits_1.2.0  R6_2.5.1           stringi_1.8.3      car_3.1-2         
[33] pkgload_1.3.2.1    estimability_1.4.1 Rcpp_1.0.12        knitr_1.45        
[37] zoo_1.8-12         pacman_0.5.1       R.utils_2.12.2     splines_4.3.1     
[41] httpuv_1.6.11      R.cache_0.16.0     timechange_0.3.0   tidyselect_1.2.0  
[45] abind_1.4-5        yaml_2.3.8         codetools_0.2-19   miniUI_0.1.1.1    
[49] curl_5.2.0         processx_3.8.3     pkgbuild_1.4.2     lattice_0.21-8    
[53] shiny_1.7.5        withr_3.0.0        coda_0.19-4.1      evaluate_0.23     
[57] desc_1.4.2         survival_3.5-5     urlchecker_1.0.1   pillar_1.9.0      
[61] carData_3.0-5      generics_0.1.3     rprojroot_2.0.3    mathjaxr_1.6-0    
[65] hms_1.1.3          munsell_0.5.0      scales_1.3.0       xtable_1.8-4      
[69] glue_1.7.0         tools_4.3.1        ggsignif_0.6.4     fs_1.6.3          
[73] mvtnorm_1.2-4      grid_4.3.1         colorspace_2.1-0   nlme_3.1-162      
[77] beeswarm_0.4.0     vipor_0.4.7        latex2exp_0.9.6    cli_3.6.2         
[81] fansi_1.0.6        gtable_0.3.4       R.methodsS3_1.8.2  rstatix_0.7.2     
[85] digest_0.6.34      TH.data_1.1-2      farver_2.1.1       htmlwidgets_1.6.2 
[89] memoise_2.0.1      htmltools_0.5.7    R.oo_1.25.0        lifecycle_1.0.4   
[93] mime_0.12          MASS_7.3-60