Vegan RDA и биплот, удалите значения, вносящие> 10% дисперсии - PullRequest
2 голосов
/ 03 февраля 2020

Я использую пакет vegan для выполнения RDA и хочу построить данные с помощью биплота. В моих данных у меня есть сотни значений. То, что я хотел бы сделать, это ограничить объясненную дисперсию установленным пределом, поэтому в примере ниже до 0,1. Таким образом, вместо 44 стрел, я мог бы сказать только 8

library (vegan)           # Load library
library(MASS)             # load library
data(varespec)            # Dummy data
vare.pca <- rda(varespec, scale = TRUE)              # RDA anaylsis
biplot(vare.pca, scaling = 3,display = "species")    # Plot data but includes all

## extracts the percentage##
x =(sort(round(100*scores(vare.pca, display = "sp", scaling = 0)[,1]^2, 3), decreasing = TRUE)) 
## Plot percentage    
plot(length(x):1,sort(x)) # plot rank on value of y

. Любая помощь будет принята:)

1 Ответ

1 голос
/ 04 февраля 2020

В зависимости от размера набора данных можно будет использовать ordistep или ordiR2step для уменьшения количества «неважных» переменных на вашем графике (см. https://www.rdocumentation.org/packages/vegan/versions/2.4-2/topics/ordistep). Однако эти функции используют пошаговый выбор, который следует использовать с осторожностью. Пошаговый выбор может выбрать ваши включенные параметры на основе значений AI C, значений R2 или p-значений. Он не выбирает значения, основанные на важности их для цели вашего вопроса. Это также не означает, что эти переменные имеют какое-либо значение для организмов или биохимических взаимодействий. Тем не менее, пошаговый отбор может быть полезным, давая представление о том, какие параметры могут оказать сильное влияние на общее изменение набора данных. Простой пример ниже.

rda0 <- rda(varespec ~1, varespec)
rda1 <- rda(varespec ~., varespec)

rdaplotp <- ordistep(rda0, scope = formula(rda1))
plot(rdaplotp, display = "species", type = "n")
text(rdaplotp, display="bp")

Таким образом, благодаря использованию функции ordistep количество видов, отображаемых на графике, было значительно уменьшено (см. Рис. 1 ниже). Если вы хотите удалить больше переменных (что я не предлагаю), можно посмотреть на выходные данные биплота и выбросить переменные, которые имеют наименьшее количество корреляции с основными компонентами (см. Ниже), но я бы хотел советую против этого.

sumrda <- summary(rdaplotp)
sumrda$biplot

Что было бы разумно, это сначала проверить, на какой вопрос вы хотите ответить, и посмотреть, не может ли какая-либо из включенных переменных быть пропущена заранее. Это уже уменьшит сумму. Незначительное редактирование: я также немного сбит с толку, почему вы хотите удалить параметры, сильно влияющие на ваш зафиксированный вариант.

Fig 1

...