dat.moura2021.Rd
Results from 457 studies on assortative mating in various species.
dat.moura2021
The object is a list containing a data frame called dat
that contains the following columns and a phylogenetic tree called tree
:
study.id | character | study id |
effect.size.id | numeric | effect size id |
species | character | species |
species.id | character | species id (as in the Open Tree of Life reference taxonomy) |
subphylum | character | the subphyla of the species |
phylum | character | the phyla of the species |
assortment.trait | character | the measure of body size |
trait.dimensions | character | dimensionality of the measure |
field.collection | character | whether data were collected in the field |
publication.year | numeric | publication year of the study |
pooled.data | character | whether data were pooled either spatially and/or temporally |
spatially.pooled | character | whether data were pooled spatially |
temporally.pooled | character | whether data were pooled temporally |
ri | numeric | correlation coefficient |
ni | numeric | sample size |
The 457 studies included in this dataset provide 1828 correlation coefficients describing the similarity in some measure of body size in mating couples in 341 different species.
Rios Moura, R., Oliveira Gonzaga, M., Silva Pinto, N., Vasconcellos-Neto, J., & Requena, G. S. (2021). Assortative mating in space and time: Patterns and biases. Ecology Letters, 24(5), 1089–1102. https://doi.org/10.1111/ele.13690
Cinar, O., Nakagawa, S., & Viechtbauer, W. (in press). Phylogenetic multilevel meta-analysis: A simulation study on the importance of modelling the phylogeny. Methods in Ecology and Evolution. https://doi.org/10.1111/2041-210X.13760
Hadfield, J. D., & Nakagawa, S. (2010). General quantitative genetic methods for comparative biology: Phylogenies, taxonomies and multi-trait models for continuous and categorical characters. Journal of Evolutionary Biology, 23(3), 494–508. https://doi.org/10.1111/j.1420-9101.2009.01915.x
Nakagawa, S., & Santos, E. S. A. (2012). Methodological issues and advances in biological meta-analysis. Evolutionary Ecology, 26(5), 1253–1274. https://doi.org/10.1007/s10682-012-9555-5
ecology, evolution, correlation coefficients, multivariate models, phylogeny, meta-regression
### copy data into 'dat' and examine data
dat <- dat.moura2021$dat
head(dat)
#> study.id effect.size.id species species.id
#> 1 Adams and Greenwood 1983 1 Gammarus pulex Gammarus_pulex_gallicus_ott1024016
#> 2 Adams et al. 1985a 2 Trapezia ferruginea Trapezia_bidentata_ott787242
#> 3 Adams et al. 1985a 3 Trapezia ferruginea Trapezia_bidentata_ott787242
#> 4 Adams et al. 1985a 4 Trapezia ferruginea Trapezia_bidentata_ott787242
#> 5 Adams et al. 1985b 5 Asellus aquaticus Asellus_aquaticus_ott335971
#> 6 Adams et al. 1985b 6 Asellus aquaticus Asellus_aquaticus_ott335971
#> subphylum phylum assortment.trait trait.dimensions field.collection publication.year
#> 1 Crustacea Arthropoda body length uni yes 1983
#> 2 Crustacea Arthropoda carapace length uni yes 1985
#> 3 Crustacea Arthropoda carapace width uni yes 1985
#> 4 Crustacea Arthropoda cheliped length uni yes 1985
#> 5 Crustacea Arthropoda weight uni yes 1985
#> 6 Crustacea Arthropoda weight uni yes 1985
#> pooled.data spatially.pooled temporally.pooled ri ni
#> 1 no no no 0.23 53
#> 2 yes yes no 0.57 23
#> 3 yes yes no 0.54 23
#> 4 yes yes no 0.53 23
#> 5 no no no 0.85 12
#> 6 no no no 0.82 15
### load metafor package
library(metafor)
### load ape package
library(ape, warn.conflicts=FALSE)
### calculate r-to-z transformed correlations and corresponding sampling variances
dat <- escalc(measure="ZCOR", ri=ri, ni=ni, data=dat)
### copy tree to 'tree'
tree <- dat.moura2021$tree
### turn tree into an ultrametric one
tree <- compute.brlen(tree)
### compute phylogenetic correlation matrix
A <- vcv(tree, corr=TRUE)
### make copy of the species.id variable
dat$species.id.phy <- dat$species.id
### fit multilevel phylogenetic meta-analytic model
res <- rma.mv(yi, vi,
random = list(~ 1 | study.id, ~ 1 | effect.size.id, ~ 1 | species.id, ~ 1 | species.id.phy),
R=list(species.id.phy=A), data=dat)
res
#>
#> Multivariate Meta-Analysis Model (k = 1828; method: REML)
#>
#> Variance Components:
#>
#> estim sqrt nlvls fixed factor R
#> sigma^2.1 0.0192 0.1384 457 no study.id no
#> sigma^2.2 0.0145 0.1202 1828 no effect.size.id no
#> sigma^2.3 0.0557 0.2359 341 no species.id no
#> sigma^2.4 0.0512 0.2263 341 no species.id.phy yes
#>
#> Test for Heterogeneity:
#> Q(df = 1827) = 10743.8076, p-val < .0001
#>
#> Model Results:
#>
#> estimate se zval pval ci.lb ci.ub
#> 0.3682 0.1300 2.8311 0.0046 0.1133 0.6230 **
#>
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
### examine if spatial and/or temporal pooling of data tends to yield larger correlations
res <- rma.mv(yi, vi,
mods = ~ spatially.pooled * temporally.pooled,
random = list(~ 1 | study.id, ~ 1 | effect.size.id, ~ 1 | species.id, ~ 1 | species.id.phy),
R=list(species.id.phy=A), data=dat)
res
#>
#> Multivariate Meta-Analysis Model (k = 1828; method: REML)
#>
#> Variance Components:
#>
#> estim sqrt nlvls fixed factor R
#> sigma^2.1 0.0198 0.1406 457 no study.id no
#> sigma^2.2 0.0144 0.1202 1828 no effect.size.id no
#> sigma^2.3 0.0525 0.2292 341 no species.id no
#> sigma^2.4 0.0532 0.2307 341 no species.id.phy yes
#>
#> Test for Residual Heterogeneity:
#> QE(df = 1824) = 10618.9794, p-val < .0001
#>
#> Test of Moderators (coefficients 2:4):
#> QM(df = 3) = 7.6097, p-val = 0.0548
#>
#> Model Results:
#>
#> estimate se zval pval ci.lb ci.ub
#> intrcpt 0.3457 0.1327 2.6047 0.0092 0.0856 0.6059 **
#> spatially.pooledyes 0.0810 0.0390 2.0780 0.0377 0.0046 0.1574 *
#> temporally.pooledyes 0.0599 0.0269 2.2272 0.0259 0.0072 0.1126 *
#> spatially.pooledyes:temporally.pooledyes -0.0729 0.0452 -1.6107 0.1073 -0.1615 0.0158
#>
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
### estimated average correlation without pooling, when pooling spatially,
### when pooling temporally, and when pooling spatially and temporally
predict(res, newmods = rbind(c(0,0,0),c(1,0,0),c(0,1,0),c(1,1,1)), transf=transf.ztor, digits=2)
#>
#> pred ci.lb ci.ub pi.lb pi.ub
#> 1 0.33 0.09 0.54 -0.41 0.81
#> 2 0.40 0.16 0.60 -0.34 0.84
#> 3 0.38 0.14 0.58 -0.36 0.83
#> 4 0.39 0.15 0.59 -0.35 0.83
#>