Почему adonis () из vegan каждый раз возвращает другое p-значение? - PullRequest
0 голосов
/ 08 июля 2019

Функция adonis из пакета vegan выполняет непараметрическую MANOVA, также известную как PERMANOVA. Проблема (или нет, может быть, я просто не до конца понимаю, как работает тест) в том, что каждый раз, когда я запускаю его, используя одни и те же данные, я получаю немного другое значение p.

Вот пример данных.

dframetest <- data.frame(X = rnorm(20), Y = rnorm(20), Z = rnorm(20), Label = c(rep("A",10),rep("B",10)))

adonis(dframetest[,1:3] ~ Label, permutations = 1000, data = dframetest, method = "euclidean")

Если вы выполните adonis несколько раз, вы увидите, что значение p почти всегда немного отличается, хотя кажется, что может быть около 3-4 значений. Меня удивляет, что произойдет, если у вас есть данные, которые находятся на грани значимости. Как бы вы интерпретировали результаты, если возвращаемые значения выглядели бы как 0.053, 0.047, 0.05?

Ответы [ 2 ]

1 голос
/ 09 июля 2019

Как упоминает @ user2554330, мы используем перестановки данных для проверки статистики теста.Перестановки являются псевдослучайными, генерируемыми функциями из пакета permute .Если вы хотите получить повторяющиеся p-значения, установите начальное число генератора случайных чисел, используя set.seed();например,

set.seed(42)
adonis(....)
set.seed(42)
adonis(....)

даст тот же набор перестановок и, следовательно, то же значение p.

Точность p-значения перестановки будет увеличиваться по мере увеличения количества перестановок;если вы попробуете выполнить свой пример без , задающего начальное значение ГСЧ, но с permutations = 10000, вы увидите меньше вариаций.

1 голос
/ 08 июля 2019

adonis выполняет тест перестановки, выбирая случайные перестановки. Вы запросили 1000 случайных перестановок, поэтому значение p основано на ранге наблюдаемой вами статистики теста среди этих 1000 случайных. (Вы получаете более простые числа для интерпретации со значением по умолчанию permutations = 999; тогда p=0.264 означает, что ваши наблюдаемые статистические данные находятся на 264-й вершине при включении в случайные.)

Если бы возвращенные значения от 3 прогонов были 0,053, 0,047, 0,05, то вы бы знали, что истинное значение p (полученное путем перечисления всех возможных перестановок) было около 0,05. Но даже если вы знали, что истинное значение p было 0,049 против 0,051, заключение должно быть более или менее одинаковым. Существуют свидетельства того, что эффект достаточно велик, чтобы случайным образом проявляться лишь примерно в 1 раз из 20 с чисто случайными данными, не связанными с предиктором.

Извините, я здесь не по теме. Если вы хотите узнать об интерпретации значений p, вам, вероятно, следует использовать перекрестную проверку, а не переполнение стека.

...