Introducción

Este informe resume, mediante tablas e indicadores estadisticos, la información recolectada sobre marcas de cerveza distribuidas en la ciudad. Las variables analizadas son precio (caja de 6 unidades de 12 oz), calorias (por unidad de 12 oz), porcentaje de alcohol (por 12 oz), tipo de cerveza y pais de origen.

library(paquetePROB)
data("beer")

beer$tipo_f <- factor(beer$tipo, levels = 1:5,
                       labels = c("Lager artesanal", "Clara artesanal",
                                  "Lager importada", "Normal y helada",
                                  "Baja en calorias/sin alcohol"))

beer$origen_f <- factor(beer$origen, levels = c(0, 1),
                         labels = c("Nacional", "Importada"))

head(beer)
##   id precio calorias poralcoh tipo origen          tipo_f  origen_f
## 1  1   6.24      159      5.2    1      1 Lager artesanal Importada
## 2  2   4.79      160      5.0    1      1 Lager artesanal Importada
## 3  3   5.96      160      4.9    1      1 Lager artesanal Importada
## 4  4   4.70      162      4.9    1      1 Lager artesanal Importada
## 5  5   4.11      157      5.5    1      1 Lager artesanal Importada
## 6  6   3.85      151      4.9    1      1 Lager artesanal Importada

1. Variables cualitativas: tipo y pais de origen

1.1 Tipo de cerveza

frec_abs_tipo <- table(beer$tipo_f)
frec_rel_tipo <- round(prop.table(frec_abs_tipo) * 100, 2)

tabla_tipo <- data.frame(
  Tipo = names(frec_abs_tipo),
  Frecuencia_absoluta = as.vector(frec_abs_tipo),
  Frecuencia_relativa_pct = as.vector(frec_rel_tipo)
)
tabla_tipo
##                           Tipo Frecuencia_absoluta Frecuencia_relativa_pct
## 1              Lager artesanal                  52                   18.84
## 2              Clara artesanal                  68                   24.64
## 3              Lager importada                  40                   14.49
## 4              Normal y helada                  64                   23.19
## 5 Baja en calorias/sin alcohol                  52                   18.84
moda_tipo <- names(which.max(frec_abs_tipo))
cat("Moda de tipo:", moda_tipo, "\n")
## Moda de tipo: Clara artesanal

La moda de la variable tipo es “Clara artesanal”, la categoria mas frecuente en la base, seguida de cerca por “Normal y helada”. La categoria menos frecuente es “Lager importada” ### 1.2 Pais de origen

frec_abs_origen <- table(beer$origen_f)
frec_rel_origen <- round(prop.table(frec_abs_origen) * 100, 2)

tabla_origen <- data.frame(
  Origen = names(frec_abs_origen),
  Frecuencia_absoluta = as.vector(frec_abs_origen),
  Frecuencia_relativa_pct = as.vector(frec_rel_origen)
)
tabla_origen
##      Origen Frecuencia_absoluta Frecuencia_relativa_pct
## 1  Nacional                  60                   21.74
## 2 Importada                 216                   78.26
moda_origen <- names(which.max(frec_abs_origen))
cat("Moda de origen:", moda_origen, "\n")
## Moda de origen: Importada

La moda de origen es “Importada”, que concentra la gran mayoria de las marcas de la base, frente a un grupo mas pequeño de origen nacional.

2. Variables cuantitativas: precio, calorias y % de alcohol

resumen_cuantitativo <- function(x) {
  c(
    Media   = mean(x),
    Mediana = median(x),
    Q1      = as.numeric(quantile(x, 0.25)),
    Q2      = as.numeric(quantile(x, 0.50)),
    Q3      = as.numeric(quantile(x, 0.75)),
    DE      = sd(x),
    Rango   = diff(range(x)),
    CV_pct  = sd(x) / mean(x) * 100
  )
}

tabla_cuant <- sapply(beer[, c("precio", "calorias", "poralcoh")],
                       resumen_cuantitativo)
tabla_cuant <- round(t(tabla_cuant), 2)
tabla_cuant
##           Media Mediana    Q1     Q2     Q3    DE  Rango CV_pct
## precio     4.96    4.79   3.9   4.79   6.24  1.44   5.44  28.99
## calorias 142.35  148.00 142.0 148.00 160.00 29.74 143.00  20.89
## poralcoh   4.42    4.90   4.4   4.90   5.10  1.57   6.00  35.44

El precio muestra una dispersión relativa moderada, con una mediana ligeramente inferior a la media, lo que indica una leve asimetria hacia valores altos. Las calorias presentan el menor coeficiente de variación, es decir, es la variable mas homogenea de las tres. El porcentaje de alcohol es el mas disperso, reflejando la coexistencia de cervezas normales con la categoria “sin alcohol”.

3. Analisis comparativo

3.1 Por tipo de cerveza

resumen_por_tipo <- aggregate(
  cbind(precio, calorias, poralcoh) ~ tipo_f,
  data = beer,
  FUN = function(x) round(c(media = mean(x), de = sd(x)), 2)
)
resumen_por_tipo
##                         tipo_f precio.media precio.de calorias.media
## 1              Lager artesanal         4.86      1.16         154.38
## 2              Clara artesanal         6.50      0.74         165.41
## 3              Lager importada         5.82      0.87         151.20
## 4              Normal y helada         3.60      0.61         145.75
## 5 Baja en calorias/sin alcohol         4.08      1.10          89.15
##   calorias.de poralcoh.media poralcoh.de
## 1        9.30           4.94        0.33
## 2       15.20           5.28        0.58
## 3        6.42           4.77        0.32
## 4        6.29           4.90        0.36
## 5       21.91           1.92        2.11
boxplot(precio ~ tipo_f, data = beer, las = 2, cex.axis = 0.7,
        main = "Precio por tipo de cerveza", ylab = "Precio (USD)")

Se observa que el precio si varia notablemente según el tipo: la “Clara artesanal” es en promedio la mas costosa, mientras que la cerveza “Normal y helada” es la mas economica. La categoria “Baja en calorías/sin alcohol” se distancia claramente del resto en calorias, y concentra practicamente toda la variabilidad del % de alcohol de la base.

3.2 Por pais de origen

resumen_por_origen <- aggregate(
  cbind(precio, calorias, poralcoh) ~ origen_f,
  data = beer,
  FUN = function(x) round(c(media = mean(x), de = sd(x)), 2)
)
resumen_por_origen
##    origen_f precio.media precio.de calorias.media calorias.de poralcoh.media
## 1  Nacional         5.86      0.88         138.60       26.90           4.13
## 2 Importada         4.71      1.47         143.39       30.46           4.50
##   poralcoh.de
## 1        1.70
## 2        1.52
boxplot(calorias ~ origen_f, data = beer,
        main = "Calorias según origen", ylab = "Calorias")

Contrario a lo que podría pensarse, las cervezas nacionales presentan en promedio un precio mas alto que las importadas, aunque con menor dispersión. En calorias y % de alcohol las diferencias entre origen nacional e importado son pequeñas, por lo que el origen no parece ser un factor determinante en estas dos variables.

4. Conclusiones