1. Datos

Se trabajó con una muestra de 30 plantas por zona (Zona A y Zona B), evaluadas semanalmente durante siete semanas consecutivas (S1 a S7), lo que da un total de 210 mediciones por zona para cada una de las dos variables: altura de planta (cm) y cantidad de vainas por planta.

zonaA_altura <- c(
  28, 33, 43, 46, 31, 40, 44, 27, 31, 40, 44, 38, 46, 51, 36.4,
  29, 38, 26, 43, 35, 40, 34, 27, 39, 45, 32, 38, 42, 42, 26,
  50, 29, 33, 36, 41.6, 32, 30, 38, 30.4, 32, 48.2, 53, 25.2, 30, 51,
  31, 44, 34, 39.2, 33, 33, 45.5, 28, 30.2, 50, 55, 31, 33, 40, 26,
  45, 39, 44.3, 27, 39, 43, 37, 36, 43, 48, 41, 35, 41, 43, 39,
  53, 58, 37, 37, 52, 42, 48, 46, 51, 28, 52, 36, 39, 42, 52,
  57, 35.2, 33, 51, 39, 48.3, 30, 34, 49, 51, 48.4, 43, 26, 36, 41,
  32, 38, 44, 46, 32, 43, 48.7, 38, 32, 38, 30, 39, 40.4, 45, 40,
  28.7, 54, 31, 36, 46, 52, 36, 27, 39, 38, 41, 32, 37, 37, 29,
  44, 35, 28, 42, 47.3, 43, 45, 40, 47, 38, 49, 54, 20, 50, 47,
  42, 45, 39, 44, 40, 45.3, 42, 25, 35, 40, 45, 21, 26, 55, 26,
  36, 46, 51, 41.5, 29, 50.2, 29, 42, 50.4, 55, 41, 29, 35, 34, 46,
  45.1, 50.6, 45, 28, 48, 44, 41.4, 37, 42, 48, 36, 55, 32, 32, 43,
  48, 38.7, 28, 39, 39, 39, 45, 50, 26, 40, 50, 29, 41, 44, 49
)

zonaB_altura <- c(
  27, 50, 37, 42, 45, 49, 53, 49, 34, 37, 48, 47, 52, 57, 40,
  44, 51, 38, 39, 43, 47, 46, 50.2, 47.4, 34, 41, 46, 50, 30, 42,
  36, 50, 40, 45, 49, 25, 32, 42, 47, 49, 55, 60, 46, 37, 39.4,
  46, 37, 42, 46, 25, 48, 37, 36.7, 50, 56, 61, 39, 39, 40, 41,
  43, 48, 52, 42, 40.1, 42, 50, 46, 51, 55, 29, 38, 46, 42, 54,
  60, 65, 28, 46, 51, 31, 48, 53, 58, 50, 43, 46, 44, 53, 59,
  64, 47, 39, 43, 43, 35, 40, 44, 27, 55, 46, 29, 40, 45, 49,
  41.3, 34, 40, 39, 46, 51, 55, 46, 45, 40, 44.5, 43, 48, 53, 43,
  32.4, 46, 35, 48, 54, 59, 32, 39, 51, 50.7, 36, 41.5, 45, 39, 33,
  55, 48, 44, 50, 54, 36, 39, 57, 49, 50, 56, 61, 50, 34, 58,
  29, 42, 47, 51, 32, 52.2, 44, 33, 43, 48, 53, 45.7, 53, 54, 47,
  49, 55, 60, 26, 51, 56, 41, 52, 58, 63, 28, 52, 44.1, 47, 47,
  52, 56, 45, 35, 54, 38, 40, 45, 49, 41, 33.8, 58, 43, 45, 50,
  55, 44, 40, 36, 44, 48, 54, 58, 40, 46, 58, 42, 46, 51, 56
)

