Ich möchte 95% -Konfidenzintervalle für Zentroide erhalten, basierend auf der Gower-Ähnlichkeit zwischen einigen mulivariaten Proben (Community-Daten von Sedimentkernen). Bisher habe ich das vegan{}
Paket in R verwendet, um eine modifizierte Gower-Ähnlichkeit zwischen Kernen zu erhalten (basierend auf Anderson 2006; jetzt in R als Teil von enthalten vegdist()
). Weiß jemand, wie ich 95% -Konfidenzintervalle für die Schwerpunkte von beispielsweise Probenahmestellen basierend auf der modifizierten Gower-Ähnlichkeit berechnen kann?
Wenn möglich, möchte ich diese 95% CIs außerdem auf einem PCO darstellen, auf dem die Zentroide angezeigt werden. Es ist also offensichtlich, ob sie sich überlappen.
Um die modifizierte Gower-Ähnlichkeit zu erhalten, habe ich Folgendes verwendet:
dat.mgower <- vegdist(decostand(dat, "log"), "altGower")
Aber soweit ich weiß, bekommt man keine Zentroide von vegdist()
. Ich muss Zentroide bekommen, dann 95% CIs, dann sie zeichnen ... in R. Hilfe!
Anderson, MJ, KE Ellingsen und BH McArdle. 2006. Multivariate Dispersion als Maß für die Beta-Diversität. Ecology Letters 9: 683–693.
quelle
Antworten:
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?ordiellipse
Verwendung 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 basierenManagement
.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 dasconf
Argument, um das erforderliche Konfidenzintervall anzugeben.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 diecenter
Komponente aus jeder dieser Komponenten extrahieren , um zu den Schwerpunkten zu gelangenBeachten 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 aufzuteilenManagement
und deren Durchschnittswerte zu berechnenDas gibt:
Dies entspricht den Werten, die
stats
wie oben extrahiert gespeichert wurden . Deraggregate()
Ansatz verallgemeinert sich auf eine beliebige Anzahl von Achsen, z.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
Das resultierende Diagramm sieht nun so aus
Schließlich enthält vegan die
adonis()
undbetadisper()
-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.quelle
?ordiellipse
um Einzelheiten darüber zu erfahren, was hier getan wird, insbesondere bei der Berechnung des Konfidenzintervalls. Ob die Theorie mit den Daten übereinstimmt, möchten Sie vielleicht mit Simulation oder Resampling untersuchen oder anstatt sich auf "Theorie" zu verlassen.adonis()
kann verwendet werden, um auf ähnliche Mittelwerte (Zentroide) von Gruppen zu testen, wie man ANOVA im univariaten Fall verwenden könnte. Ein Permutationstest wird verwendet, um festzustellen, ob die Daten mit der Nullhypothese ohne Unterschied der Schwerpunkte übereinstimmen. Beachten Sie auch, dass Unterschiede der Schwerpunkte durch unterschiedliche Gruppendispersionen (Varianzen) verursacht werden können.betadisper()
kann Ihnen helfen, zu testen, ob dies der Fall ist, indem Sie erneut einen permutationsbasierten Test der durchschnittlichen Abstände der Stichprobenpunkte zu ihrem Schwerpunkt verwenden.adonis()
undbetadisp()
, glaube ich). Ich habe nur nach einer guten Möglichkeit gesucht, die Daten anzuzeigen. Ich habe eine Site-x-Season-Interaktion für ein Design mit wiederholten Messungen, daher wollte ich leicht zeigen können, welche Sites einen saisonalen Effekt zeigten. Ich denke, diese Ellipsen sind das, wonach ich suche. Dieses Beispiel war sehr hilfreich.ordiellipse()
ohne eine for-Schleife einzubetten ? Ich habe sowohl Jahreszeiten als auch Standorte in meinen Daten, und ich wollte unterschiedliche Standorte in einem Diagramm und Jahreszeiten in einem anderen durch Farbcodierung anzeigen. Aus irgendeinem Grund funktioniert die Verwendung von col = c (1,2,1,2) usw. nicht und col = as.numeric (cent ["Site_TP"]) auch nicht. Gibt es eine elegante Möglichkeit, dies zu tun?