Dear list, I'm not so familiar with ecological statistics (though I should be), so I'm looking for a confirmation and support to my decision to move on with the adonis path. I've been trying to find a method to analyse differences between mammalian communities and I think adonis would do the work for me. My data consists of different localities (each of assigned into a vegetation class) and number of species in different ecomorphological classes (groups) I have generated. There are nine vegetation classes, 52 localities, six mammalian groups having some 200-300 species in them. My idea is to use these mammalian groups as "species" in the data matrix which would look like this: L V G1 G2 G3 ... G6 1 1 0 1 2 ... 8 2 2 1 2 1 ... 3 3 2 1 3 2 ... 4 4 3 5 2 2 ... 9 5 3 5 3 3 ... 8 6 3 4 2 3 ... 7 ... 52 9 8 8 1 ... 0 L=locality id V = vegetation class G1...G6 mammalian groups, and in the matrix the counts of species in the group. First I'm trying to test if there are any differences between the vegetation groups. For this I'm planning to use a pairwise adonis comparisons between the different vegetation groups, i.e V1 vs V2, V1 vs V3, ... V8 vs V9. From each of these comparisons I'm taking the Df, F, P>F etc values into a matrix so that I'm able to see the values later. When I get the P-values I suppose I can say that there are differences between the vegetation classes when the P-value is < 0.05, right? And if so, I need to find a way to explain which mammalian groups are responsible for these differences? Does anyone have a good suggestion for this? I've found one approach which is called SimPer (Similarity Percentage Analysis), but I'm not sure is it in vegan. And finally, is there any requirement, how many different data rows I need for one type of vegetation? In some cases I only have one which would mean that the within group variation is zero? Any suggestions are welcome! -Kari Kari Lintulaakso, M.Sc.(Biosciences) Doctoral student Paleontology and Paleoecology Department of Geosciences and Geography University of Helsinki * Email: kari.lintulaakso at helsinki.fi * Post: Department of Geology, Gustaf H?llstr?min katu 2a (P.O Box 64), 00014 University of Helsinki * Web page: http://blogs.helsinki.fi/lintulaa/
Is adonis the right test for me?
2 messages · Kari Lintulaakso, Eduard Szöcs
Hai Kari,
as far as i know SimPer is not available in vegan.
I have written some code for myself a few months ago to do this.
I think its doing the job, but coding is poor (3 for-loops...).
- Eduard
############################################################
###### SIMPER , Clarke (1993)
########
###### V 0.3 29.04.2011 Sz?cs, Eduard
########
############################################################
###############
#### Code #####
###############
simper <- function(comm, groups, select){
group.a <- as.matrix(comm[groups == select[1], ])
group.b <- as.matrix(comm[groups == select[2], ])
n.a <- nrow(group.a)
n.b <- nrow(group.b)
P <- ncol(comm)
me <- matrix(ncol = P)
md <- matrix(ncol = P)
contr <- matrix(ncol = P, nrow = n.a * n.b)
for(j in 1:n.b) {
for(k in 1:n.a) {
for(s in 1:P) {
md[s] <- abs(group.a[k, s] - group.b[j, s])
me[s] <- group.a[k, s] + group.b[j, s]
a <- rowSums(me)
c <- md / a
contr[(j-1)*n.a+k, ] <- md / a
}}}
av.contr <- apply(contr, 2, mean)*100
ov.av.dis <- sum(av.contr)
sdi <- apply(contr, 2, sd)
sdi.av <- sdi / av.contr
av.a <- colMeans(group.a)
av.b <- colMeans(group.b)
dat <- data.frame(av.contr, sdi, sdi.av, av.a, av.b)
dat <- dat[order(dat$av.contr, decreasing = TRUE),]
cum <- cumsum(dat$av.contr / ov.av.dis)*100
out <- data.frame(dat, cum)
out
}
###############
#### Usage ####
###############
# simper(comm, groups, select)
# Arguments :
############
# * comm : commumity data. species in columns, observations in rows
# * groups : vector containing treatment per observation
# * select : vector with length 2, indicating the two groups to compare
# Output :
##########
# * av.contr : average contribution to overall similarity
# * sdi : standard deviation of contribution
# * sdi.va : ratio mean / sd = sdi / av.contr.
# * av.a : average abundance in first group
# * av.b : average abundance in second group
# * cum : cumulative contribution
#################
#### Example ####
#################
require(vegan)
data(dune)
data(dune.env)
adonis(dune ~ Management, data=dune.env, permutations=99)
levels(dune.env$Management)
simper(dune, dune.env$Management, c("BF", "SF"))
Am 29.04.2011 06:34, schrieb Kari Lintulaakso:
Dear list, I'm not so familiar with ecological statistics (though I should be), so I'm looking for a confirmation and support to my decision to move on with the adonis path. I've been trying to find a method to analyse differences between mammalian communities and I think adonis would do the work for me. My data consists of different localities (each of assigned into a vegetation class) and number of species in different ecomorphological classes (groups) I have generated. There are nine vegetation classes, 52 localities, six mammalian groups having some 200-300 species in them. My idea is to use these mammalian groups as "species" in the data matrix which would look like this: L V G1 G2 G3 ... G6 1 1 0 1 2 ... 8 2 2 1 2 1 ... 3 3 2 1 3 2 ... 4 4 3 5 2 2 ... 9 5 3 5 3 3 ... 8 6 3 4 2 3 ... 7 ... 52 9 8 8 1 ... 0 L=locality id V = vegetation class G1...G6 mammalian groups, and in the matrix the counts of species in the group. First I'm trying to test if there are any differences between the vegetation groups. For this I'm planning to use a pairwise adonis comparisons between the different vegetation groups, i.e V1 vs V2, V1 vs V3, ... V8 vs V9. From each of these comparisons I'm taking the Df, F, P>F etc values into a matrix so that I'm able to see the values later. When I get the P-values I suppose I can say that there are differences between the vegetation classes when the P-value is< 0.05, right? And if so, I need to find a way to explain which mammalian groups are responsible for these differences? Does anyone have a good suggestion for this? I've found one approach which is called SimPer (Similarity Percentage Analysis), but I'm not sure is it in vegan. And finally, is there any requirement, how many different data rows I need for one type of vegetation? In some cases I only have one which would mean that the within group variation is zero? Any suggestions are welcome! -Kari Kari Lintulaakso, M.Sc.(Biosciences) Doctoral student Paleontology and Paleoecology Department of Geosciences and Geography University of Helsinki * Email: kari.lintulaakso at helsinki.fi * Post: Department of Geology, Gustaf H?llstr?min katu 2a (P.O Box 64), 00014 University of Helsinki * Web page: http://blogs.helsinki.fi/lintulaa/
_______________________________________________ R-sig-ecology mailing list R-sig-ecology at r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-ecology