zonaA_vainas <- c(
  22, 25, 28, 31, 34, 38, 41, 23, 27, 31, 35, 39, 43, 41, 17,
  21, 26, 31, 36, 39, 37, 20, 24, 29, 34, 39, 40, 42, 14, 18,
  23, 28, 33, 34, 36, 19, 22, 27, 32, 37, 38, 40, 8, 12, 17,
  22, 27, 35, 27, 18, 22, 27, 32, 37, 45, 56, 44, 47, 51, 55,
  56, 49, 48, 19, 24, 29, 34, 39, 27, 61, 20, 25, 30, 35, 40,
  43, 54, 17, 21, 26, 31, 36, 58, 43, 7, 12, 17, 22, 27, 24,
  45, 13, 18, 23, 28, 33, 39, 35, 26, 30, 35, 40, 45, 41, 38,
  29, 33, 38, 43, 48, 28, 58, 15, 20, 25, 30, 35, 26, 23, 16,
  21, 26, 31, 36, 18, 13, 3, 8, 13, 18, 23, 13, 23, 6, 11,
  16, 21, 26, 37, 35, 48, 52, 56, 60, 64, 15, 26, 29, 34, 39,
  44, 49, 24, 32, 24, 28, 33, 36, 40, 36, 43, 27, 31, 36, 39,
  42, 25, 38, 26, 30, 35, 38, 43, 18, 35, 23, 27, 32, 35, 39,
  46, 32, 17, 22, 27, 32, 37, 56, 24, 39, 43, 48, 51, 52, 26,
  47, 22, 37, 42, 47, 36, 57, 62, 16, 21, 26, 31, 36, 41, 46
)

zonaB_vainas <- c(
  13, 16, 20, 24, 28, 36, 42, 26, 30, 35, 40, 45, 48, 51, 18,
  22, 25, 29, 33, 39, 43, 25, 29, 34, 39, 44, 46, 50, 1, 4,
  8, 12, 35, 22, 26, 16, 20, 25, 30, 42, 35, 45, 1, 5, 9,
  13, 26, 46, 29, 12, 16, 21, 26, 36, 75, 39, 23, 27, 32, 37,
  49, 36, 48, 5, 10, 16, 22, 21, 60, 41, 17, 22, 27, 32, 41,
  47, 29, 17, 21, 26, 31, 45, 36, 35, 26, 31, 37, 43, 23, 65,
  37, 2, 6, 11, 16, 37, 52, 56, 18, 23, 29, 35, 27, 46, 43,
  25, 30, 34, 40, 16, 54, 26, 18, 8, 13, 18, 22, 36, 17, 28,
  25, 30, 33, 28, 23, 27, 13, 15, 20, 23, 36, 24, 34, 8, 4,
  9, 12, 22, 56, 27, 17, 10, 15, 18, 50, 22, 10, 3, 13, 18,
  23, 22, 43, 46, 23, 24, 29, 32, 46, 43, 56, 9, 10, 15, 18,
  34, 45, 30, 25, 35, 40, 45, 55, 38, 45, 11, 10, 15, 18, 50,
  53, 45, 26, 31, 36, 41, 37, 35, 47, 18, 23, 28, 30, 36, 34,
  35, 35, 40, 45, 50, 18, 60, 65, 21, 26, 31, 33, 20, 41, 45
)

2. Naturaleza de la variable

class(zonaA_altura)   # cuantitativa continua
## [1] "numeric"
class(zonaA_vainas)   # cuantitativa discreta
## [1] "numeric"

3. Medidas de tendencia central

moda <- function(x) as.numeric(names(sort(table(x), decreasing = TRUE)[1]))

resumen <- function(x) {
  c(media   = mean(x),
    mediana = median(x),
    moda    = moda(x),
    P25     = as.numeric(quantile(x, 0.25)),
    P75     = as.numeric(quantile(x, 0.75)))
}

Altura de planta (cm)

resumen(zonaA_altura)
##    media  mediana     moda      P25      P75 
## 39.61524 40.00000 39.00000 33.00000 45.07500
resumen(zonaB_altura)
##    media  mediana     moda      P25      P75 
## 45.37143 46.00000 46.00000 40.00000 51.00000

