1. Objetivo del informe

El objetivo es resumir descriptivamente la información de una muestra de 69 marcas de cerveza. La base contiene variables cuantitativas, como precio, calorías y porcentaje de alcohol, y variables cualitativas, como tipo de cerveza y origen.

Nota importante para evitar confusiones: aunque el archivo mencionado fue beer2.csv, en la carpeta también aparece beer.csv, que sí contiene exactamente las 69 marcas del enunciado. Por eso este informe se construye con beer.csv.

2. Descripción de las variables

Variable Tipo estadístico Escala Interpretación
marca Cualitativa identificadora Nominal Código de la marca: m1, m2, …, m69. No se promedia.
precio Cuantitativa continua Razón Precio de una caja de seis botellas de 12 onzas.
calorias Cuantitativa continua/discreta Razón Calorías contenidas en una unidad de 12 onzas.
poralcoh Cuantitativa continua Razón Porcentaje de alcohol por 12 onzas.
tipo Cualitativa Nominal Clasificación comercial de la cerveza.
origen Cualitativa dicotómica Nominal Nacional o importada.

Idea para explicar en clase: las variables cuantitativas se resumen con media, mediana, desviación estándar, cuartiles y coeficiente de variación. Las variables cualitativas se resumen con frecuencias y porcentajes.

3. Tamaño de la base

La base analizada tiene 69 marcas y 6 variables principales de análisis: precio, calorías, porcentaje de alcohol, tipo y origen.

dim(beer)
## [1] 69  6
head(beer)
##   marca precio calorias poralcoh            tipo    origen
## 1    m1   6,24      159      5,2 Lager artesanal Importada
## 2    m2   4,79      160        5 Lager artesanal Importada
## 3    m3   5,96      160      4,9 Lager artesanal Importada
## 4    m4    4,7      162      4,9 Lager artesanal Importada
## 5    m5   4,11      157      5,5 Lager artesanal Importada
## 6    m6   3,85      151      4,9 Lager artesanal Importada

4. Tablas de frecuencia para variables cualitativas

4.1 Tipo de cerveza

Código Categoría Frecuencia Porcentaje
1 Lager artesanal 13 18.8%
2 Clara artesanal 17 24.6%
3 Lager importada 10 14.5%
4 Cerveza normal y helada 16 23.2%
5 Baja en calorías / sin alcohol 13 18.8%

Interpretación: la categoría con mayor presencia es clara artesanal, con 17 marcas. Esto representa 24.6% de la muestra. La muestra está repartida entre los cinco tipos, aunque no de forma exactamente uniforme.

tabla_tipo <- beer |>
  count(tipo) |>
  mutate(porcentaje = 100*n/sum(n))
kable(tabla_tipo, digits = 2)
tipo n porcentaje
Lager artesanal 13 18.84
Clara artesanal 17 24.64
Lager importada 10 14.49
Cerveza normal y helada 16 23.19
Baja en calorías / sin alcohol 13 18.84

4.2 Origen

Código Categoría Frecuencia Porcentaje
0 Nacional 15 21.7%
1 Importada 54 78.3%

Interpretación: predominan las cervezas importadas: hay 54 importadas de 69, equivalentes al 78.3%. Las nacionales son 15, equivalentes al 21.7%.

tabla_origen <- beer |>
  count(origen) |>
  mutate(porcentaje = 100*n/sum(n))
kable(tabla_origen, digits = 2)
origen n porcentaje
Nacional 15 21.74
Importada 54 78.26

5. Indicadores descriptivos de variables cuantitativas

Variable n Media Mediana Desv. est. Varianza Mín. Q1 Q3 Máx. IQR CV Asimetría
Precio caja de seis botellas 69 4.96 4.79 1.45 2.09 2.36 3.90 6.24 7.80 2.34 29.1% 0.11
Calorías por 12 onzas 69 142.35 148 29.90 894.14 58 142 160 201 18 21.0% -1.30
Porcentaje de alcohol 69 4.42 4.90 1.57 2.48 0 4.40 5.10 6 0.70 35.6% -2.22

5.1 Precio

El precio promedio es 4.96, mientras que la mediana es 4.79. Como ambos valores son cercanos, el centro de la distribución se ubica alrededor de 5 unidades monetarias. La desviación estándar es 1.45, y el coeficiente de variación es 29.1%, lo que indica una variabilidad moderada del precio.

Límites: [0.39, 9.75]. No se detectan valores atípicos.

5.2 Calorías

