2 votes

Comment je peux tracer une courbe de richesse attendue (Chao1) via vegan dans R

Je dispose d'un ensemble de données provenant d'un site et contenant des données sur les espèces et leur abondance (nombre d'individus pour chaque espèce dans l'échantillon). J'utilise le paquet vegan pour l'analyse de la diversité alpha. Par exemple, je trace une courbe de rareté des espèces via la fonction rarecurve (je ne peux pas utiliser la fonction specaccum car je n'ai que des données provenant d'un seul site), et je calcule un indice Chao1 via la fonction estimateR.

Comment puis-je tracer une courbe de richesse attendue de Chao1 en utilisant la fonction estimateR ? J'aimerais ensuite combiner ces courbes sur un seul graphique.

library(vegan)
TR <- matrix(nrow=1,c(3,1,1,17,1,1,1,1,1,2,1,1,3,13,31,24,6,1,1,4,1,10,2,3,1,5,6,1,1,1,4,16,17,15,6,9,66,3,1,3,24,15,2,3,17,1,7,2,27,13,2,1,1,3,1,3,30,7,1,1,4,1,2,5,1,1,6,2,1,9,11,5,8,7,2,2,2,1,13,3,8,4,1,5,27,1,62,13,6,7,7,4,9,1,7,7,1,25,1,5,3,1,2,1,1,5,2,73,25,17,43,88,2,3,38,4,5,6,6,16,2,13,10,7,1,2,9,3,1,3,1,8,4,4,5,13,2,25,9,2,1,12,29,4,1,9,1,1,3,4,2,9,4,26,2,7,4,18,1,10,10,4,6,5,20,1,2,11,1,3,1,2,1,1,12,3,2,1,4,24,7,22,19,43,2,9,18,1,1,1,9,7,6,1,8,2,2,19,7,26,4,4,1,3,4,5,2,4,8,2,3,1,5,5,1,11,6,6,2,4,3,1,10,6,9,16,1,1,32,1,1,31,2,12,2,13,1,2,9,13,1,11,8,1,14,5,9,1,3,1,7,1,1,13,17,1,1,3,2,9,1,4,1,7,2,2,9,24,20,2,1,2,2,1,9,5,1,1,23,13,7,1,8,5,47,32,6,13,16,8,2,1,5,4,3,1,2,1,1,1,3,14,6,21,2,7,2,2,16,2,10,21,18,2,1,3,33,12,55,4,1,5,14,3,10,2,4,1,2,5,7,6,2,12,14,28,18,30,28,7,1,1,1,3,4,2,17,60,31,3,3,2,2,3,6,2,6,1,13,2,3,13,7,2,10,19,9,7,1,3))
num_species=specnumber(TR)
chao1=estimateR(TR)[2,]
shannon=diversity(TR,"shannon")
rarecurve(TR)
estimateR(TR)

Voici un tracé, basé sur les résultats d'EstimateS (j'ai entré les mêmes données) avec SigmaPlot :

Individual-based species accumulation curve (SAC) (thick line) and the Chao 1 estimator (thin line) of expected richness;

La ligne fine représente la richesse attendue - Chao1. Dans R, je ne peux tracer que le SAC. Dans EstimateS j'obtiens un ensemble avec les données pour les 2990 individus, mais pas dans R.

1voto

Jari Oksanen Points 1795

Je ne sais pas comment les choses sont faites dans estimationS mais il semble que la courbe de richesse étendue (Chao 1) soit basée sur la moyenne de sous-échantillons aléatoires de la communauté. Cela pourrait être fait de la manière suivante :

subchao <- sapply(1:2990, function(i) 
   mean(sapply(1:100, function(...) estimateR(rrarefy(TR, i))[2,])))

Cela raréfierait de façon aléatoire ( rrarefy() ) à toutes les tailles d'échantillons de 1 à 2990 et trouvez la moyenne à partir de 100 répliques de chacun. Cela prendra du temps.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X