wilcox.test de diversidad alfa
Estoy tratando de hacer la prueba de Wilcox para detectar la diferencia significativa en la diversidad alfa, pero ¿muestra un error? physeqN2 es un objeto phyloseq y Season es una columna de metadatos.
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
Intenté hacerlo de otra manera, pero aquí también aparece un error.
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
Muchas gracias
Respuestas
Creo que esto es un error en los datos de entrada.
En una suposición salvaje, lo que creo que está sucediendo es que los datos de entrada no se consideran emparejados, de ahí el error paired = paired. El otro error extraño es x must be numeric. En primer lugar,
- ¿Cómo está puntuando los datos faltantes, no es
-por casualidad? Los datos faltantes deben ser mediantenansintaxis de tipo. - ¿Estás seguro de que no hay errores de rumbo? ¿Como si un encabezado se arrastrara a los datos numéricos?
Wilcoxan es una prueba T no paramétrica, por lo que la raíz húmeda y la raíz seca deben coincidir exactamente con la misma muestra. Por lo tanto, no es una raíz húmeda general frente a una raíz seca genérica, sino húmeda y seca del mismo espécimen. Si estos son los datos que tiene, el programa no cree que coincidan.
Si está realmente emparejado, nuevamente creo que la fuente del error es que le falta algún valor que deja los emparejamientos en longitudes desiguales o, de lo contrario, un error de encabezado.
Si los datos realmente no están emparejados, entonces miraría la prueba U de Mann-Whitney, sería más fácil en este escenario.
No uso la sintaxis R (solo marcos de datos de pandas), por lo que no puedo decir si la sintaxis del primer ejemplo es válida, pero es bastante claro con respecto a su entrada. En Python, por lo general, solo le daría el marco de datos completo y le diría que se imagina.
La realidad es que muchos programas hacen Wilcoxan, no necesitas usar R si es una prueba única. Obviamente, si esto es parte de una tubería (automatización), eso es un poco diferente.