El objetivo de este trabajo es lograr resumir la información suministrada en tablas e indicadores que permitan validar algunas de sus hipótesis. 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.
beer <- read.csv("C:\\Users\\user\\Desktop\\ESTADISTICA TD\\monitoria08sept\\data\\beer.csv")
beer$tipo <- factor(
beer$tipo,
levels = 1:5,
labels = c("Lager artesanal", "Clara artesanal", "Lager importada",
"Cerveza normal y helada", "Baja en calorías / sin alcohol")
)
beer$origen <- factor(
beer$origen,
levels = c(0, 1),
labels = c("Nacional", "Importada")
)
str(beer)
## 'data.frame': 69 obs. of 6 variables:
## $ marca : chr "m1" "m2" "m3" "m4" ...
## $ precio : chr "6,24" "4,79" "5,96" "4,7" ...
## $ calorias: int 159 160 160 162 157 151 155 135 162 142 ...
## $ poralcoh: chr "5,2" "5" "4,9" "4,9" ...
## $ tipo : Factor w/ 5 levels "Lager artesanal",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ origen : Factor w/ 2 levels "Nacional","Importada": 2 2 2 2 2 2 2 2 2 2 ...
La siguiente tabla resume, para cada una de las seis variables de la base, tres aspectos que son claves para elegir correctamente las técnicas descriptivas que se aplican más adelante en el informe: el tipo estadístico (si la variable es cuantitativa o cualitativa), la escala de medición (nominal, ordinal, intervalo o razón) y una breve interpretación de lo que representa cada dato dentro del contexto del negocio cervecero. Esta clasificación no es un simple formalismo: de ella depende, por ejemplo, que a precio, calorias y poralcoh se les puedan calcular promedios y desviaciones, mientras que a tipo y origen solo se les apliquen frecuencias y porcentajes, ya que no tiene sentido aritmético promediar categorías. La variable marca se incluye únicamente como identificador de cada registro y no entra en ningún cálculo descriptivo.
| 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. |
Aclaracion importante: 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. Esto es importante tenerlo en cuenta para conocer porque a algunas variables no se les aplica las mismas medidas estadisticas.
La base analizada tiene 69 marcas y 6 variables principales de análisis: precio, calorías, porcentaje de alcohol, tipo y origen. El tamaño de la muestra, 69 registros, es relevante porque condiciona la solidez de las conclusiones: al ser un número moderado de observaciones, los promedios y porcentajes calculados en las secciones siguientes deben interpretarse como una descripción de esta muestra en particular y no necesariamente como una generalización estadísticamente robusta a todo el mercado de cervezas.
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.Le siguen, en orden de frecuencia, cerveza normal y helada (16 marcas, 23.2%), y en un tercer grupo, prácticamente empatadas, lager artesanal y baja en calorías / sin alcohol, ambas con 13 marcas cada una (18.8%). La categoría menos representada es lager importada, con 10 marcas (14.5%). En términos generales, la muestra está repartida entre los cinco tipos de forma relativamente equilibrada, sin que ninguna categoría concentre una mayoría absoluta de las observaciones: la diferencia entre la categoría más frecuente (24.6%) y la menos frecuente (14.5%) es de apenas 10.1 puntos porcentuales. Esto sugiere que, al comparar más adelante indicadores como precio o calorías por tipo de cerveza, ningún grupo estará subrepresentado al punto de que sus estadísticas resulten poco confiables por falta de datos.
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: COmo se puede evidenciar en la tabla hay mayor presencia de cervezas importadas: 54 importadas de 69 total, equivalentes al 78.3%. Las nacionales son 15, equivalentes al 21.7%.En otras palabras, por cada cerveza nacional en la muestra hay aproximadamente 3.6 cervezas importadas, lo que revela un fuerte desbalance en la composición de la base según origen. Esta asimetría es importante tenerla presente para las secciones posteriores del informe: cuando se comparen precio, calorías o alcohol entre cervezas nacionales e importadas (sección 7), el grupo de nacionales estará representado por un número bastante más pequeño de observaciones (15 frente a 54), por lo que sus estadísticas —aunque válidas— pueden ser más sensibles a valores atípicos o a la presencia de unas pocas marcas particulares dentro de ese subgrupo.
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,lo que significa que, en promedio, los precios se alejan poco más de una unidad monetaria del precio medio, y el coeficiente de variación es 29.1%, lo que indica una variabilidad moderada del precio. Esto que significa que, en promedio, los precios se alejan poco más de una unidad monetaria del precio medio. Al expresar esa dispersión en términos relativos mediante el coeficiente de variación (29.1%), se concluye que la variabilidad del precio es moderada: No es tan baja como para decir que todas las cervezas cuestan prácticamente lo mismo, ni tan alta como para hablar de una dispersión extrema.
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. Esta relación —mediana mayor que la media— es característica de una distribución con sesgo hacia la izquierda (sesgo negativo): la mayoría de las cervezas tienen un contenido calórico agrupado alrededor de 148 calorías o más, pero existe un subgrupo de cervezas con muy pocas calorías, particularmente las de la categoría “baja en calorías / sin alcohol”, que arrastra 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%, medio punto porcentual por encima del promedio. La mediana es mayor que la media porque hay varias cervezas con 0% de alcohol, lo cual reduce el promedio.Al igual que ocurre con las calorías, esta diferencia se explica por la presencia de un grupo de cervezas con 0% de alcohol (las clasificadas como “sin alcohol”), que reducen el promedio general sin afectar de la misma manera a la mediana, que es más resistente a este tipo de valores extremos
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. En esta muestra, las cervezas nacionales presentan un precio promedio de 5.86, superior al de las importadas, que es de 4.71; es decir, una diferencia de 1.15 unidades monetarias a favor —en términos de precio— de las nacionales. En cuanto a calorías, las nacionales también muestran un promedio ligeramente menor (138.60 frente a 143.39 de las importadas), y en alcohol las importadas presentan un promedio algo mayor (4.50% frente a 4.13% de las nacionales), aunque ambas cifras son cercanas.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 de toda la matriz se observa entre calorías y porcentaje de alcohol, con un coeficiente de correlación de Pearson aproximado de 0.883. Al tratarse de un valor tan cercano a 1, indica una asociación lineal fuerte y positiva: dentro de esta muestra, las cervezas con mayor porcentaje de alcohol tienden, casi de forma consistente, a tener también un mayor contenido calórico. 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 de intensidad moderada, con un coeficiente de aproximadamente 0.424; es decir, existe cierta tendencia a que las cervezas más calóricas sean también algo más costosas, pero la asociación dista de ser tan marcada como la de calorías con alcohol. La relación entre precio y alcohol es igualmente positiva pero más débil aún, con un coeficiente de 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")
La muestra está compuesta principalmente por cervezas importadas: 54 de 69 marcas. Por tipo de cerveza, la mayor frecuencia corresponde a clara artesanal, seguida por cerveza normal y helada.
En cuanto al precio, la media es 4.96 y la mediana es 4.79. Esto indica que el precio típico se encuentra alrededor de 5 unidades monetarias por caja de seis botellas. La variabilidad del precio es moderada, con un coeficiente de variación de 29.1%.
Las calorías tienen media de 142.35 y mediana de 148. La distribución presenta sesgo negativo porque hay cervezas de muy bajo contenido calórico. Esto se observa especialmente en la categoría de baja en calorías / sin alcohol.
El porcentaje de alcohol tiene media de 4.42% y mediana de 4.90%. La diferencia se explica por la presencia de cervezas sin alcohol, que bajan la media. Por eso, para explicar el consumo típico, la mediana puede ser más representativa que el promedio.
La asociación más clara aparece entre calorías y alcohol: a mayor porcentaje de alcohol, tienden a aumentar las calorías. Este resultado tiene sentido desde el punto de vista del producto, pero debe interpretarse como asociación descriptiva, no como causalidad.
Con base en la descripción inicial, la base permite clasificar las cervezas por tipo y origen, y también comparar sus características de precio, calorías y alcohol. Para una primera etapa del análisis, se recomienda concentrarse en tres cruces:
La recomendación principal para el director de investigación es no quedarse únicamente con los promedios generales de la muestra completa. Como la base mezcla cervezas artesanales, importadas, normales y sin alcohol —grupos con comportamientos claramente distintos, según se evidenció en las secciones 6 y 7—, un análisis desagregado por grupos resulta más claro, más útil para la toma de decisiones comerciales y ayuda a evitar conclusiones engañosas que surgirían de tratar a todas las cervezas como si fueran un único conjunto homogéneo.