Pruebas de Hipótesis sobre Frecuencias

En las investigaciones biológicas, muchas veces determinamos las frecuencias con la que ocurren ciertos eventos, que están clasificados en ciertas categorías.

Por ejemplo, en un experimento de genética, se puede determinar la frecuencia con la que ocurren ciertos genotipos en una población. O en un experimento de ecología, se puede determinar la frecuencia con la que ocurren ciertas especies en diferentes comunidades.

Prueba de Bondad de Ajuste

La prueba de bondad de ajuste se usa para determinar si una muestra de datos se ajusta a una distribución de probabilidad específica. La hipótesis nula (\(H_0\)) para una prueba de bondad de ajuste es que la distribución de frecuencias observadas en los datos no es diferente de una distribución de frecuencias especificada con anterioridad (binomial, Poisson). Si \(H_0\) no se puede rechazar, quiere decir que cualquier alejamiento de la distribución esperada, es debido al azar. Esta prueba la utilizamos anteriormente para probar el ajuste a una distribución de Poisson.

Los supuestos de esta prueba son:

  1. Los datos son independientes.
  2. Las categorías son mutuamente excluyentes.
  3. Las frecuencias esperadas en cada categoría son mayores que 5.

Prueba de Bondad de Ajuste para Distribución de Probabilidades Teóricas

Ahora vamos a usar la prueba de bondad de ajuste para determinar si una muestra de datos se ajusta a una distribución de probabilidad teórica. Para esta prueba usaremos el estadístico de prueba \(\chi^2\).

El estadístico de prueba \(\chi^2\) se calcula como:

\[\chi^2 = \sum \frac{(O_i - E_i)^2}{E_i}\]

donde:

  • \(O_i\) es la frecuencia observada en la categoría \(i\).
  • \(E_i\) es la frecuencia esperada en la categoría \(i\).

Si el valor de \(\chi^2\) es mayor que el valor crítico para un \(\alpha\) predeterminado (usualmente 0.05), entonces rechazamos la hipótesis nula.

Ejemplo 1. Genética Mendeliana

En una observación realizada en los jardínes de la UPRH, encontramos que debajo de un árbol de Palo de María (Calophyllum antillanum), había plántulas de dos tipos: con hojas verdes y con hojas crema (etiolizadas).

Figura 1. Plántulas de Palo de María (Calophyllum antillanum) con hojas verdes y hojas crema.

Sospechamos que la etiolización de las plántulas es debida a un gen recesivo. Si ese es el caso y se cumple el supuesto de cruces al azar, entonces la proporción de plántulas con hojas crema debería ser de 1/4. Obtuvimos el siguiente contaje:

  • plántulas verdes: 270
  • plántulas crema: 86

Vamos a realizar una prueba de bondad de ajuste para determinar si la proporción hojas verde:hojas crema es de 3:1.

Hipótesis nula: La proporción de plántulas con hojas verdes y hojas crema es de 3:1.

Hipótesis alternativa: La proporción de plántulas con hojas verdes y hojas crema no es de 3:1.

Cálculos paso a paso

  1. Definir los datos observados y esperados.
# Datos observados
observed <- c(270, 86)

# Proporción esperada
expected <- c(3/4, 1/4) * sum(observed)

# crear una tabla gt con los datos observados y esperados
library(gt)
tabla <- gt(data = data.frame(observado = observed, esperado = expected))
tabla
observado esperado
270 267
86 89
  1. Calcular el estadístico de prueba \(\chi^2\).
# Calcular el estadístico de prueba
chi2 <- sum((observed - expected)^2 / expected)

# Imprimir el valor de chi2
cat("Estadístico de prueba:", chi2, "\n")
## Estadístico de prueba: 0.1348315
  1. Calcular el valor crítico y el p-valor.
# Calcular el valor crítico
alpha <- 0.05
# Grados de libertad
df <- length(observed) - 1
critical_value <- qchisq(1 - alpha, df)

# Calcular el p-valor
p_value <- 1 - pchisq(chi2, df)

