Alpha Diversity wilcox.test

Oct 07 2020

Ich versuche, einen Wilcox-Test durchzuführen, um den signifikanten Unterschied in der Alpha-Diversität festzustellen, aber es wird ein Fehler angezeigt. physeqN2 ist ein Phyloseq-Objekt und Season ist eine Metadatenspalte.

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

Ich habe versucht, es auf eine andere Weise zu tun, aber hier auch Fehler bekommen?

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

Danke vielmals

Antworten

M__ Oct 07 2020 at 18:48

Ich denke, das ist ein Fehler in den Eingabedaten.

Ich denke, was passiert, ist, dass die Eingabedaten nicht als gepaart angesehen werden, daher der Fehler paired = paired. Der andere seltsame Fehler ist x must be numeric. Zuerst,

  • Wie bewerten Sie fehlende Daten, die nicht -zufällig über? Fehlende Daten müssen über die nanTypensyntax erfolgen.
  • Sind Sie sicher, dass es keine Überschriftenfehler gibt? Wie wird ein Header in die numerischen Daten gezogen?

Wilcoxan ist ein nicht parametrischer T-Test, daher müssen die feuchte Wurzel und die trockene Wurzel genau mit der gleichen Probe übereinstimmen. Somit ist es keine allgemeine feuchte Wurzel im Vergleich zu einer generischen trockenen Wurzel, sondern nass und trocken von derselben Probe. Wenn dies die Daten sind, die Sie haben, glaubt das Programm nicht, dass sie übereinstimmen.

Wenn es wirklich gepaart ist, denke ich wieder, dass die Fehlerquelle darin besteht, dass Sie einen fehlenden Wert haben, der die Paarungen ungleich lang macht oder einen Header-Fehler verursacht.

Wenn die Daten wirklich nicht gepaart sind, würde ich mir den Mann-Whitney-U-Test ansehen, der in diesem Szenario einfacher wäre.

Ich verwende keine R-Syntax (nur Pandas-Datenrahmen), kann also nicht sagen, ob die Syntax im ersten Beispiel gültig ist, aber es ist ziemlich klar in Bezug auf Ihre Eingabe. In Python geben Sie ihm im Allgemeinen nur den gesamten Datenrahmen und weisen ihn an, die Zahl zu bestimmen.

Die Realität ist, dass viele Programme Wilcoxan ausführen. Sie müssen R nicht verwenden, wenn es sich um einen einmaligen Test handelt. Wenn dies ein Teil einer Pipeline (Automatisierung) ist, ist das natürlich etwas anders.