Mir ist nicht sofort klar, welchen Schwerpunkt Sie möchten, aber der Schwerpunkt, der mir in den Sinn kommt, ist der Punkt im multivariaten Raum im Zentrum der Masse der Punkte pro Gruppe. Darüber möchten Sie eine 95% ige Vertrauensellipse. Beide Aspekte können mit der ordiellipse()Funktion in vegan berechnet werden . Hier ist ein modifiziertes Beispiel aus der ?ordiellipseVerwendung eines PCO als Mittel zum Einbetten der Unterschiede in einen euklidischen Raum, aus dem wir Schwerpunkte und Vertrauensellipsen für Gruppen ableiten können, die auf der Nature Management-Variablen basieren 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
Jetzt zeigen wir die ersten 2 PCO-Achsen an und fügen eine 95% -Konfidenzellipse hinzu, die auf den Standardfehlern des Durchschnitts der Achsenwerte basiert. Wir möchten, dass Standardfehler festgelegt werden, kind="se"und verwenden Sie das confArgument, um das erforderliche Konfidenzintervall anzugeben.
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)
Beachten Sie, dass ich die Ausgabe von erfasse ordiellipse(). Dies gibt eine Liste zurück, eine Komponente pro Gruppe, mit Details zum Schwerpunkt und zur Ellipse. Sie können die centerKomponente aus jeder dieser Komponenten extrahieren , um zu den Schwerpunkten zu gelangen
> 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
Beachten Sie, dass der Schwerpunkt nur für die 2d-Lösung gilt. Eine allgemeinere Option besteht darin, die Zentroide selbst zu berechnen. Der Schwerpunkt ist nur der einzelne Durchschnitt der Variablen oder in diesem Fall der PCO-Achsen. Während Sie mit den Unähnlichkeiten arbeiten, müssen sie in einen Ordnungsraum eingebettet sein, damit Sie Achsen (Variablen) haben, aus denen Sie Durchschnittswerte berechnen können. Hier sind die Achsenbewertungen in Spalten und die Stellen in Zeilen. Der Schwerpunkt einer Gruppe ist der Vektor der Spaltenmittelwerte für die Gruppe. Es gibt verschiedene Möglichkeiten, die Daten aggregate()aufzuteilen, aber hier verwende ich , um die Punktzahlen auf den ersten beiden PCO-Achsen in Gruppen aufzuteilen Managementund deren Durchschnittswerte zu berechnen
scrs <- scores(ord, display = "sites")
cent <- aggregate(scrs ~ Management, data = dune.env, FUN = mean)
names(cent)[-1] <- colnames(scrs)
Das gibt:
> 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
Dies entspricht den Werten, die statswie oben extrahiert gespeichert wurden . Der aggregate()Ansatz verallgemeinert sich auf eine beliebige Anzahl von Achsen, z.
> 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
Offensichtlich ändern sich die Schwerpunkte auf den ersten beiden PCO-Achsen nicht, wenn wir nach mehr Achsen fragen. Sie können also die Schwerpunkte über alle Achsen einmal berechnen und dann die gewünschte Dimension verwenden.
Sie können die Schwerpunkte zum obigen Diagramm mit hinzufügen
points(cent[, -1], pch = 22, col = "darkred", bg = "darkred", cex = 1.1)
Das resultierende Diagramm sieht nun so aus

Schließlich enthält vegan die adonis()und betadisper()-Funktionen, mit denen Unterschiede in den Mitteln und Varianzen multivariater Daten auf eine Weise untersucht werden sollen, die Martis Papieren / Software sehr ähnlich ist. betadisper()ist eng mit dem Inhalt des von Ihnen zitierten Papiers verknüpft und kann die Zentroide auch für Sie zurückgeben.