En la investigación agronómica, es fundamental tomar decisiones basadas en datos. Las pruebas de hipótesis permiten evaluar si los resultados observados en una muestra pueden generalizarse a la población de interés o si son producto del azar. Este capítulo guía al estudiante en la aplicación de pruebas de hipótesis paramétricas utilizando R, desde la formulación de hipótesis hasta la interpretación de resultados, empleando ejemplos prácticos y reales del ámbito agronómico (López & González, 2018).
17.1 Fundamentos de las pruebas de hipótesis
Una prueba de hipótesis es un procedimiento estadístico que permite decidir, con un nivel de confianza predefinido, si una afirmación sobre un parámetro poblacional es compatible con los datos muestrales. El proceso general incluye:
Plantear la hipótesis nula (\(H_0\)) y la alternativa (\(H_a\)).
Seleccionar el estadístico de prueba adecuado según el tipo de dato y los supuestos.
Calcular el valor del estadístico y el valor-p.
Comparar el valor-p con el nivel de significancia (\(\alpha\)), generalmente 0.05.
Tomar una decisión: rechazar o no rechazar \(H_0\).
Criterios de selección de la prueba:
Tipo de variable (cuantitativa o cualitativa).
Tamaño de la muestra.
Conocimiento de la varianza poblacional.
Independencia o dependencia entre muestras.
Homogeneidad de varianzas.
17.2 Prueba de hipótesis sobre una media
Esta prueba se utiliza para determinar si la media de una población difiere de un valor específico. Es útil, por ejemplo, para verificar si el peso promedio de semillas, el rendimiento de un cultivo o el contenido de un nutriente cumple con un estándar.
17.2.1 Criterios de selección
Variable cuantitativa continua.
La muestra debe ser aleatoria.
Si la varianza poblacional es conocida y la muestra es grande (\(n \geq 30\)), se usa la prueba z.
Si la varianza es desconocida y la muestra es pequeña (\(n<30\)), se usa la prueba t de Student.
17.2.2 Fórmulas
a) Prueba z (varianza conocida):
\[\huge z = \frac{\bar{x} - \mu_0}{\sigma / \sqrt{n}} \]
b) Prueba t (varianza desconocida):
\[\huge t = \frac{\bar{x} - \mu_0}{s / \sqrt{n}} \]
donde \(gl = n-1\).
17.2.3 Ejemplo hipotético
Supóngase que se afirma que el peso promedio de semillas de maíz es de 250 mg. Se toma una muestra de 20 semillas, obteniéndose una media de 242 mg y una desviación estándar de 15 mg. Se desea saber, con un nivel de significancia del 5%, si el peso medio difiere del valor afirmado.
Para \(gl=19\) y \(\alpha = 0.05\) (bilateral), el valor crítico es \(\pm 2.093\).
4. Decisión:
Como \(|-2.39| > 2.093\), se rechaza H_0.
5. Conclusión:
Con un 5% de significancia, existe evidencia de que el peso medio difiere de 250 mg.
17.2.4 Código en R explicado
# Instalar paquete si no está instalado## Para realizar pruebas de hipotesisif (!require(BSDA)) install.packages("BSDA")if (!require(EnvStats)) install.packages("EnvStats")# Prueba t con estadísticos resumidos usando tsum.test()tsum.test(mean.x =242,s.x =15,n.x =20,mu =250,alternative ="two.sided",conf.level =0.95)
One-sample t-Test
data: Summarized x
t = -2.3851, df = 19, p-value = 0.02765
alternative hypothesis: true mean is not equal to 250
95 percent confidence interval:
234.9798 249.0202
sample estimates:
mean of x
242
Parámetros de tsum.test():
mean.x: media muestral (242 mg)
s.x: desviación estándar muestral (15 mg)
n.x: tamaño de muestra (20)
mu: valor hipotético bajo H₀ (250 mg)
alternative: tipo de prueba (“two.sided” para bilateral)
conf.level: nivel de confianza (0.95 para 95%)
17.3 Prueba de hipótesis sobre dos medias
Permite comparar si las medias de dos poblaciones son iguales o diferentes. Es útil, por ejemplo, para comparar el rendimiento de dos variedades de cultivo, el efecto de dos tratamientos o la altura de plantas de dos especies.
17.3.1 Criterios de selección
Las muestras pueden ser independientes (grupos distintos) o dependientes (mediciones pareadas).
Se debe verificar si las varianzas son iguales o diferentes.
Si las muestras son grandes (\(n_1, n_2 \geq 30\)), se puede usar la prueba z; si son pequeñas y la varianza es desconocida, se usa la prueba t.
17.3.2 Fórmulas
a) Muestras independientes, varianzas iguales (t “pooled”):
\[\huge t = \frac{\bar{x}_1 - \bar{x}_2}{s_p \sqrt{\frac{1}{n_1} + \frac{1}{n_2}}} \]
3. Decisión: Para \(gl=25\), \(t_{0.025} = 2.060\). Como \(0.94 < 2.060\), no se rechaza \(H_0\).
17.3.4 Código en R explicado
# Datos del ejerciciomean1 <-25.97; s1 <-1.36; n1 <-13# Especie 1mean2 <-25.39; s2 <-1.77; n2 <-14# Especie 2# Prueba t para dos muestras independientes con varianzas igualestsum.test(mean.x = mean1, s.x = s1, n.x = n1,mean.y = mean2, s.y = s2, n.y = n2,alternative ="two.sided",mu =0, # diferencia hipotética (H₀: μ₁ - μ₂ = 0)var.equal =TRUE, # asume varianzas iguales (pooled)conf.level =0.95) # nivel de confianza
Standard Two-Sample t-Test
data: Summarized x and y
t = 0.94918, df = 25, p-value = 0.3516
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.678492 1.838492
sample estimates:
mean of x mean of y
25.97 25.39
Parámetros de tsum.test() para dos muestras:
mean.x, s.x, n.x: estadísticos de la muestra 1
mean.y, s.y, n.y: estadísticos de la muestra 2
mu: diferencia hipotética bajo H₀ (0 para igualdad de medias)
var.equal = TRUE: usa varianza pooled (varianzas iguales)
alternative: “two.sided” para prueba bilateral
17.3.5 Ejemplo hipotético (pareadas)
Se evalúa el efecto de una capacitación en 10 empleados, midiendo el puntaje antes y después.
1. Hipótesis:
\(H_0: \mu_D = 0\) (no hay diferencia)
\(H_a: \mu_D \neq 0\) (hay diferencia)
2. Cálculo:
Supóngase que la media de las diferencias es \(-0.4\) y la desviación estándar \(0.8\) .
\[\huge t = \frac{-0.4}{0.8/\sqrt{10}} = -1.58 \]
3. Decisión:
Para \(gl = 9\), \(t_{0.05} = 2.262\) . Como \(|-1.58| < 2.262\), no se rechaza \(H_0\).
17.3.6 Código en R explicado
# Datos del ejercicio (estadísticos de las diferencias)n <-10mean_diff <--0.4# media de diferencias (antes - después)sd_diff <-0.8# desviación estándar de diferencias# Prueba t pareada usando estadísticos resumidos# Para muestras pareadas, usamos tsum.test() con una sola muestra# (las diferencias)tsum.test(mean.x = mean_diff,s.x = sd_diff,n.x = n,mu =0, # H₀: μ_D = 0alternative ="two.sided",conf.level =0.95)
Warning in tsum.test(mean.x = mean_diff, s.x = sd_diff, n.x = n, mu = 0, :
argument 'var.equal' ignored for one-sample test.
One-sample t-Test
data: Summarized x
t = -1.5811, df = 9, p-value = 0.1483
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
-0.9722855 0.1722855
sample estimates:
mean of x
-0.4
Una prueba t pareada es equivalente a una prueba t de una muestra sobre las diferencias.
Por eso usamos tsum.test() con:
mean.x: media de las diferencias (-0.4)
s.x: desviación estándar de las diferencias (0.8)
n.x: número de pares (10)
mu = 0: hipótesis nula (no hay diferencia promedio)
Alternativa con datos individuales:
Si tuvieras los datos originales:
# Datosantes <-c(9.0,7.3,6.7,5.3,8.7,6.3,7.9,7.3,8.0,8.5)despues <-c(9.2,8.2,8.5,4.9,8.9,5.8,8.2,7.8,9.5,8.0)# Test para datos pareadost.test(antes, despues,paired =TRUE,alternative ="two.sided",conf.level =0.95)
Paired t-test
data: antes and despues
t = -1.5784, df = 9, p-value = 0.1489
alternative hypothesis: true mean difference is not equal to 0
95 percent confidence interval:
-0.9732782 0.1732782
sample estimates:
mean difference
-0.4
Por eso usamos t.test() con:
antes: Vector numerico con los datos iniciales.
despues: Vector numerico con los datos finales o pareados.
paired: si es una prueba de t pareada (TRUE)
alternative: “two.sided” hace referencia a que compara una igualdad.
17.4 Prueba de hipótesis sobre una proporción
Permite determinar si la proporción de una característica en la población es igual a un valor específico. Por ejemplo, si la proporción de agricultores que adopta una tecnología supera el 60%.
17.4.1 Criterios de selección
Variable cualitativa dicotómica.
Tamaño muestral suficiente para aproximación normal (\(np_0 > 5np\) y \(n(1-p_0) > 5\)).
Fórmula
\[\huge z = \frac{\hat{p} - p_0}{\sqrt{p_0(1-p_0)/n}}\]
17.4.2 Ejemplo hipotético
De 180 agricultores, 120 adoptaron un fertilizante. Se desea saber si la proporción es diferente de 0.60.
Para \(\alpha = 0.05\), \(z_{0.025} = 1.96\). Como \(1.56 < 1.96\), no se rechaza \(H_0\).
17.4.3 Código en R explicado
prop.test(x =120, n =180,p =0.60, # valor bajo H0alternative ="two.sided",correct =FALSE) # sin corrección de continuidad
1-sample proportions test without continuity correction
data: 120 out of 180, null probability 0.6
X-squared = 3.3333, df = 1, p-value = 0.06789
alternative hypothesis: true p is not equal to 0.6
95 percent confidence interval:
0.5949523 0.7314158
sample estimates:
p
0.6666667
x: número de éxitos.
n: tamaño de la muestra.
p: proporción bajo \(H_0\).
17.5 Prueba de hipótesis sobre dos proporciones
Permite comparar si la proporción de una característica es igual en dos poblaciones. Por ejemplo, comparar la proporción de adopción de una tecnología entre hombres y mujeres.
17.5.1 Criterios de selección
Variable cualitativa dicotómica.
Muestras independientes.
Tamaño muestral suficiente.
17.5.2 Fórmulas
\[\huge \hat{p}_c = \frac{x_1 + x_2}{n_1 + n_2}\]
\[\LARGE z = \frac{\hat{p}_1 - \hat{p}_2}{\sqrt{\hat{p}_c(1-\hat{p}_c)\left(\frac{1}{n_1} + \frac{1}{n_2}\right)}}\]
17.5.3 Ejemplo hipotético
En una encuesta, 110 de 200 hombres y 210 de 300 mujeres respondieron. ¿Existe diferencia en las proporciones?
xp <-c(110, 210) # éxitos en cada gruponp <-c(200, 300) # tamaño de cada grupoprop.test(xp, np,alternative ="two.sided",correct =FALSE)
2-sample test for equality of proportions without continuity correction
data: xp out of np
X-squared = 11.719, df = 1, p-value = 0.0006187
alternative hypothesis: two.sided
95 percent confidence interval:
-0.23627182 -0.06372818
sample estimates:
prop 1 prop 2
0.55 0.70
xp: vector de éxitos.
np: vector de tamaños.
17.6 Prueba de hipótesis sobre varianzas
La prueba de hipótesis sobre varianzas permite evaluar si la variabilidad observada en una muestra es compatible con un valor de referencia o si existen diferencias en la variabilidad entre dos poblaciones. Este tipo de prueba es fundamental en agronomía para analizar la uniformidad de procesos, como la comparación de la variabilidad en el rendimiento de cultivos bajo diferentes métodos de riego o el control de calidad de productos agrícolas.
17.6.1 Criterios de selección
La variable de interés debe ser cuantitativa y continua.
Los datos deben provenir de poblaciones con distribución normal.
Para comparar dos varianzas, las muestras deben ser independientes.
17.6.2 Fórmulas
a) Una varianza (\(\chi^2\)): Esta prueba se utiliza para determinar si la varianza de una población es igual a un valor específico, generalmente un estándar de calidad o una especificación técnica.
\[\huge \chi^2 = \frac{(n-1)s^2}{\sigma_0^2} \]
donde:
\(n\) es el tamaño de la muestra,
\(s^2\) es la varianza muestral,
\(\sigma_0^2\) es la varianza poblacional bajo la hipótesis nula.
Para este calculo no existe una función predefinida en R que lo realice con fines prácticos se desarrollo la siguiente función personalizada para esta tarea:
# Función personalizada para prueba de hipótesis de una varianzavar_test_chi <-function(x =NULL, n =NULL, s2 =NULL, sigma0_2,alternative ="two.sided",alpha =0.05) {# Validación de argumentosif (is.null(x) && (is.null(n) ||is.null(s2))) {stop("Debe proporcionar 'x' (vector de datos) o 'n' y 's2' (estadísticos muestrales)") }if (!is.null(x) && (!is.null(n) ||!is.null(s2))) {warning("Se proporcionaron datos y estadísticos. Se usarán los datos 'x'") }# Calcular estadísticos si se proporcionan los datosif (!is.null(x)) { n <-length(x) s2 <-var(x) }# Validar alternative alternative <-match.arg(alternative, c("two.sided", "less", "greater"))# Calcular estadístico chi-cuadrado chi_sq <- (n -1) * s2 / sigma0_2 df <- n -1# Calcular valor-p según el tipo de pruebaif (alternative =="two.sided") {# Para prueba bilateral p_value <-2*min(pchisq(chi_sq, df), pchisq(chi_sq, df, lower.tail =FALSE)) } elseif (alternative =="greater") { p_value <-pchisq(chi_sq, df, lower.tail =FALSE) } else { # alternative == "less" p_value <-pchisq(chi_sq, df, lower.tail =TRUE) }# Decisión decision <-ifelse(p_value < alpha, "Rechazar H0", "No rechazar H0")# Valor críticoif (alternative =="two.sided") { crit_lower <-qchisq(alpha/2, df) crit_upper <-qchisq(1- alpha/2, df) critical_value <-c(crit_lower, crit_upper) } elseif (alternative =="greater") { critical_value <-qchisq(1- alpha, df) } else { # alternative == "less" critical_value <-qchisq(alpha, df) }# Crear objeto de resultado result <-list(statistic = chi_sq,parameter = df,p.value = p_value,critical.value = critical_value,alternative = alternative,method ="Prueba de hipótesis para una varianza (Chi-cuadrado)",data.name =deparse(substitute(x)),sample.size = n,sample.variance = s2,null.variance = sigma0_2,alpha = alpha,decision = decision )class(result) <-"var_test_custom"return(result)}# Método print personalizado para mostrar resultados de forma claraprint.var_test_custom <-function(x, ...) {cat("\n")cat(x$method, "\n")cat("Datos:", x$data.name, "\n")cat("\n")cat("Hipótesis:\n")if (x$alternative =="two.sided") {cat("H0: sigma^2 =", x$null.variance, "\n")cat("Ha: sigma^2 ≠", x$null.variance, "\n") } elseif (x$alternative =="greater") {cat("H0: sigma^2 ≤", x$null.variance, "\n")cat("Ha: sigma^2 >", x$null.variance, "\n") } else {cat("H0: sigma^2 ≥", x$null.variance, "\n")cat("Ha: sigma^2 <", x$null.variance, "\n") }cat("\n")cat("Estadísticos de la muestra:\n")cat("n =", x$sample.size, "\n")cat("s^2 =", round(x$sample.variance, 4), "\n")cat("\n")cat("Estadístico de prueba:\n")cat("Chi-cuadrado =", round(x$statistic, 4), "\n")cat("Grados de libertad =", x$parameter, "\n")cat("\n")cat("Valor crítico(s):\n")if (length(x$critical.value) ==2) {cat("Chi^2(", x$alpha/2, ",", x$parameter, ") =",round(x$critical.value[1], 4), "\n")cat("Chi^2(", 1-x$alpha/2, ",", x$parameter, ") =",round(x$critical.value[2], 4), "\n") } else {cat("Chi^2 crítico =", round(x$critical.value, 4), "\n") }cat("\n")cat("Valor-p =", round(x$p.value, 6), "\n")cat("Nivel de significancia =", x$alpha, "\n")cat("\n")cat("Decisión:", x$decision, "\n")cat("\n")}
Esta función cuenta con la siguiente sintaxis para su uso:
\[ \Large \text{var\_test\_chi}(x, sigma0_2, alternative, alpha) \]Argumentos en orden:
x: Vector con los datos de la muestra
sigma0_2: Varianza poblacional con la que se está comparando
alternative: Opción en carácter que indica el tipo de prueba utilizando los mismos argumentos que las otras funciones “greater”, “less” y “two.sided”.
alpha: nivel de significancia
También tiene la siguiente sintaxis cuando no se cuenta con los datos de la muestra directamente:
\[ \Large \text{var\_test\_chi}(n, s2, sigma0_2, alternative, alpha) \]Argumentos en orden:
n: Tamaño de la muestra
s2: Varianza muestral
sigma0_2: Varianza poblacional con la que se está comparando
alternative: Opción en carácter que indica el tipo de prueba utilizando los mismos argumentos que las otras funciones “greater”, “less” y “two.sided”.
alpha: nivel de significancia
b) Dos varianzas (F de Fisher):
\[\huge F = \frac{s_1^2}{s_2^2}\]
donde:
\(s_1^2\) y \(s_2^2\) son las varianzas muestrales de los dos grupos,
\(n_1\) y \(n_2\) son los tamaños de muestra de cada grupo.
17.6.3 Ejemplo hipotético (una varianza)
Supóngase que una empresa agrícola establece que la varianza máxima aceptable en el peso de frutos de tomate es de \(\sigma_0^2 = 4\) g². Se toma una muestra de 10 frutos y se obtiene una varianza muestral de \(s^2 = 5.8\) g². Se desea saber, con un nivel de significancia del 5%, si la variabilidad excede el estándar.
1. Planteamiento de hipótesis:
\(H_0: \sigma^2 = 4\) g² (la varianza cumple el estándar)
\(H_a: \sigma^2 > 4\) g² (la varianza excede el estándar)
El valor crítico para \(\alpha = 0.05\) y \(gl = 9\) es \(\chi^2\_{0.05,9} = 16.92\). Como \(13.05 < 16.92\), no se rechaza \(H_0\).
Código en R explicado:
# Aplicacion de la funcion personalizadavar_test_chi(n =10, s2 =5.8,sigma0_2 =4,alternative ="greater",alpha =0.05)
Prueba de hipótesis para una varianza (Chi-cuadrado)
Datos: NULL
Hipótesis:
H0: sigma^2 ≤ 4
Ha: sigma^2 > 4
Estadísticos de la muestra:
n = 10
s^2 = 5.8
Estadístico de prueba:
Chi-cuadrado = 13.05
Grados de libertad = 9
Valor crítico(s):
Chi^2 crítico = 16.919
Valor-p = 0.160357
Nivel de significancia = 0.05
Decisión: No rechazar H0
Para la solución de este problema se emplea la funcion personalizada var_test_chique permite realizar una prueba de hipotesis de la varianza para una muestra empleando los argumentos mencionados en la sección donde se presentó la función.
17.6.4 Ejemplo hipotético (dos varianzas)
Se desea comparar la varianza del rendimiento de dos tratamientos de riego.
Datos:
Tratamiento 1: 10, 12, 11, 13, 12, 11, 14, 13
Tratamiento 2: 9, 10, 11, 10, 12, 10, 11, 10
Planteamiento de hipótesis:
\(H_0: \sigma_1^2 = \sigma_2^2\) (las varianzas son iguales)
\(H_a: \sigma_1^2 \neq \sigma_2^2\) (las varianzas son diferentes)
F test to compare two variances
data: trat1 and trat2
F = 2.0426, num df = 7, denom df = 7, p-value = 0.3667
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.408927 10.202368
sample estimates:
ratio of variances
2.042553
var.test: realiza la prueba F para comparar varianzas.
alternative: define si la prueba es bilateral o unilateral.