No estoy claro de inmediato qué centroide usted quiere que, pero el centro de gravedad que viene a la mente es el punto en el multivariante espacio en el centro de la masa de los puntos por grupo. Acerca de esto usted desea un 95% de confianza de la elipse. Ambos aspectos pueden ser calculadas usando la ordiellipse()
función en vegano. Aquí es una modificación ejemplo ?ordiellipse
, pero con un PCO como un medio para integrar las diferencias que existen en un espacio Euclidiano de la que podemos derivar de centroides y la confianza de los puntos suspensivos para los grupos basados en la Gestión de la Naturaleza de la variable Management
.
require(vegan)
data(dune)
dij <- vegdist(decostand(dune, "log"), method = "altGower")
ord <- capscale(dij ~ 1) ## This does PCO
data(dune.env) ## load the environmental data
Ahora podemos mostrar el primer PCO 2 ejes y agregar un 95% de confianza de la elipse basado en los errores estándar de la media de los ejes de las puntuaciones. Queremos que los errores estándar para establecer kind="se"
y el uso de la conf
argumento para dar el intervalo de confianza requerido.
plot(ord, display = "sites", type = "n")
stats <- with(dune.env,
ordiellipse(ord, Management, kind="se", conf=0.95,
lwd=2, draw = "polygon", col="skyblue",
border = "blue"))
points(ord)
ordipointlabel(ord, add = TRUE)
Aviso que yo capturar la salida de ordiellipse()
. Esto devuelve una lista, uno de los componentes de cada grupo, con los detalles del centroide y la elipse. Usted puede extraer el center
componente de cada uno de estos, para llegar a los centroides
> t(sapply(stats, `[[`, "center"))
MDS1 MDS2
BF -1.2222687 0.1569338
HF -0.6222935 -0.1839497
NM 0.8848758 1.2061265
SF 0.2448365 -1.1313020
Observe que el centro de gravedad es sólo para la solución de 2d. Más general es la opción para calcular los centroides de ti mismo. El centroide es sólo el individuo promedios de las variables o en este caso el PCO ejes. Como se trabaja con las diferencias, que necesitan para ser incorporado en una ordenación espacio, por lo que tienen ejes (variables) que se puede calcular los promedios de. Aquí el eje de las puntuaciones en las columnas y los sitios en filas. El centroide de un grupo es el vector de la columna de promedios para el grupo. Hay varias maneras de dividir los datos, pero en este caso utilizo aggregate()
a dividir las puntuaciones en la primera PCO 2 ejes en grupos basados en Management
y calcular las medias
scrs <- scores(ord, display = "sites")
cent <- aggregate(scrs ~ Management, data = dune.env, FUN = mean)
names(cent)[-1] <- colnames(scrs)
Esto nos da:
> cent
Management MDS1 MDS2
1 BF -1.2222687 0.1569338
2 HF -0.6222935 -0.1839497
3 NM 0.8848758 1.2061265
4 SF 0.2448365 -1.1313020
que es el mismo que los valores almacenados en stats
extraído anteriormente. El aggregate()
enfoque se generaliza a cualquier número de ejes, por ejemplo:
> scrs2 <- scores(ord, choices = 1:4, display = "sites")
> cent2 <- aggregate(scrs2 ~ Management, data = dune.env, FUN = mean)
> names(cent2)[-1] <- colnames(scrs2)
> cent2
Management MDS1 MDS2 MDS3 MDS4
1 BF -1.2222687 0.1569338 -0.5300011 -0.1063031
2 HF -0.6222935 -0.1839497 0.3252891 1.1354676
3 NM 0.8848758 1.2061265 -0.1986570 -0.4012043
4 SF 0.2448365 -1.1313020 0.1925833 -0.4918671
Obviamente, los centroides de los dos primeros PCO ejes no cambian cuando pedimos más ejes, de modo que se podría calcular los centroides sobre todos los ejes de una vez, a continuación, utilizar lo que alguna vez la dimensión que desea.
Usted puede agregar los centroides a la anterior parcela con
points(cent[, -1], pch = 22, col = "darkred", bg = "darkred", cex = 1.1)
La gráfica resultante se verá ahora como esta
Finalmente, vegano contiene la adonis()
y betadisper()
funciones que están diseñados para examinar las diferencias en las medias y varianzas de datos multivariantes en formas muy similar a la de Martí papeles/software. betadisper()
está estrechamente vinculada con el contenido de la ponencia que mencionas y también puede devolver los centroides para usted.