Información del curso

Universidad Rafael Landívar
Campus San Luís Gonzaga S.J. Zacapa
Curso: Programación estadística con R Docente Dr. Ezequiel López Bautista


Introducción

Este análisis se basa en datos simulados de una muestra de 50 compras de refrescos realizadas por 50 clientes. Los datos provienen del ejercicio de distribución de compra de refrescos del libro de Anderson, Sweeney, & Williams (2008, pág. 28).


Datos iniciales

Vector de bebidas

# Vector de caracteres con las bebidas compradas
bebidas <- c('Coke Classic','Sprite','Pepsi',
'Diet Coke','Coke Classic','Coke Classic','Pepsi','Diet Coke','Coke Classic',
'Diet Coke','Coke Classic','Coke Classic','Coke Classic','Diet Coke','Pepsi',
'Coke Classic','Coke Classic','Dr. Pepper','Dr. Pepper','Sprite','Coke Classic',
'Diet Coke','Pepsi','Diet Coke','Pepsi','Coke Classic','Pepsi',
'Pepsi','Coke Classic','Pepsi','Coke Classic','Coke Classic','Pepsi',
'Dr. Pepper','Pepsi','Pepsi','Sprite','Coke Classic','Coke Classic',
'Coke Classic','Sprite','Dr. Pepper','Diet Coke','Dr. Pepper','Pepsi',
'Coke Classic','Pepsi', 'Sprite','Coke Classic','Diet Coke')

# Mostrar las primeras 10 compras
head(bebidas, 10)
##  [1] "Coke Classic" "Sprite"       "Pepsi"        "Diet Coke"    "Coke Classic"
##  [6] "Coke Classic" "Pepsi"        "Diet Coke"    "Coke Classic" "Diet Coke"
# Total de observaciones
cat("Total de compras registradas:", length(bebidas))
## Total de compras registradas: 50

a) Transformación a factor

# Transformar el vector bebidas en un objeto tipo factor
bebidas_factor <- factor(bebidas)

# Verificar la transformación
class(bebidas_factor)
## [1] "factor"
# Mostrar los niveles (categorías únicas)
levels(bebidas_factor)
## [1] "Coke Classic" "Diet Coke"    "Dr. Pepper"   "Pepsi"        "Sprite"

Resultado: El vector se transformó a un objeto de tipo factor con 5 niveles.


b) Tabla de frecuencias

# Calcular la tabla de frecuencias de clase
tabla_frecuencias <- table(bebidas_factor)
print(tabla_frecuencias)
## bebidas_factor
## Coke Classic    Diet Coke   Dr. Pepper        Pepsi       Sprite 
##           19            8            5           13            5
# Identificar el refresco más comprado
refresco_mas_comprado <- names(which.max(tabla_frecuencias))
frecuencia_maxima <- max(tabla_frecuencias)

cat("\n")
cat("El refresco MÁS comprado es:", refresco_mas_comprado, "\n")
## El refresco MÁS comprado es: Coke Classic
cat("Frecuencia de clase:", frecuencia_maxima, "compras\n")
## Frecuencia de clase: 19 compras

Interpretación: El refresco Coke Classic es el más popular con 19 compras de un total de 50.


c) Frecuencias relativa y porcentual

# Calcular frecuencia relativa
frecuencia_relativa <- prop.table(tabla_frecuencias)
print(frecuencia_relativa)
## bebidas_factor
## Coke Classic    Diet Coke   Dr. Pepper        Pepsi       Sprite 
##         0.38         0.16         0.10         0.26         0.10
# Calcular frecuencia porcentual
frecuencia_porcentual <- prop.table(tabla_frecuencias) * 100
print(round(frecuencia_porcentual, 2))
## bebidas_factor
## Coke Classic    Diet Coke   Dr. Pepper        Pepsi       Sprite 
##           38           16           10           26           10
# Identificar porcentajes máximo y mínimo
refresco_max_porcentaje <- names(which.max(frecuencia_porcentual))
porcentaje_max <- max(frecuencia_porcentual)

refresco_min_porcentaje <- names(which.min(frecuencia_porcentual))
porcentaje_min <- min(frecuencia_porcentual)

cat("\n=== RESUMEN DE PORCENTAJES ===\n")
## 
## === RESUMEN DE PORCENTAJES ===
cat("Refresco MÁS comprado:", refresco_max_porcentaje, 
    "con", round(porcentaje_max, 2), "%\n")
## Refresco MÁS comprado: Coke Classic con 38 %
cat("Refresco MENOS comprado:", refresco_min_porcentaje, 
    "con", round(porcentaje_min, 2), "%\n")
## Refresco MENOS comprado: Dr. Pepper con 10 %

Interpretación:

  • Más comprado: Coke Classic representa el 38% de las compras
  • Menos comprado: Dr. Pepper representa el 10% de las compras

d) Data frame integrado

# Crear data frame con todas las frecuencias
df_bebidas <- data.frame(
  Refresco = names(tabla_frecuencias),
  Frecuencia = as.numeric(tabla_frecuencias),
  Frecuencia_Relativa = as.numeric(frecuencia_relativa),
  Porcentaje = as.numeric(round(frecuencia_porcentual, 2))
)

# Ordenar por frecuencia descendente
df_bebidas <- df_bebidas[order(-df_bebidas$Frecuencia), ]

# Mostrar el data frame con formato de tabla
knitr::kable(df_bebidas, 
             row.names = FALSE,
             caption = "Tabla de Frecuencias de Compra de Refrescos",
             col.names = c("Refresco", "Frecuencia", "Frec. Relativa", "Porcentaje (%)"))
Tabla de Frecuencias de Compra de Refrescos
Refresco Frecuencia Frec. Relativa Porcentaje (%)
Coke Classic 19 0.38 38
Pepsi 13 0.26 26
Diet Coke 8 0.16 16
Dr. Pepper 5 0.10 10
Sprite 5 0.10 10

e) Gráfica de barras

# Crear gráfica de barras
barplot(tabla_frecuencias,
        main = "Distribución de Compras de Refrescos",
        xlab = "Tipo de Refresco",
        ylab = "Frecuencia (número de compras)",
        col = c("red", "blue", "green", "orange", "purple"),
        border = "black",
        las = 2,  # Rotar etiquetas del eje x
        cex.names = 0.8)  # Tamaño de las etiquetas

# Agregar línea de referencia en la media
abline(h = mean(tabla_frecuencias), col = "darkred", lty = 2, lwd = 2)
legend("topright", 
       legend = "Media", 
       col = "darkred", 
       lty = 2, 
       lwd = 2,
       cex = 0.8)


f) Gráfica de pastel

# Crear gráfica de pastel
pie(tabla_frecuencias,
    main = "Distribución Porcentual de Compras de Refrescos",
    col = c("red", "blue", "green", "orange", "purple"),
    labels = paste0(names(tabla_frecuencias), "\n", 
                    round(frecuencia_porcentual, 1), "%"),
    cex = 0.9)

# Agregar leyenda
legend("topright", 
       legend = names(tabla_frecuencias),
       fill = c("red", "blue", "green", "orange", "purple"),
       cex = 0.8,
       title = "Refrescos")


Conclusiones

Del análisis de las 50 compras de refrescos se concluye:

  1. Coke Classic es el refresco más popular con 19 compras (38%)
  2. Sprite es el menos comprado con 5 compras (10%)
  3. Existe una clara preferencia por las bebidas de cola sobre otros sabores