El promedio de calorías es 142.35 y la mediana es 148. La mediana es mayor que la media porque existen cervezas con muy pocas calorías, especialmente las bajas en calorías o sin alcohol, que jalan el promedio hacia abajo.

Límites: [115, 187]. Valores atípicos: 58, 60, 70, 71, 72, 82, 95, 96, 96, 105, 110, 110, 201.

5.3 Porcentaje de alcohol

El porcentaje promedio de alcohol es 4.42%, mientras que la mediana es 4.90%. La mediana es mayor que la media porque hay varias cervezas con 0% de alcohol, lo cual reduce el promedio.

Límites: [3.35, 6.15]. Valores atípicos: 0, 0, 0, 0, 0, 0, 0.

resumen <- beer |>
  summarise(
    n = n(),
    media_precio = mean(precio),
    mediana_precio = median(precio),
    sd_precio = sd(precio),
    media_calorias = mean(calorias),
    mediana_calorias = median(calorias),
    sd_calorias = sd(calorias),
    media_alcohol = mean(poralcoh),
    mediana_alcohol = median(poralcoh),
    sd_alcohol = sd(poralcoh)
  )
kable(resumen, digits = 2)
n media_precio mediana_precio sd_precio media_calorias mediana_calorias sd_calorias media_alcohol mediana_alcohol sd_alcohol
69 NA 4,79 NA 142.35 148 29.9 NA 4,9 NA

6. Resumen por tipo de cerveza

Tipo precio_count precio_mean precio_median precio_std calorias_count calorias_mean calorias_median calorias_std poralcoh_count poralcoh_mean poralcoh_median poralcoh_std
Baja en calorías / sin alcohol 13 4.08 4.02 1.13 13 89.15 95 22.59 13 1.92 0 2.17
Cerveza normal y helada 16 3.60 3.86 0.63 16 145.75 144.50 6.44 16 4.90 4.90 0.37
Clara artesanal 17 6.50 6.42 0.76 17 165.41 163 15.56 17 5.28 5.30 0.60
Lager artesanal 13 4.86 4.79 1.20 13 154.38 157 9.59 13 4.94 4.90 0.35
Lager importada 10 5.82 5.75 0.90 10 151.20 149 6.68 10 4.77 4.95 0.33

Interpretación por tipo:

beer |>
  group_by(tipo) |>
  summarise(
    n = n(),
    precio_promedio = mean(precio),
    calorias_promedio = mean(calorias),
    alcohol_promedio = mean(poralcoh),
    .groups = "drop"
  ) |>
  kable(digits = 2)
tipo n precio_promedio calorias_promedio alcohol_promedio
Lager artesanal 13 NA 154.38 NA
Clara artesanal 17 NA 165.41 NA
Lager importada 10 NA 151.20 NA
Cerveza normal y helada 16 NA 145.75 NA
Baja en calorías / sin alcohol 13 NA 89.15 NA

7. Resumen por origen

Origen precio_count precio_mean precio_median precio_std calorias_count calorias_mean calorias_median calorias_std poralcoh_count poralcoh_mean poralcoh_median poralcoh_std
Importada 54 4.71 4.06 1.48 54 143.39 148 30.67 54 4.50 4.90 1.53
Nacional 15 5.86 5.68 0.90 15 138.60 148 27.61 15 4.13 4.90 1.74

Interpretación: en esta muestra, las cervezas nacionales presentan un precio promedio mayor que las importadas. Sin embargo, hay que explicar esto con cuidado: el resultado depende de la composición de la muestra y de los tipos de cerveza incluidos; no significa automáticamente que toda cerveza nacional sea más costosa.

beer |>
  group_by(origen) |>
  summarise(
    n = n(),
    precio_promedio = mean(precio),
    calorias_promedio = mean(calorias),
    alcohol_promedio = mean(poralcoh),
    .groups = "drop"
  ) |>
  kable(digits = 2)
origen n precio_promedio calorias_promedio alcohol_promedio
Nacional 15 NA 138.60 NA
Importada 54 NA 143.39 NA

8. Relación entre variables cuantitativas

Matriz de correlación:

Variable precio calorias poralcoh
precio 1 0.424 0.295
calorias 0.424 1 0.883
poralcoh 0.295 0.883 1

La relación más fuerte se observa entre calorías y porcentaje de alcohol, con una correlación aproximada de 0.883. Esto quiere decir que, dentro de esta muestra, las cervezas con mayor porcentaje de alcohol tienden también a tener más calorías.

