альфа-разнообразие wilcox.test

Oct 07 2020

Я пытаюсь выполнить тест Уилкокса, чтобы выявить значительную разницу в альфа-разнообразии, но он показывает ошибку? physeqN2 - это объект phyloseq, а сезон - это столбец метаданных.

results = estimate_richness(physeqN2, measures = 'Chao1')

d = sample_data(physeqN2)

# calculate Wilcox Test
Wet.root = results[d[,'Season'] == 'Wet',]
Dry.root = results[d[,'Season'] == 'Dry',]
pmv <-pairwise.wilcox.test(Wet.root, Dry.root)

capture.output(pmv, file = "chao1.16s.wet_vs_Dry.root.txt")

Error;
Error in wilcox.test.default(xi, xj, paired = paired, ...) :
  'x' must be numeric
Calls: pairwise.wilcox.test ... compare.levels -> wilcox.test -> wilcox.test.def                                                                                        ault
Execution halted

Я хвае пытался сделать это по-другому, но тут тоже возникает ошибка?

alpha.diversity <- estimate_richness(physeqN2, measures=c("Chao1"))


## Wilcox on observed richness
data <- cbind(sample_data(physeqN2), alpha.diversity)
pmv <-pairwise.wilcox.test(Chao1 ~ Season, data)

capture.output(pmv, file = "chao1.16s.wet_vs_Dry.root.txt")

Error:

Error in if (length(ans) == 0L || as.character(ans[[1L]])[1L] == "~") { :
  missing value where TRUE/FALSE needed
Calls: pairwise.wilcox.test ... sapply -> lapply -> FUN -> compare.levels -> [ -> [.formula
Execution halted

Большое спасибо

Ответы

M__ Oct 07 2020 at 18:48

Думаю, это ошибка во входных данных.

По моему мнению, происходит то, что входные данные не считаются парными, отсюда и ошибка paired = paired. Другая странная ошибка x must be numeric. Во-первых,

  • как вы оцениваете недостающие данные, это -случайно не через ? Отсутствующие данные должны указываться через nanсинтаксис типа.
  • Вы уверены, что ошибок заголовков нет? Как заголовок перетаскивается в числовые данные?

Вилкоксан - это непараметрический тест Т, поэтому влажный и сухой корень должны соответствовать одному и тому же образцу. Таким образом, это не обычный влажный корень по сравнению с обычным сухим корнем, а влажный и сухой от одного и того же образца. Если это те данные, которые у вас есть, программа считает, что они не совпадают.

Если это действительно пара, я снова думаю, что источником ошибки является недостающее значение, которое оставляет пары неравной длины или, иначе, ошибку заголовка.

Если данные действительно не сопряжены, я бы посмотрел на U-тест Манна-Уитни, в этом сценарии было бы проще.

Я не использую синтаксис R (только кадры данных pandas), поэтому не могу сказать, действителен ли синтаксис в первом примере, но это довольно ясно относительно вашего ввода. В Python вы обычно просто передаете ему весь фрейм данных и говорите, чтобы он работал.

Реальность такова, что Уилкоксан выполняет множество программ, вам не нужно использовать R, если это разовый тест. Очевидно, что если это часть конвейера (автоматизация), это немного отличается.