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.
| 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.
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
| 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 |
| 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 |
| 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 |
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.
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.
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 |
| 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 |
| 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 |
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
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")
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.
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.