Tengo algunos datos multivariantes y desea investigar el efecto de algunos gradiente ambiental. Quiero usar capscale, pero no sé cómo lidiar con el esquema de permutación. He hecho algo de artificial de datos, con 20 sitios a lo largo de un gradiente ("env"):
######### create some species data along a gradient
df <- structure(list(site = 1:20,
sp1 = c(7L, 4L, 2L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L),
sp2 = c(1L, 2L, 4L, 7L, 8L, 7L, 4L, 2L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L),
sp3 = c(0L, 0L, 0L, 0L, 0L, 1L, 2L, 4L, 7L, 8L, 7L, 4L, 2L, 1L, 0L, 0L, 0L, 0L, 0L, 0L),
sp4 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 2L, 4L, 7L, 8L, 7L, 4L, 2L, 1L, 0L),
sp5 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 2L, 4L, 7L, 8L),
sp6 = c(0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L),
sp7 = c(0L, 0L, 0L, 0L, 0L, 0L, 2L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L),
sp8 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L),
sp9 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 4L, 1L, 0L, 0L)),
.Names = c("site", "sp1", "sp2", "sp3", "sp4", "sp5", "sp6", "sp7", "sp8", "sp9"),
class = "data.frame", row.names = c(NA, -20L))
# add some linear responses
df$sp6 <- round(seq(1, 8, 7/19), digits = 2) # linear response
df$sp7 <- round(seq(1, 4, 3/19), digits = 2) # no so strong linear response
df$sp9 <- round(seq(1, 6, 5/19), digits = 2)
# gradient
df$env <- 1:20
Si probé solo una vez me gustaría hacer algo como esto:
# db-RDA sampled at one time
require(vegan)
mod <- capscale(df[ ,-c(1, 10)] ~ env, data = df, distance = "bray")
anova(mod, by = "terms", step = 999) # assess the "significance" of contraining variable
plot(mod)
Ahora imagina que probé los mismos datos instante, pero en tres meses diferentes:
# now we replate exactly the same data 2 more times
repdf <- rbind(df, df, df)
repdf$time <- rep(1:3, each = nrow(df))
repdf$site <- factor(repdf$site)
Si yo uso sin restricciones de permutaciones, a continuación, esto no captura las medidas repetidas y el valor de p sería a la baja.
Yo podría restringir las permutaciones dentro de cada uno de los sitios (usando los estratos = sitio en vegano), pero esto únicamente destruye el efecto temporales y rinde a un p de 1 (debido a que cada permuation es el mismo):
repmod <- capscale(repdf[ ,-c(1, 11, 12)] ~ env, data = repdf, distance = "bray") # db-RDA
anova(repmod, by = "terms", strata = repdf$site, step = 999)
Mi pregunta: ¿Cómo debo restringir las permutaciones evaluar el efecto del gradiente de tomar esta correlación temporal en cuenta? Lo permutationscheme debo usar?
Algunas ideas: a) Permutar los estratos ( = sitios), pero no dentro de los estratos. Esto destruirá el env de gradiente, por lo que el p-valor es determinado solamente por esto.
b) Incluir el "tiempo" en el modelo (con interacciones) y la carrera por el tiempo de efecto de diferentes permutación-esquema (permutar dentro de los sitios) que para env (permutar sitios, pero no dentro de los sitios).
Yo sé acerca de la permutar paquete y puede incorporar en permutest.cca, así que mi pregunta es más teórico.