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
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.
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”.
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.
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.