Manuscript for Journal of Ecology (first)

advertisement
Appendix 1. Validation of the data analysis approach
The data analysis approach in our case study is based on the relationship between species
associations (v-score) and species trait dissimilarity. Species associations are enclosed in a matrix
where, for each pair of species, the v-score indicates how often the two species co-occur. Species
dissimilarity is enclosed in another matrix indicating, for each pair of species, to what extent they
share similar trait values. See the ‘Material and Methods’ section for more details and how these
matrices are computed. Applying our approach required, as we discuss below, choosing appropriate
methods to compute species co-occurrence and relate this to species dissimilarities. Here we discuss
this choice and use simulations to validate the overall approach.
Our approach follows Willis et al. (2010), based on Cavender-Bares (2004) and Silwertown et
al. (2001). Our approach differs from that of Willis et al. (2010) in that we use a different measure of
species co-occurrence: the v-score, instead of the c-score. Although results based on the c-score
were even stronger and more easy to interpret than those based on the c-score, we feel that the vscore provides a more realistic assessment of species co-occurrence patterns. This is for two
important reasons. First, the calculation of the v-score takes into account the cases where both
species are absent – information that is important when defining species co-occurrence (Leps &
Smilauer 2003). Second, the highest c-score can only be found when there are two more-or-less
equally abundant species that do not co-occur. For example, species with intermediate frequency
values gave the highest c-scores in our case study (Fig. 1). Removing the highest frequency value
species (Festuca ovina) resulted in a positive linear relationship between frequency and c-score. With
the v-score these patterns do not occur and therefore it appeared that this index was better for our
purposes.
Figure 1. Relationship between within-plot species frequencies (here the mean number of subplots,
out of 25, where each species was present) and mean value of overall species occurrence, computed
either with the c-score or the v-score.
●
●
●
●
●
Mean c−score
0.3 0.4 0.5
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ● ●●
● ●
●
r²=0.00, p=0.418
●
●
●
●
●
●
●
●
●
●
r²=0.71, p<0.0001
●
●
Mean v−score
0.01
0.03
●
0.6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
●
5
10
15
Mean frequency
20
−0.01
0.2
●
●
●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
5
10
15
Mean frequency
20
27
1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
After choosing the appropriate co-occurrence algorithm we asked if the method relating cooccurrence and trait dissimilarity with a Mantel test would provide reliable results. To validate the
analytical approach of our study we created a set of virtual datasets, each with known properties,
simulating the properties of our case study, in order to verify the occurrence of Type I and II errors in
our approach. An R script to obtain the results shown at continuation is available at the end of the
Appendix.
We first created a dataset in which coexisting species occurred randomly with respect to their
traits (‘Random scenario’: no significant relationship between v-score and trait dissimilarity
expected). We created a set of 100 species. Species trait values were spaced at regular increasing
intervals from species 1 to 100, with dissimilarity between species 1 and 100 equal to 1. Then we
created 20 PLOTS, each divided into 25 SUBPLOTS as in our case study. In each plot we only
allowed 40 species to occur, in order to be able to simulate species turnover between plots. Within
each subplot we allowed 5 to 12 species to be randomly selected out of the 40 species, reflecting the
general properities of the dataset in our case study. To account for differences in species frequencies
observed in the field (Fig. 1) the 40 species could occur in the plot with different probabilities. Within
each plot we first calculated the v-score between each pair of species. Typically, in this scenario we
found that the v-score accounting for all 40 species in the plot resulted in a majority of values being
above zero (Fig. 2). This is because when rare species occur in few subplots (e.g. less than 5)
together with other rare species, their association will appear positive, because the two species will
both be absent in most of the other subplots.
Figure 2. V-score values obtained in the Random scenario including, or excluding, rare species (i.e.
species occurring in less than 5 subplots).
It should be noted that in our case study we excluded the most rare species from our analyses, i.e.
we selected only the 60 most abundant species (i.e. those that accounted for 88% of all occurrences
2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
in the subplot level and 78% at the plot level). By doing this, the selected 60 species had in 89% of
the cases a frequency higher than 5 subplots, while the more rare where, in 85% of the cases, never
occupied more than 5 subplots in a given plot.
After computing the v-score for each individual plot we also computed an average v-score for
all 20 plots, as in the case study. As we show below, we did such averaging (as in Reitalu et al. 2008)
in the case study to increase the number of species in the analyses, and thus have more stable and
robust results. We show below, in fact, that the test becomes less strong when the number of species
is too low. In the simulations, we then related the v-score to species dissimilarity using a Mantel test
with permutations, for each single plot and for the average v-score. We did this for all 100 species
and for the most frequent species (i.e. those present at least in 40 subplots in the whole region),
repeating the whole process 100 times. We then verified how many correct results (i.e. no deviations
from random expectations) and how many incorrect results (either significant convergence or
significant divergence found instead of random patterns) appeared in our simulations. The results
were considered significant if the correlation was either smaller than the 0.025 quantile of the null
model distribution or larger than the 0.975 quantile (i.e. two tailed test with alpha = 0.05). The results
indicate that the Type I error rate approaches the expected 5%.
Table 1. Results emerging from the Random scenario. The results are shown (1) for the average vscore across the 20 plots (out of the 100 runs), both including all species and only on the most
frequent ones; and (2) for single plots, i.e. indicating the average number of 20 plots, out of the 100
runs, falling in each category.
Average v-score
Single plots
22
23
24
25
26
27
28
29
30
31
32
Convergent
Random
Divergent
All species
3%
93%
4%
Most frequent
3%
93%
4%
All species
2.5%
95%
2.5%
Most frequent
2.5%
95%
2.5%
After developing the Random scenario we also created the Divergent and Convergent scenarios.
The general approach for these two scenarios was similar to that for the Random one: 100 species
created, 20 plots divided into 25 subplots, 40 species per plot having different frequencies, 5 to 12
species per subplot. The difference was that, in the Divergent scenario, co-occurring species were
set to be as dissimilar as possible in terms of their traits. This was done by selecting species into
subplots only within sets of species evenly distributed on the trait value gradient.
3
1
Table 2. Results from the Divergent scenario.
Average v-score
Single plots
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Convergent
Random
Divergent
All species
0%
0%
100%
Most frequent
0%
1%
99%
All species
0%
85%
15%
Most frequent
0.5%
88%
11.5%
The results of the Divergent scenarios show some key patterns. Notably they reveal that our v-score
approach has a reduced ability to detect the simulated patterns when the number of species in a
dataset is too low – a property that limits analyses at the single plot level. In fact, at the plot level, with
a maximum of 40 species, on average, the simulated divergent patterns were only correctly detected
in 3 plots (out of 20). The number of significantly divergent plots even decreased slightly when only
the most frequent species were considered (2.25 out 20). These results suggest that carrying
analyses to detect divergence at the plot level does not provide sufficiently robust results. In contrast,
when using the average v-score across all plots, the results became more stable with the simulated
patterns detecting almost 100% of the true positive results. The better results after averaging the vscore across plots is because more species are included in the analyses and because using more
plots allows co-occurrence pattern to be more stable (as in Reitalu et al. 2008). In other words, the
Type II error rates of our approach are not acceptable for the Divergent scenario analyses at the scale
of single plots, but they are acceptable when using more plots together.
In the Convergent scenario the species coexisting in the same subplots were selected so as
to be among the most similar ones out of the 40 species selected for that plot. This basically was
done by removing one forth (either the greater or smaller) of the trait values for the 40 species. In this
case the results of the simulation show that the detection of convergent patterns is both possible at
the plot level and when using the average v-score across plots.
Table 3. Results emerging from the Convergent scenario.
Average v-score
Single plots
Convergent
Random
Divergent
All species
100%
0%
0%
Most frequent
100%
0%
0%
All species
99.5%
0.5%
0%
Most frequent
44%
55%
1%
23
24
25
26
4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Conclusions
The results of our tests suggested that there was no significant bias in the analytical approach; the
Type I error rate approaches the expected value (i.e. the significance level) and the Type II error rate
was low. We are aware that simulated patterns can be stronger than those found in the nature, and so
the power of the test may be exaggerated, but our tests shows that the approach is consistent.
Particularly the Random scenario shows that false positive results are not very likely in our approach.
These tests also suggested that (1) the use of the v-score was more appropriate than the c-score for
our analyses, (2) to allow better detection of divergent and convergent patterns we focused on
average v-score on multiple plots instead of v-scores for single plots and on most abundant species.
References
Cavender-Bares, J., Ackerly, D. D., Baum D. A. & Bazzaz, F. A. (2004) Phylogenetic overdispersion in
Floridian oak communities. American Naturalist, 163, 823-843.
Silvertown, J., Dodd, M., & Gowing, D. (2001) Phylogeny and the niche structure of meadow plant
communities. Journal of Ecology, 89, 428-435.
Willis, C. G., Halina, M., Lehman, C., Reich, P. B., Keen, A., McCarthy, S. & Cavender-Bares, J.
(2010) Phylogenetic community structure in Minnesota oak savanna is influenced by spatial
extent and environmental variation. Ecography, 33, 565-577.
20
5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
R script for the simulations (Appendix 1 continued)
WARNING, the simulation of plots and the Mantel test might take quite some time to run (you can also decrease
the number of runs, now set to 100).
####### test with random assembly #####
#######################################
library(vegan)
require(abind)
species<-1:100
chance<-(1:40)^1.3
plots<-list()
resultsR<-matrix(0, 100, 42)
for(z in 1:100){
for(j in 1:20){
spinquad<-sample(species, 40)
quad<-matrix(0, 100, 25)
rownames(quad)<-species
for(i in 1:25){
nspcoexist<-sample(5:12, 1)
coexist<-sample(spinquad, nspcoexist, prob=chance)
quad[coexist, i]<-1
}
plots[[j]]<-quad
freqsp<-apply(quad, 1, sum)
vscore<-as.dist(cor(t(quad[freqsp>0, ])))
dissim<-dist(as.numeric(rownames(quad[freqsp>0, ])))
resultsR[z, j+1]<-mantel(vscore, dissim)$signif
vscore<-as.dist(cor(t(quad[freqsp>5, ])))
dissim<-dist(as.numeric(rownames(quad[freqsp>5, ])))
resultsR[z, j+22]<-mantel(vscore, dissim)$signif
}
vscores<-list()
spabund<-matrix(0, 100, 20)
for(j in 1:20){
quad<-plots[[j]]
vscores[[j]]<-cor(t(quad))
spabund[, j]<-as.numeric(apply(quad, 1, sum))
}
spabundreg<-apply(spabund, 1, sum)
combV <- abind(vscores, along=3)
meancombV<-apply(combV, 1:2, mean, na.rm=T)
resultsR[z, 1]<-mantel(as.dist(meancombV), dist(species), na.rm = T)$signif
meancombVabb<-meancombV[spabundreg>40, spabundreg>40]
dissimall<-as.matrix(dist(species))
resultsR[z, 22]<-mantel(as.dist(meancombVabb), as.dist(dissimall[spabundreg>40, spabundreg>40]), na.rm =
T)$signif
}
#boxplot(as.dist(meancombVabb))
#boxplot(as.dist(meancombV))
save(resultsR, file="resultsR.r")
load("resultsR.r")
resu<-resultsR[, 1]
length(resu[resu<0.025])###counting the number of divergent cases###
6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
length(resu[resu>0.975])###counting the number of convergent cases###
resu<-resultsR[, 22]
length(resu[resu<0.025])###counting the number of divergent cases for most frequent species###
length(resu[resu>0.975])###counting the number of convergent cases for most frequent species###
resuAll<-matrix(0, 100, 2)
resuDom<-matrix(0, 100, 2)
for(i in 1:100){
vec1<-resultsR[i, 2:21]
vec2<-resultsR[i, 23:42]
resuAll[i, 1]<-length(vec1[vec1<0.025])
resuAll[i, 2]<-length(vec1[vec1>0.975])
resuDom[i, 1]<-length(vec2[vec2<0.025])
resuDom[i, 2]<-length(vec2[vec2>0.975])
}
apply(resuAll, 2, mean)#counting average number of plots that were divergent, either all species or only the most
frequent#
apply(resuDom, 2, mean)#counting average number of plots that were convergent, either all species or only the
most frequent#
#showing the case of a specific plot#
species<-1:100
chance<-(1:40)^1.3
spinquad<-sample(species, 40)
quad<-matrix(0, 100, 25)
rownames(quad)<-species
for(i in 1:25){
nspcoexist<-sample(5:12, 1)
coexist<-sample(spinquad, nspcoexist, prob=chance)
quad[coexist, i]<-1
}
freqsp<-apply(quad, 1, sum)
hist(freqsp, main="", xlab="# of subplots")
nsp<-apply(quad, 2, sum)
hist(nsp)
par(mfrow=c(1,2))
boxplot(as.dist(cor(quad[spinquad, ])), main="with rare species", ylab="V-score")
abline(h=0)
boxplot(as.dist(cor(quad[freqsp>5, ])), main="without rare species")
abline(h=0)
dim(quad[freqsp>5, ])
########### test for the divergence scenario ######################
###################################################################
library(vegan)
require(abind)
species<-1:100
spinquad<-sample(species, 40)
chance<-c(seq(40, 1, by=-4)^1.2, seq(1, 40, by=4)^1.2, seq(39, 1, by=-4)^1.2, seq(2, 40, by=4)^1.2)
plots<-list()
resultsD<-matrix(0, 100, 42)
for(z in 1:100){
for(j in 1:20){
spinquad<-sample(species, 40)
quad<-matrix(0, 100, 25)
rownames(quad)<-species
7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
for(i in 1:25){
nspcoexist<-sample(15:25, 1)
ordspinq<-sort(spinquad)
names(ordspinq)<-1:40
divergent<-seq(sample(1:4, 1), 40, round(40/nspcoexist))
sel<-ordspinq[divergent]
coexist<-sample(ordspinq[divergent], sample(5:12, 1), prob=chance[as.numeric(names(sel))])
quad[coexist, i]<-1
}
plots[[j]]<-quad
freqsp<-apply(quad, 1, sum)
vscore<-as.dist(cor(t(quad[freqsp>0, ])))
dissim<-dist(as.numeric(rownames(quad[freqsp>0, ])))
resultsD[z, j+1]<-mantel(vscore, dissim)$signif
vscore<-as.dist(cor(t(quad[freqsp>5, ])))
dissim<-dist(as.numeric(rownames(quad[freqsp>5, ])))
resultsD[z, j+22]<-mantel(vscore, dissim)$signif
}
vscores<-list()
spabund<-matrix(0, 100, 20)
for(j in 1:20){
quad<-plots[[j]]
vscores[[j]]<-cor(t(quad))
spabund[, j]<-as.numeric(apply(quad, 1, sum))
}
spabundreg<-apply(spabund, 1, sum)
combV <- abind(vscores, along=3)
meancombV<-apply(combV, 1:2, mean, na.rm=T)
resultsD[z, 1]<-mantel(as.dist(meancombV), dist(species), na.rm = T)$signif
meancombVabb<-meancombV[spabundreg>40, spabundreg>40]
dissimall<-as.matrix(dist(species))
resultsD[z, 22]<-mantel(as.dist(meancombVabb), as.dist(dissimall[spabundreg>40, spabundreg>40]), na.rm =
T)$signif
}
save(resultsD, file="resultsD.r")
load("resultsD.r")
resu<-resultsD[, 1]
length(resu[resu<0.025])
resu<-resultsD[, 22]
length(resu[resu<0.025])
resuAll<-matrix(0, 100, 2)
resuDom<-matrix(0, 100, 2)
for(i in 1:100){
vec1<-resultsD[i, 2:21]
vec2<-resultsD[i, 23:42]
resuAll[i, 1]<-length(vec1[vec1<0.025])
resuAll[i, 2]<-length(vec1[vec1>0.975])
resuDom[i, 1]<-length(vec2[vec2<0.025])
resuDom[i, 2]<-length(vec2[vec2>0.975])
}
apply(resuAll, 2, mean)
apply(resuAll, 2, sd)
apply(resuDom, 2, mean)
apply(resuDom, 2, sd)
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
species<-1:100
chance<-c(seq(40, 1, by=-4)^1.2, seq(1, 40, by=4)^1.2, seq(39, 1, by=-4)^1.2, seq(2, 40, by=4)^1.2)
spinquad<-sample(species, 40)
quad<-matrix(0, 100, 25)
rownames(quad)<-species
for(i in 1:25){
nspcoexist<-sample(15:25, 1)
ordspinq<-sort(spinquad)
names(ordspinq)<-1:40
divergent<-seq(sample(1:4, 1), 40, round(40/nspcoexist))
sel<-ordspinq[divergent]
coexist<-sample(ordspinq[divergent], sample(5:12, 1), prob=chance[as.numeric(names(sel))])
quad[coexist, i]<-1
}
freqsp<-apply(quad, 1, sum)
hist(freqsp)
nsp<-apply(quad, 2, sum)
hist(nsp)
par(mfrow=c(1,2))
boxplot(as.dist(cor(quad[spinquad, ])), main="with rare species", ylab="V-score")
abline(h=0)
dim(quad[freqsp>0, ])
boxplot(as.dist(cor(quad[freqsp>5, ])), main="without rare species")
abline(h=0)
dim(quad[freqsp>5, ])
##############test for the convergent scenario#############
###########################################################
library(vegan)
require(abind)
species<-1:100
chance<-c(seq(60, 1, by=-2)^1.1)
resultsC<-matrix(0, 100, 42)
plots<-list()
for(z in 1:100){
for(j in 1:20){
spinquad<-sample(species, 40)
quad<-matrix(0, 100, 25)
rownames(quad)<-species
for(i in 1:25){
nspcoexist<-sample(5:12, 1)
#cut<-sample(c(0, quantile(spinquad)[3]), 1)
#lim1<-spinquad[spinquad>cut]
#lim2<-lim1[lim1<c(cut+50)]
cut<-sample(c(0, quantile(spinquad)[2]), 1)
lim1<-spinquad[spinquad>cut]
lim2<-lim1[lim1<c(cut+75)]
lim2<-lim2[1:30]
chance2<-chance[1:length(lim2)]
coexist<-sample(lim2, nspcoexist, prob=chance2)
quad[coexist, i]<-1
}
plots[[j]]<-quad
freqsp<-apply(quad, 1, sum)
vscore<-as.dist(cor(t(quad[freqsp>0, ])))
9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
dissim<-dist(as.numeric(rownames(quad[freqsp>0, ])))
resultsC[z, j+1]<-mantel(vscore, dissim)$signif
vscore<-as.dist(cor(t(quad[freqsp>5, ])))
dissim<-dist(as.numeric(rownames(quad[freqsp>5, ])))
resultsC[z, j+22]<-mantel(vscore, dissim)$signif
}
vscores<-list()
spabund<-matrix(0, 100, 20)
for(j in 1:20){
quad<-plots[[j]]
vscores[[j]]<-cor(t(quad))
spabund[, j]<-as.numeric(apply(quad, 1, sum))
}
spabundreg<-apply(spabund, 1, sum)
combV <- abind(vscores, along=3)
meancombV<-apply(combV, 1:2, mean, na.rm=T)
resultsC[z, 1]<-mantel(as.dist(meancombV), dist(species), na.rm = T)$signif
meancombVabb<-meancombV[spabundreg>40, spabundreg>40]
dissimall<-as.matrix(dist(species))
resultsC[z, 22]<-mantel(as.dist(meancombVabb), as.dist(dissimall[spabundreg>40, spabundreg>40]), na.rm =
T)$signif
}
save(resultsC, file="resultsC.r")
load("resultsC.r")
resu<-resultsC[, 1]
length(resu[resu>0.975])
resu<-resultsC[, 21]
length(resu[resu>0.975])
resuAll<-matrix(0, 100, 2)
resuDom<-matrix(0, 100, 2)
for(i in 1:100){
vec1<-resultsC[i, 2:21]
vec2<-resultsC[i, 23:42]
resuAll[i, 1]<-length(vec1[vec1<0.025])
resuAll[i, 2]<-length(vec1[vec1>0.975])
resuDom[i, 1]<-length(vec2[vec2<0.025])
resuDom[i, 2]<-length(vec2[vec2>0.975])
}
apply(resuAll, 2, mean)
apply(resuAll, 2, sd)
apply(resuDom, 2, mean)
apply(resuDom, 2, sd)
species<-1:100
spinquad<-sample(species, 40)
chance<-c(seq(60, 1, by=-2)^1.1)
quad<-matrix(0, 100, 25)
rownames(quad)<-species
for(i in 1:25){
nspcoexist<-sample(5:12, 1)
#cut<-sample(c(0, quantile(spinquad)[3]), 1)
#lim1<-spinquad[spinquad>cut]
#lim2<-lim1[lim1<c(cut+50)]
cut<-sample(c(0, quantile(spinquad)[2]), 1)
10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
lim1<-spinquad[spinquad>cut]
lim2<-lim1[lim1<c(cut+75)]
lim2<-lim2[1:30]
chance2<-chance[1:length(lim2)]
coexist<-sample(lim2, nspcoexist, prob=chance2)
quad[coexist, i]<-1
}
freqsp<-apply(quad, 1, sum)
hist(freqsp)
nsp<-apply(quad, 2, sum)
hist(nsp)
par(mfrow=c(1,2))
boxplot(as.dist(cor(quad[spinquad, ])), main="with rare species", ylab="V-score")
abline(h=0)
dim(quad[freqsp>0, ])
boxplot(as.dist(cor(quad[freqsp>5, ])), main="without rare species")
abline(h=0)
dim(quad[freqsp>5, ])
11
1
2
3
4
5
6
Appendix 2. Full results of the Mantel correlations between matrices of species co-occurrence and
traits or phylogeny. The results are given for each trait category and spatial scale (plot, patch,
landscape) considered. The three tables correspond to the three panels in Figure 1 (all plots together,
only grazed, only non-grazed plots). A total of nine tests were run for each trait. ‘r’ indicates
correlation; ‘p’ indicates P-value; ‘p.corr.traits’ indicates P-value after correction for multiple tests (in
bold when <0.05); * indicates a P-value between 0.05 and 0.1.
12
1
All plots
Trait
r
p
scale
p.corr.traits
All traits
0.057
0.020
plot
0.045
Phylogeny
0.080
0.002
plot
0.018
Height
-0.013
0.323
plot
0.415
Leaf traits
0.059
0.013
plot
0.039
Seed mass
-0.011
0.328
plot
0.461
LHS traits
0.011
0.350
plot
0.399
Lateral spread
0.018
0.236
plot
0.344
Life form
0.014
0.282
plot
0.500
Phenology
0.058
0.012
plot
0.103
Clonality
0.034
0.103
plot
0.239
SLA
0.027
0.158
plot
0.237
LDMC
0.033
0.114
plot
0.171
Toughness
0.048
0.028
plot
0.225
All traits
-0.074
0.002
patch
0.009
Phylogeny
-0.023
0.169
patch
0.381
Height
-0.020
0.213
patch
0.415
Leaf traits
-0.082
0.001
patch
0.009
Seed mass
-0.036
0.087
patch
0.241
LHS traits
-0.067
0.017
patch
0.081
Lateral spread
-0.072
0.009
patch
0.040
Life form
0.002
0.475
patch
0.500
Phenology
0.033
0.101
patch
0.227
Clonality
-0.040
0.057
patch
0.239
SLA
-0.047
0.057
patch
0.237
LDMC
-0.092
0.002
patch
0.009
Toughness
-0.008
0.396
patch
0.445
All traits
-0.034
0.114
landscape
0.205
Phylogeny
0.008
0.338
landscape
0.381
Height
-0.001
0.462
landscape
0.462
Leaf traits
-0.048
0.036
landscape
0.065*
Seed mass
-0.036
0.089
landscape
0.241
LHS traits
-0.040
0.084
landscape
0.189
Lateral spread
-0.012
0.306
landscape
0.344
Life form
0.004
0.428
landscape
0.500
Phenology
-0.017
0.210
landscape
0.297
Clonality
-0.005
0.406
landscape
0.416
SLA
-0.022
0.149
landscape
0.237
LDMC
-0.045
0.037
landscape
0.111
Toughness
-0.027
0.137
landscape
0.308
2
13
1
Grazed plots
Trait
r
p
scale
p.corr.traits
All traits
0.052
0.018
plot
0.045
Phylogeny
0.075
0.004
plot
0.018
Height
0.002
0.456
plot
0.462
Leaf traits
0.032
0.089
plot
0.114
Seed mass
-0.004 0.416
plot
0.461
LHS traits
0.012
0.317
plot
0.399
Lateral spread
0.028
0.132
plot
0.297
Life form
0.007
0.401
plot
0.500
Phenology
0.049
0.036
plot
0.108
Clonality
0.027
0.133
plot
0.239
SLA
0.000
0.476
plot
0.476
LDMC
0.027
0.141
plot
0.181
Toughness
0.030
0.110
plot
0.308
All traits
-0.092 0.002
patch
0.009
Phylogeny
-0.020 0.221
patch
0.381
Height
-0.050 0.053
patch
0.415
Leaf traits
-0.086 0.005
patch
0.022
Seed mass
-0.010 0.346
patch
0.461
LHS traits
-0.072 0.018
patch
0.081*
Lateral spread
-0.079 0.008
patch
0.040
Life form
0.018
0.282
patch
0.500
Phenology
-0.010 0.379
patch
0.393
Clonality
-0.032 0.115
patch
0.239
SLA
-0.009 0.369
patch
0.474
LDMC
-0.140 0.001
patch
0.009
Toughness
0.000
patch
0.488
All traits
-0.037 0.141
landscape
0.211
Phylogeny
-0.016 0.245
landscape
0.381
Height
0.015
0.291
landscape
0.415
Leaf traits
-0.065 0.023
landscape
0.052*
Seed mass
-0.078 0.008
landscape
0.072*
LHS traits
-0.061 0.055
landscape
0.165
Lateral spread
-0.019 0.235
landscape
0.344
Life form
-0.010 0.361
landscape
0.500
Phenology
0.022
0.171
landscape
0.297
Clonality
-0.010 0.336
landscape
0.416
SLA
-0.032 0.108
landscape
0.237
LDMC
-0.047 0.057
landscape
0.117
Toughness
-0.049 0.050
landscape
0.225
0.488
2
14
1
Abandoned plots
Trait
r
p
scale
p.corr.traits
All traits
0.023
0.190
plot
0.244
Phylogeny
0.005
0.450
plot
0.450
Height
-0.013
0.276
plot
0.415
Leaf traits
0.038
0.062
plot
0.093*
Seed mass
-0.032
0.107
plot
0.241
LHS traits
-0.012
0.355
plot
0.399
Lateral spread
0.000
0.499
plot
0.499
Life form
0.000
0.500
plot
0.500
Phenology
-0.006
0.393
plot
0.393
Clonality
0.053
0.025
plot
0.225
SLA
0.037
0.090
plot
0.237
LDMC
0.022
0.242
plot
0.272
Toughness
0.012
0.342
plot
0.445
All traits
0.008
0.388
patch
0.388
Phylogeny
-0.010
0.339
patch
0.381
Height
0.016
0.282
patch
0.415
Leaf traits
0.004
0.451
patch
0.451
Seed mass
0.004
0.461
patch
0.461
LHS traits
0.014
0.310
patch
0.399
Lateral spread
-0.043
0.051
patch
0.153
Life form
-0.058
0.018
patch
0.162
Phenology
0.055
0.023
patch
0.103
Clonality
-0.009
0.341
patch
0.416
SLA
-0.056
0.024
patch
0.216
LDMC
0.044
0.065
patch
0.117
Toughness
0.016
0.297
patch
0.445
All traits
0.012
0.282
landscape
0.317
Phylogeny
-0.008
0.326
landscape
0.381
Height
0.011
0.263
landscape
0.415
Leaf traits
0.004
0.436
landscape
0.451
Seed mass
-0.005
0.402
landscape
0.461
LHS traits
0.003
0.425
landscape
0.425
Lateral spread
0.011
0.286
landscape
0.344
Life form
0.001
0.439
landscape
0.500
Phenology
0.014
0.231
landscape
0.297
Clonality
0.002
0.416
landscape
0.416
SLA
0.005
0.441
landscape
0.476
LDMC
0.008
0.362
landscape
0.362
Toughness
-0.005
0.392
landscape
0.445
2
3
4
5
15
Download