Eu gostaria de obter intervalos de confiança de 95% para os centróides com base na semelhança de Gower entre algumas amostras multivariadas (dados da comunidade de núcleos de sedimentos). Até agora, usei o vegan{}
pacote em R para obter a similaridade de Gower modificada entre os núcleos (baseado em Anderson 2006; agora incluído no R como parte de vegdist()
). Alguém sabe como posso calcular intervalos de confiança de 95% para os centróides de, por exemplo, locais de amostragem, com base na similaridade modificada de Gower?
Além disso, se possível, eu gostaria de plotar esses ICs de 95% em um PCO que mostre os centróides, por isso é evidente se eles estão sobrepostos.
Para obter a similaridade de Gower modificada, usei:
dat.mgower <- vegdist(decostand(dat, "log"), "altGower")
Mas, tanto quanto eu sei, você não recebe centróides vegdist()
. Preciso obter centróides, depois ICs 95%, depois plotá-los ... em R. Help!
Anderson, MJ, KE Ellingsen e BH McArdle. 2006. Dispersão multivariada como uma medida da diversidade beta. Cartas de ecologia 9: 683–693.
fonte
Respostas:
Não estou imediatamente esclarecido qual centróide você deseja, mas o centróide que vem à mente é o ponto no espaço multivariado no centro da massa dos pontos por grupo. Sobre isso, você deseja uma elipse de 95% de confiança. Ambos os aspectos podem ser calculados usando a
ordiellipse()
função no vegan . Aqui está um exemplo modificado de?ordiellipse
mas usando um PCO como um meio para incorporar as diferenças em um espaço euclidiano do qual podemos derivar centróides e elipses de confiança para grupos com base na variável Gerenciamento da NaturezaManagement
.Agora, exibimos os 2 primeiros eixos PCO e adicionamos uma elipse de 95% de confiança com base nos erros padrão da média das pontuações do eixo. Queremos erros padrão para definir
kind="se"
e usar oconf
argumento para fornecer o intervalo de confiança necessário.Observe que eu capturei a saída de
ordiellipse()
. Isso retorna uma lista, um componente por grupo, com detalhes do centróide e da elipse. Você pode extrair ocenter
componente de cada um deles para chegar aos centróidesObserve que o centróide é apenas para a solução 2D. Uma opção mais geral é calcular você mesmo os centróides. O centróide é apenas a média individual das variáveis ou, neste caso, os eixos PCO. Como você está trabalhando com as diferenças, elas precisam ser incorporadas em um espaço de ordenação para que você tenha eixos (variáveis) dos quais você pode calcular as médias. Aqui, as pontuações do eixo estão em colunas e os sites em linhas. O centróide de um grupo é o vetor de médias da coluna para o grupo. Existem várias maneiras de dividir os dados, mas aqui eu uso
aggregate()
para dividir as pontuações nos 2 primeiros eixos PCO em grupos com baseManagement
e calcular suas médiasIsto dá:
que é igual aos valores armazenados
stats
como extraídos acima. Aaggregate()
abordagem generaliza para qualquer número de eixos, por exemplo:Obviamente, os centróides nos dois primeiros eixos PCO não mudam quando solicitamos mais eixos; portanto, você pode computar os centróides em todos os eixos uma vez e depois usar a dimensão que desejar.
Você pode adicionar os centróides ao gráfico acima com
O gráfico resultante será agora parecido com este
Finalmente, o vegan contém as funções
adonis()
ebetadisper()
que são projetadas para observar diferenças nas médias e variações de dados multivariados de maneira muito semelhante aos documentos / software de Marti.betadisper()
está intimamente ligado ao conteúdo do artigo que você cita e também pode devolver os centróides para você.fonte
?ordiellipse
para obter detalhes do que está sendo feito aqui, especialmente no cálculo do intervalo de confiança. Se a teoria corresponde aos dados é algo que você pode querer examinar com simulação ou reamostragem ou algo ao invés de confiar na "teoria".adonis()
pode ser usado para testar médias semelhantes (centróides) de grupos, como se pode usar ANOVA no caso univariado. Um teste de permutação é usado para determinar se os dados são consistentes com a hipótese nula de que não há diferença de centróides. Observe também que as diferenças de centróides podem ser causadas por diferentes dispersões de grupos (variações).betadisper()
pode ajudá-lo a testar se for esse o caso, novamente usando um teste baseado em permutação das distâncias médias dos pontos da amostra até o centróide.adonis()
ebetadisp()
, acredito), estava apenas procurando uma boa maneira de exibir os dados. Eu tenho alguma interação site x estação para um design de medidas repetidas, então eu queria poder mostrar facilmente quais sites mostraram um efeito sazonal. Eu acho que essas elipses são o que estou procurando; Este exemplo foi muito útil.ordiellipse()
sem incorporar um loop for? Eu tenho estações e sites em meus dados e queria mostrar sites de diferenças em um gráfico e estações em outro codificando-os por cores. Por qualquer motivo, usar col = c (1,2,1,2) etc não funciona, nem col = as.numeric (cent ["Site_TP"]). Existe uma maneira elegante de fazer isso?