Cantidad de vainas por planta

resumen(zonaA_vainas)
##   media mediana    moda     P25     P75 
## 32.1619 32.0000 26.0000 23.2500 39.0000
resumen(zonaB_vainas)
##    media  mediana     moda      P25      P75 
## 29.38571 28.50000 18.00000 18.00000 39.00000

4. Medidas de variabilidad

desv_media <- function(x) mean(abs(x - mean(x)))

variabilidad <- function(x) {
  c(desv_media = desv_media(x),
    varianza   = var(x),
    desv_est   = sd(x),
    CV_pct     = sd(x) / mean(x) * 100)
}

Altura de planta (cm)

variabilidad(zonaA_altura)
## desv_media   varianza   desv_est     CV_pct 
##   6.641615  65.263977   8.078612  20.392689
variabilidad(zonaB_altura)
## desv_media   varianza   desv_est     CV_pct 
##   6.612789  68.785208   8.293685  18.279532

Cantidad de vainas por planta

variabilidad(zonaA_vainas)
## desv_media   varianza   desv_est     CV_pct 
##   9.758549 146.413853  12.100159  37.622645
variabilidad(zonaB_vainas)
## desv_media   varianza   desv_est     CV_pct 
##   11.44585  197.83616   14.06542   47.86484

5. Coeficiente de asimetría de Pearson

pearson <- function(x) {
  c(coef1_media_moda    = (mean(x) - moda(x)) / sd(x),
    coef2_media_mediana = 3 * (mean(x) - median(x)) / sd(x))
}

Altura de planta (cm)

pearson(zonaA_altura)
##    coef1_media_moda coef2_media_mediana 
##          0.07615641         -0.14288168
pearson(zonaB_altura)
##    coef1_media_moda coef2_media_mediana 
##         -0.07578916         -0.22736749

Cantidad de vainas por planta

pearson(zonaA_vainas)
##    coef1_media_moda coef2_media_mediana 
##          0.50924163          0.04014115
pearson(zonaB_vainas)
##    coef1_media_moda coef2_media_mediana 
##           0.8094825           0.1889131

6. Diagramas de caja comparativos

Altura de planta (cm)

boxplot(zonaA_altura, zonaB_altura,
        names = c("Zona A", "Zona B"),
        col = c("darkseagreen", "burlywood"),
        main = "Altura de planta por zona", ylab = "cm")

Cantidad de vainas por planta

boxplot(zonaA_vainas, zonaB_vainas,
        names = c("Zona A", "Zona B"),
        col = c("darkseagreen", "burlywood"),
        main = "Cantidad de vainas por planta por zona", ylab = "N de vainas")

7. Distribución de frecuencias

Altura de planta (cm)

par(mfrow = c(1, 2))
hist(zonaA_altura, col = "darkseagreen", main = "Zona A - Altura", xlab = "cm")
hist(zonaB_altura, col = "burlywood", main = "Zona B - Altura", xlab = "cm")

par(mfrow = c(1, 1))

Cantidad de vainas por planta

par(mfrow = c(1, 2))
hist(zonaA_vainas, col = "darkseagreen", main = "Zona A - Vainas", xlab = "N de vainas")
hist(zonaB_vainas, col = "burlywood", main = "Zona B - Vainas", xlab = "N de vainas")

par(mfrow = c(1, 1))

8. Prueba de hipótesis

Planteamiento general para ambas variables:

  • H₀: μ_ZonaA = μ_ZonaB (no existen diferencias entre las medias de las dos zonas)
  • H₁: μ_ZonaA ≠ μ_ZonaB (existen diferencias entre las medias de las dos zonas)

Antes de cada prueba t se evalúa la homogeneidad de varianzas con la prueba de Levene, y según su resultado se elige var.equal = TRUE (varianzas homogéneas) o var.equal = FALSE, equivalente a la prueba de Welch (varianzas distintas).

