He realizado varios experimentos en los que tengo una variable independiente subyacente (especie de árbol, IV). Cada uno de estos experimentos me dio una variable dependiente (VD), como el pH de la corteza, la rugosidad o la capacidad de retención de agua. Ahora quiero realizar un MANOVA para ver si las especies de árboles difieren en las distintas variables dependientes. Mi análisis se realiza en R
.
Por lo tanto, mi modelo es así:
pH + rugosity + water-holding capacity + [...] ~ tree species
donde tengo por especie de árbol ...
- 3 mediciones del pH de la corteza.
- 9 mediciones de la rugosidad de la corteza.
- 4 mediciones del espesor de la corteza,
- 5 mediciones de la capacidad de retención de agua,
- 5 mediciones de la retención de agua.
Sin embargo, a diferencia de la mayoría de los ejemplos que he encontrado sobre cómo hacer un MANOVA (es decir aquí , aquí , aquí ), mis datos provienen de diferentes mediciones y de diferentes individuos. Ahora, sólo he encontrado este hilo en el que se habla de tamaños de muestra desiguales, pero esto se refiere sólo a los tamaños de muestra dentro del factor explicativo.
Mi pregunta:
Todas mis variables dependientes tienen diferentes tamaños de muestra. ¿Sería apropiado un MANOVA para este tipo de datos? ¿Puedo simplemente ignorar los diferentes tamaños de las variables? ¿Existe una forma alternativa de hacerlo o más bien una prueba estadística alternativa? ¿Importa el pequeño tamaño de mi muestra?
EDIT: Lo que realmente quiero averiguar
En realidad sólo quiero realizar una prueba estadística que me diga si tengo un patrón subyacente. Entonces, ¿las especies de árboles son diferentes en cuanto a las variables dependientes? Al final quiero ser capaz de decir, si algunas especies tienen un cierto conjunto de rasgos diferentes de otras especies.
Ejemplo de datos:
Mis datos son así:
> manova_df
# A tibble: 45 x 6
tree_species rugosity bark_mm pH whc ret
<fct> <dbl> <int> <dbl> <dbl> <dbl>
1 AS 2.36 8 6.49 295. 119.
2 AS 1.45 8 6.83 222. 105.
3 AS 3.13 9 5.8 291. 181.
4 AS 2.38 8 NA 314. 214.
5 AS 4.39 7 NA 613. 317.
6 AS 2.21 NA NA NA NA
7 AS 0.810 NA NA NA NA
8 AS 1.58 NA NA NA NA
9 AS 0.934 NA NA NA NA
10 BU 3.34 6 7.22 189. 74.9
# ... with 35 more rows
El NA
s provienen del hecho de que tengo diferentes tamaños de muestra, pero tenía que meter todas las variables en una sola data.frame
. Así que simplemente uní todas las columnas de las diferentes observaciones. Esto significa que las observaciones individuales de las diferentes VD no están unidas y el orden dentro de los niveles de las especies del árbol es totalmente arbitrario.
Mi análisis es bastante sencillo:
mano_mod = manova(cbind(pH, bark_mm, rugosity, whc, ret) ~ tree_species, data = manova_df)
> summary(mano_mod)
Df Pillai approx F num Df den Df Pr(>F)
tree_species 4 2.4207 3.372 20 44 0.0003836 ***
Residuals 12
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Conjunto de datos completo:
structure(list(tree_species = structure(c(1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L), .Label = c("AS", "BU", "CL",
"MB", "PR"), class = "factor"), rugosity = c(2.36, 1.45, 3.13,
2.38, 4.39, 2.21, 0.81, 1.58, 0.93, 3.34, 5.06, 0, 0.77, 12.64,
4.1, 0.8, 1.03, 0.84, 6.49, 9.09, 5.96, 5.32, 8.41, 15.29, 9.91,
7.65, 2.13, 9.43, 10.14, 13.24, 10.26, 9.81, 12.34, 17.23, 16.63,
8.82, 1.68, 0.7, 0.82, 2.43, 0, 0.76, 0.77, 0, 1), bark_mm = c(8L,
8L, 9L, 8L, 7L, NA, NA, NA, NA, 6L, 8L, 8L, 7L, 9L, NA, NA, NA,
NA, 9L, 9L, 8L, 10L, 9L, NA, NA, NA, NA, 5L, 9L, 9L, 8L, 4L,
NA, NA, NA, NA, 5L, 5L, 5L, 6L, NA, NA, NA, NA, NA), pH = c(6.49,
6.83, 5.8, NA, NA, NA, NA, NA, NA, 7.22, 7.11, 7.72, 7.29, NA,
NA, NA, NA, NA, 7.39, 7.18, 7.3, 7.3, NA, NA, NA, NA, NA, 6.76,
6.55, 6.24, NA, NA, NA, NA, NA, NA, 5.76, 6.59, 5.44, NA, NA,
NA, NA, NA, NA), whc = c(295.2, 222.4, 290.6, 314.3, 613.4, NA,
NA, NA, NA, 189.4, 248.2, 336.8, 330.1, 427.8, NA, NA, NA, NA,
236, 492.6, 549.3, 330.1, 370.7, NA, NA, NA, NA, 430, 142.2,
372.4, 260, 176.1, 680, 215, NA, NA, 333.8, 320.6, 282.4, 322.9,
576.7, NA, NA, NA, NA), ret = c(118.9, 104.9, 180.6, 214.5, 317.3,
NA, NA, NA, NA, 74.9, 95.7, 127.3, 150.1, 327.3, NA, NA, NA,
NA, 80.8, 176.7, 255.7, 142.6, 236.6, NA, NA, NA, NA, 148.4,
32.4, 244.2, 66.8, 76.4, 246.1, 73.6, NA, NA, 111.2, 151.3, 102.1,
200.6, 258.1, NA, NA, NA, NA)), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -45L))
(Si algo no está claro, pregúntelo).
0 votos
Imo has eliminado demasiada información relevante ....
0 votos
@Jaap hm, ¿qué echas de menos? He intentado centrarme sólo en mi problema...
0 votos
Aquí es una discusión sobre MANOVA con diferentes tamaños de muestra.
0 votos
@pockeystar Como se indica en mi pregunta, la pregunta mencionada sólo se dirige a diferentes tamaños de muestra en la variable independiente, es decir, si tuviera muestra de 1000 árboles de una especie y sólo 10 de otra. Sin embargo, en mi caso el número de individuos muestreados por especie de árbol es el mismo pero diferente para cada variable dependiente.
0 votos
Entre otras cosas, tenía una lista de cinco elementos que describían el tipo de datos que tenía. Creo que eso es bastante informativo y tal vez incluso esencial para la pregunta.
0 votos
Si puedes poner todo el conjunto de datos ahí, sin duda me ayudaría a recorrer una opción para tratar estos datos.
0 votos
¿Por qué se aferra al MANOVA? Lo que puede hacer MANOVA, también lo puede hacer el modelo lineal mixto, y hay varias ventajas sobre MANOVA. Una de las ventajas es la incorporación del valor perdido. Además, ¿por qué no puede analizar las variables dependientes una por una? ¿Qué quiere conseguir más allá del análisis univariante (uno por uno)?
0 votos
@user158565 Buen punto para pensar en los modelos lineales mixtos, no sabía que también funcionan con múltiples DVs. Por qué quiero realizar un MANOVA: básicamente sólo quiero realizar una prueba para ver un patrón subyacente que probablemente pasaría por alto si sólo realizara ANOVAs individuales (ver mi Edición). ¿Tiene esto sentido?
0 votos
Entonces se puede utilizar el modelo lineal mixto para ajustar los datos.