# Imprimir resultados
cat("Valor crítico:", critical_value, "\n")
## Valor crítico: 3.841459
cat("P-value:", p_value, "\n")
## P-value: 0.7134743
  1. Decisión.
# Decisión
if (chi2 > critical_value) {
  decision <- "Rechazamos H0"
} else {
  decision <- "No rechazamos H0"
}

decision
## [1] "No rechazamos H0"

Visualización

# Gráfica de la distribución chi-cuadrado
library(ggplot2)

# Datos
x <- seq(0, 20, 0.01)
y <- dchisq(x, df)

# Gráfica
ggplot(data.frame(x = x, y = y), aes(x = x, y = y)) +
  geom_line() +
  geom_vline(xintercept = chi2, color = "blue") +
  geom_area(data = subset(data.frame(x = x, y = y), x > critical_value), aes(x = x, y = y), fill = "red", alpha = 0.5) +
  labs(x = "Chi-cuadrado", y = "f(Chi-cuadrado)") +
  coord_cartesian(xlim = c(0,8), ylim = c(0, 1)) +
  theme_minimal()

FIGURA 2. Distribución \(\chi^2\) con la región crítica en rojo y el estadístico de prueba en azul.

Cálculos con chisq.test

# Prueba de bondad de ajuste con chisq.test
chisq.test(observed, p = c(3/4, 1/4))
## 
##  Chi-squared test for given probabilities
## 
## data:  observed
## X-squared = 0.13483, df = 1, p-value = 0.7135

Conclusión genética - padlet

Ejemplo 2. Distribución de Especies

En un estudio de biodiversidad en un bosque tropical, se encontraron las siguientes frecuencias de especies de árboles:

  • Especie A: 20
  • Especie B: 30
  • Especie C: 40
  • Especie D: 10

Se sospecha que la distribución de especies en el bosque sigue una distribución de probabilidad específica. Vamos a realizar una prueba de bondad de ajuste para determinar si la distribución de especies en el bosque sigue una distribución uniforme.

Hipótesis nula: La distribución de especies en el bosque sigue una distribución uniforme.

Hipótesis alternativa: La distribución de especies en el bosque no sigue una distribución uniforme.

Cálculos paso a paso

  1. Definir los datos observados y esperados.
# Datos observados
observed <- c(20, 30, 40, 10)

# Proporción esperada
expected <- rep(sum(observed) / length(observed), length(observed))

# crear una tabla gt con los datos observados y esperados
tabla <- gt(data = data.frame(observado = observed, esperado = expected))
tabla
observado esperado
20 25
30 25
40 25
10 25
  1. Calcular el estadístico de prueba \(\chi^2\).
# Calcular el estadístico de prueba
chi2 <- sum((observed - expected)^2 / expected)

# Grados de libertad
df <- length(observed) - 1

# Imprimir el valor de chi2
cat("Estadístico de prueba:", chi2, "\n")
## Estadístico de prueba: 20
  1. Calcular el valor crítico y el p-valor.
# Calcular el valor crítico
alpha <- 0.05
critical_value <- qchisq(1 - alpha, df)

# Calcular el p-valor
p_value <- 1 - pchisq(chi2, df)

# Imprimir resultados
cat("Valor crítico:", critical_value, "\n")
## Valor crítico: 7.814728
cat("P-value:", p_value, "\n")
## P-value: 0.0001697424
  1. Decisión.
# Decisión
if (chi2 > critical_value) {
  decision <- "Rechazamos H0"
} else {
  decision <- "No rechazamos H0"
}

decision
## [1] "Rechazamos H0"

Calculos con chisq.test para una distribución uniforme

# Prueba de bondad de ajuste con chisq.test para distribución uniforme
chisq.test(observed, p = rep(1/length(observed), length(observed)))
## 
##  Chi-squared test for given probabilities
## 
## data:  observed
## X-squared = 20, df = 3, p-value = 0.0001697
# alternativa con rescale.p
# chisq.test(observed, p = c(25,25,25,25), rescale.p = TRUE)