# install.packages("car")  # ejecutar una sola vez si el paquete no está instalado
library(car)

Altura de planta (cm)

leveneTest(c(zonaA_altura, zonaB_altura),
           factor(rep(c("A", "B"), each = length(zonaA_altura))))
## Levene's Test for Homogeneity of Variance (center = median)
##        Df F value Pr(>F)
## group   1  0.0106 0.9181
##       418
t.test(zonaA_altura, zonaB_altura, var.equal = TRUE)
## 
##  Two Sample t-test
## 
## data:  zonaA_altura and zonaB_altura
## t = -7.2046, df = 418, p-value = 2.735e-12
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -7.326661 -4.185720
## sample estimates:
## mean of x mean of y 
##  39.61524  45.37143

Cantidad de vainas por planta

leveneTest(c(zonaA_vainas, zonaB_vainas),
           factor(rep(c("A", "B"), each = length(zonaA_vainas))))
## Levene's Test for Homogeneity of Variance (center = median)
##        Df F value  Pr(>F)  
## group   1  4.9561 0.02653 *
##       418                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
t.test(zonaA_vainas, zonaB_vainas, var.equal = FALSE)
## 
##  Welch Two Sample t-test
## 
## data:  zonaA_vainas and zonaB_vainas
## t = 2.1683, df = 408.88, p-value = 0.03071
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  0.2593084 5.2930726
## sample estimates:
## mean of x mean of y 
##  32.16190  29.38571

9. Prueba t pareada por planta

Como cada planta fue medida en las mismas siete semanas, además de la prueba anterior (que trata las 210 mediciones como observaciones independientes) se calcula el promedio de cada planta a lo largo de las siete semanas y se compara con una prueba t pareada, que respeta mejor la estructura de datos repetidos del diseño.

matriz_altura_A <- matrix(zonaA_altura, nrow = 30, ncol = 7, byrow = TRUE)
matriz_altura_B <- matrix(zonaB_altura, nrow = 30, ncol = 7, byrow = TRUE)
prom_planta_altura_A <- rowMeans(matriz_altura_A)
prom_planta_altura_B <- rowMeans(matriz_altura_B)
t.test(prom_planta_altura_A, prom_planta_altura_B, paired = TRUE)
## 
##  Paired t-test
## 
## data:  prom_planta_altura_A and prom_planta_altura_B
## t = -11.12, df = 29, p-value = 5.631e-12
## alternative hypothesis: true mean difference is not equal to 0
## 95 percent confidence interval:
##  -6.814900 -4.697481
## sample estimates:
## mean difference 
##        -5.75619
matriz_vainas_A <- matrix(zonaA_vainas, nrow = 30, ncol = 7, byrow = TRUE)
matriz_vainas_B <- matrix(zonaB_vainas, nrow = 30, ncol = 7, byrow = TRUE)
prom_planta_vainas_A <- rowMeans(matriz_vainas_A)
prom_planta_vainas_B <- rowMeans(matriz_vainas_B)
t.test(prom_planta_vainas_A, prom_planta_vainas_B, paired = TRUE)
## 
##  Paired t-test
## 
## data:  prom_planta_vainas_A and prom_planta_vainas_B
## t = 1.8289, df = 29, p-value = 0.07772
## alternative hypothesis: true mean difference is not equal to 0
## 95 percent confidence interval:
##  -0.3284371  5.8808180
## sample estimates:
## mean difference 
##         2.77619

10. Conclusión del análisis

La Zona B presenta en promedio plantas más altas que la Zona A, mientras que la Zona A produce en promedio más vainas por planta que la Zona B. En ambas variables, la prueba t sobre el conjunto agrupado de mediciones resulta significativa, pero la prueba pareada por planta —que respeta la estructura real de datos repetidos del diseño— no confirma esas diferencias al 5% de significancia, lo que sugiere prudencia al interpretar el resultado agrupado como evidencia definitiva de diferencia entre zonas.