Se mide \(X\): “Número de de moscas por metro cúbico de follaje”. Se tienen tres tratamientos (hierba, arbustos y árboles). Pruebe la hipótesis de que la abundancia en las tres capas es la misma usando el test de Kruskal-Wallis.
Hierba | Arbustos | Árbol |
---|---|---|
180 | 172 | 163 |
173 | 158 | 170 |
175 | 167 | 158 |
182 | 160 | 162 |
181 | 175 | 170 |
Solución
Para probar si el número de moscas es el mismo en las tres capas, se prueba el sistema \[ H_0\colon \theta_1=\theta_2=\theta_3\quad\mathrm{vs.}\quad H_a\colon\theta_i\neq\theta_j\;\;\mbox{para algún}\,\, i\neq j \] con \(\theta_i\) la mediana de la distribución del tratamiento \(i\). En este caso, \(i=1\) denota el tratamiento de la hierba, \(i=2\), el de arbustos, e \(i=3\), el de árboles.
La estadística de prueba es \[ H=\frac{12}{N(N+1)}\sum_{j=1}^k\frac{R_j^2}{n_j}-3(N+1), \] que bajo \(H_0\) se distribuye \(\chi^2_{k-1}\). La decisión será rechazar \(H_0\) con una confiabilidad de \(100(1-\alpha)\%\) si un valor observado de \(H\), digamos \(H_c\), satisface que \(H_c>\chi^2_{k-1, 1-\alpha}\).
Calculamos \(H_c\) con los datos registrados en los tratamientos.
En primer lugar, hacemos el ránking para cada observación:
ranking <- function(df) {
df_ordenado <- df
numericos <- unlist(df[sapply(df, is.numeric)])
rangos_base <- rank(numericos, ties.method = "min")
frecuencias <- table(numericos)
freq_vec <- as.numeric(frecuencias[as.character(numericos)])
ajustes <- 1 / freq_vec
rangos_ajustados <- rangos_base + ifelse(freq_vec > 1, ajustes, 0)
i <- 1
for (col in names(df)) {
if (is.numeric(df[[col]])) {
n <- length(df[[col]])
df_ordenado[[col]] <- rangos_ajustados[i:(i + n - 1)]
i <- i + n
}
}
return(df_ordenado)
}
## Hierba Arbustos Árbol
## 1 13.0 9.0 5.0
## 2 10.0 1.5 7.5
## 3 11.5 6.0 1.5
## 4 15.0 3.0 4.0
## 5 14.0 11.5 7.5
Ahora, sumamos los ránkings por cada tratamiento: \(R_1\), \(R_2\) y \(R_3\):
## Hierba Arbustos Árbol
## 63.5 31.0 25.5
Finalmente, usando que \[ N=\sum_{j=1}^kn_j; \]
## [1] 15
se tiene que
## [1] 8.435
Y el valor crítico, con un nivel de significancia de \(0.05\), es
## [1] 5.991465
Gráficamente,
x <- seq(0, qchisq(0.999, length(data)-1), length = 1000)
y <- dchisq(x, df = length(data)-1)
plot(x, y, type = "l", lwd = 2, col = "cyan",
main = "",
xlab = expression(chi[2]^2), ylab = "Densidad")
x_rechazo <- x[x > vc]
y_rechazo <- y[x > vc]
polygon(c(vc, x_rechazo, max(x_rechazo)),
c(0, y_rechazo, 0),
col = "yellow", border = NA)
abline(v = Hc, col = "magenta", lwd = 2, lty = 2)
legend("topright",
legend = c(paste0("RR: (", round(vc, 2), ", ∞)"),
paste0("Hc (", round(Hc, 2), ")")),
col = c("yellow", "magenta"),
lwd = c(NA, 2),
lty = c(NA, 2),
pch = c(15, NA),
pt.cex = 2,
bty = "n")
Por lo tanto, con una confiabilidad del \(95\%\), existe suficiente evidencia empírica para rechazar \(H_0\). Es decir, el número de moscas por metro cúbico de follaje no es el mismo en las tres capas.
8 contenedores de agua se toman en cada uno de 4 estanques. Se mide el pH en cada muestra. Pruebe la hipótesis de que el pH en todos los estanques es el mismo usando el test de Kruskal-Wallis.
Estanque_1 | Estanque_2 | Estanque_3 | Estanque_4 |
---|---|---|---|
7.68 | 7.71 | 7.74 | 7.71 |
7.69 | 7.73 | 7.75 | 7.71 |
7.70 | 7.74 | 7.77 | 7.74 |
7.70 | 7.74 | 7.78 | 7.79 |
7.72 | 7.78 | 7.80 | 7.81 |
7.73 | 7.78 | 7.81 | 7.85 |
7.73 | 7.80 | 7.84 | 7.87 |
7.76 | 7.81 | 7.85 | 7.91 |
Solución
Procedemos de forma análoga al ejercicio anterior.
Hacemos el ránking para cada observación:
ranking <- function(df) {
df_ordenado <- df
numericos <- unlist(df[sapply(df, is.numeric)])
rangos_base <- rank(numericos, ties.method = "min")
frecuencias <- table(numericos)
freq_vec <- as.numeric(frecuencias[as.character(numericos)])
ajustes <- 1 / freq_vec
rangos_ajustados <- rangos_base + ifelse(freq_vec > 1, ajustes, 0)
i <- 1
for (col in names(df)) {
if (is.numeric(df[[col]])) {
n <- length(df[[col]])
df_ordenado[[col]] <- rangos_ajustados[i:(i + n - 1)]
i <- i + n
}
}
return(df_ordenado)
}
## Estanque_1 Estanque_2 Estanque_3 Estanque_4
## 1 1.000000 5.333333 12.25000 5.333333
## 2 2.000000 9.333333 16.00000 5.333333
## 3 3.500000 12.250000 18.00000 12.250000
## 4 3.500000 12.250000 19.33333 22.000000
## 5 8.000000 19.333333 23.50000 25.333333
## 6 9.333333 19.333333 25.33333 29.500000
## 7 9.333333 23.500000 28.00000 31.000000
## 8 17.000000 25.333333 29.50000 32.000000
Ahora, sumamos los ránkings por cada tratamiento: \(R_1\), \(R_2\) y \(R_3\):
## Estanque_1 Estanque_2 Estanque_3 Estanque_4
## 53.66667 126.66667 171.91667 162.75000
Finalmente, usando que
## [1] 32
se tiene que
## [1] 7.487867
Y el valor crítico, con un nivel de significancia de \(0.05\), es
## [1] 7.814728
Gráficamente,
x <- seq(0, qchisq(0.999, length(data)-1), length = 1000)
y <- dchisq(x, df = length(data)-1)
plot(x, y, type = "l", lwd = 2, col = "cyan",
main = "",
xlab = expression(chi[3]^2), ylab = "Densidad")
x_rechazo <- x[x > vc]
y_rechazo <- y[x > vc]
polygon(c(vc, x_rechazo, max(x_rechazo)),
c(0, y_rechazo, 0),
col = "yellow", border = NA)
abline(v = Hc, col = "magenta", lwd = 2, lty = 2)
legend("topright",
legend = c(paste0("RR: (", round(vc, 2), ", ∞)"),
paste0("Hc (", round(Hc, 2), ")")),
col = c("yellow", "magenta"),
lwd = c(NA, 2),
lty = c(NA, 2),
pch = c(15, NA),
pt.cex = 2,
bty = "n")
Por lo tanto, con una confiabilidad del \(95\%\), existe suficiente evidencia empírica para no rechazar \(H_0\). Es decir, el pH en los cuatro estanques es el mismo.
\[ \phantom{\begin{pmatrix} 1 \\ 2 \\ 3 \\ 4 \\ \end{pmatrix}} \]