La relación entre precio y calorías es positiva pero moderada, aproximadamente 0.424. La relación entre precio y alcohol también es positiva pero más débil, aproximadamente 0.295.

beer$precio <- as.numeric(beer$precio)
beer$calorias <- as.numeric(beer$calorias)
beer$poralcoh <- as.numeric(beer$poralcoh)

cor(beer[, c("precio", "calorias", "poralcoh")])
##          precio calorias poralcoh
## precio        1       NA       NA
## calorias     NA        1       NA
## poralcoh     NA       NA        1
cor(beer[, c("precio", "calorias", "poralcoh")])
##          precio calorias poralcoh
## precio        1       NA       NA
## calorias     NA        1       NA
## poralcoh     NA       NA        1

9. Gráficos sugeridos para la explicación

ggplot(beer, aes(x = precio)) +
  geom_histogram(bins = 10, fill = "#4C78A8", color = "white") +
  labs(title = "Distribución del precio", x = "Precio", y = "Frecuencia")

ggplot(beer, aes(x = calorias)) +
  geom_histogram(bins = 10, fill = "#59A14F", color = "white") +
  labs(title = "Distribución de calorías", x = "Calorías", y = "Frecuencia")

ggplot(beer, aes(x = poralcoh)) +
  geom_histogram(bins = 10, fill = "#F28E2B", color = "white") +
  labs(title = "Distribución del porcentaje de alcohol", x = "Alcohol (%)", y = "Frecuencia")

ggplot(beer, aes(x = tipo, y = precio)) +
  geom_boxplot(fill = "#E15759", alpha = 0.7) +
  coord_flip() +
  labs(title = "Precio por tipo de cerveza", x = "Tipo", y = "Precio")

ggplot(beer, aes(x = poralcoh, y = calorias, color = tipo)) +
  geom_point(size = 2) +
  labs(title = "Relación entre alcohol y calorías", x = "Alcohol (%)", y = "Calorías")

10. Análisis final de resultados

Composición de la muestra: La base está dominada por marcas importadas (reúnen 54 de las 69 cervezas observadas). Si nos enfocamos en las categorías comercializadas, las “claras artesanales” lideran con la mayor participación, seguidas muy de cerca por las cervezas “normales y heladas”.

Comportamiento del precio: El valor central del precio ronda los 5 dólares/unidades por six-pack (con un promedio de 4.96 y una mediana de 4.79). Muestra una dispersión moderada (CV del 29.1%), sin llegar a presentar valores atípicos que distorsionen los datos.

Distribución de calorías: El aporte calórico promedia las 142.35 calorías, pero la mediana sube a 148. Esta diferencia se debe a un sesgo a la izquierda (negativo), causado por las cervezas ligeras o sin alcohol que jalan la media hacia abajo con registros tan bajos como 58 calorías.

Graduación alcohólica: En promedio, el alcohol se ubica en 4.42%, aunque el valor central real (mediana) es del 4.90%. La presencia de varias opciones con 0% de alcohol es lo que reduce el promedio. Por esta razón, la mediana resulta una medida mucho más fiel para describir una cerveza tradicional de este grupo.

Relación clave: El hallazgo más claro es la fuerte relación positiva entre el nivel de alcohol y las calorías (correlación de 0.883). Es lógico pensar que a mayor graduación alcohólica el contenido calórico aumente, aunque estadísticamente debemos tratarlo como un patrón asociado y no como una causa directa.

11. Concepto para el director de investigación

A partir del comportamiento detectado en los datos, la base resulta bastante útil para segmentar el mercado según tipo, origen y atributos del producto. Para avanzar en la investigación, sugiero estructurar los siguientes análisis prioritarios:

Segmentación por precio según el tipo de cerveza: Evaluar qué categorías se ubican en el rango premium y cuáles compiten por precio accesible.

Validación de atributos vs. categoría: Verificar si las etiquetas (como “baja en calorías” o “sin alcohol”) realmente marcan una brecha clara en calorías y graduación respecto a las cervezas convencionales.

Contraste de origen filtrado: Profundizar en la comparación entre nacionales e importadas, pero aislándolas por categoría para confirmar si la diferencia de precios observada se mantiene o si es solo un efecto de la mezcla de productos de la muestra.

Recomendación central: Evitar el uso de promedios globales para tomar decisiones. Dado que la muestra junta productos muy variados (desde sin alcohol hasta artesanales de nicho), la mejor ruta es analizar siempre agrupando por categoría para no sesgar las interpretaciones.