Análisis Descriptivo de Minutos Consumidos en una Compañía de Telefonía Móvil

Introducción

La directora de marketing de una importante compañía de telefonía móvil obtuvo los registros de los minutos consumidos por una muestra aleatoria de 150 abonados al plan más barato de la empresa (400 minutos mensuales). El objetivo es analizar estos datos para entender mejor el comportamiento de los usuarios.

Instalación de Librerías Necesarias

# Instalar y cargar las librerías
#install.packages("ggplot2")
#install.packages("dplyr")
#install.packages("gridExtra")
#install.packages("grid")
#install.packages('tinytex')
#tinytex::install_tinytex()
library(ggplot2)
library(dplyr)
library(gridExtra)
library(grid)

Datos de Minutos Consumidos

# Datos de minutos consumidos
# Nota: Asegúrate de completar esta lista con todos los valores proporcionados
minutos_consumidos <- c(414, 412, 315, 393, 431, 405, 330, 348, 401, 342, 388, 399, 373, 358, 405, 402, 344, 354, 387, 386, 389, 367, 362, 382, 334, 357, 371, 455, 452, 384, 345, 347, 400, 389, 399, 408, 376, 451, 414, 385, 378, 413, 364, 379, 372, 403, 310, 379, 401, 401, 344, 365, 414, 358, 407, 354, 394, 430, 389, 425, 382, 348, 387, 362, 307, 403, 412, 419, 349, 346, 340, 428, 342, 330, 351, 440, 445, 390, 358, 353, 407, 391, 446, 369, 378, 365, 368, 377, 399, 379, 370, 412, 311, 352, 365, 384, 384, 357, 423, 341, 409, 381, 363, 358, 422, 404, 463, 421, 419, 379, 325, 353, 379, 385, 359, 359, 392, 245, 390, 340, 372, 421, 382, 373, 374, 348, 415, 388, 431, 382, 388, 409, 373, 371, 312, 367, 375, 359, 411, 411, 341, 380, 397, 358, 406, 416, 408, 440, 398, 346)

 

# Crear un DataFrame con los datos
df_minutos <- data.frame(Minutos_Consumidos = minutos_consumidos)

Cálculo de Medidas Descriptivas

# Calcular medidas descriptivas
summary_stats <- df_minutos %>%
  summarise(
    Media = mean(Minutos_Consumidos),
    Mediana = median(Minutos_Consumidos),
    Moda = as.numeric(names(sort(table(Minutos_Consumidos), decreasing = TRUE)[1])),
    Desviacion_Estandar = sd(Minutos_Consumidos),
    Minimo = min(Minutos_Consumidos),
    Maximo = max(Minutos_Consumidos)
  )

# Imprimir estadísticas descriptivas
summary_stats
##      Media Mediana Moda Desviacion_Estandar Minimo Maximo
## 1 381.3467     382  358            33.87521    245    463

Media (Promedio): 381.35 minutos. Esto significa que en promedio, cada abonado consumió aproximadamente 381 minutos en el mes.

Mediana: 382 minutos. La mitad de los abonados consumió menos de 382 minutos y la otra mitad más.

Moda: 358 minutos. Este es el número de minutos más frecuentemente consumido por los abonados.

Desviación Estándar: 33.88 minutos. Esto indica cuánto varían los minutos consumidos en comparación con el promedio.

Mínimo y Máximo: Los minutos consumidos varían entre 245 y 463 minutos.

Creación de Gráficos

Histograma y Boxplot

# Crear boxplot
boxplot <- ggplot(df_minutos, aes(y = Minutos_Consumidos)) +
  geom_boxplot(fill = "orange", color = "black") +
  theme_minimal() +
  labs(title = "Diagrama de Caja de Minutos Consumidos", x = "", y = "Minutos Consumidos")
boxplot

# Calcular medidas descriptivas
media <- mean(df_minutos$Minutos_Consumidos)
mediana <- median(df_minutos$Minutos_Consumidos)
moda <- as.numeric(names(sort(table(df_minutos$Minutos_Consumidos), decreasing = TRUE)[1]))
# Crear histograma con líneas para media, mediana y moda
Histograma <- ggplot(df_minutos, aes(x = Minutos_Consumidos)) +
  geom_histogram(binwidth = 10, fill = "blue", color = "black") +
  geom_vline(xintercept = media, color = "red", linetype = "dashed", size = 1) +
  geom_vline(xintercept = mediana, color = "green", linetype = "dashed", size = 1) +
  geom_vline(xintercept = moda, color = "yellow", linetype = "dashed", size = 1) +
  theme_minimal() +
  labs(title = "Histograma de Minutos Consumidos",
       x = "Minutos Consumidos",
       y = "Frecuencia") +
  annotate("text", x = media, y = 5, label = paste("Media:", round(media, 2)), vjust = -1) +
  annotate("text", x = mediana, y = 10, label = paste("Mediana:", mediana), vjust = -1) +
  annotate("text", x = moda, y = 15, label = paste("Moda:", moda), vjust = -1)
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Histograma

Parte 2: Análisis de un Comerciante al Menudeo

Instalación y Carga de Librerías

# Instalar y cargar librería stats
#install.packages("stats")
library(stats)

Modelo de regresión lineal

A: Ecuación de regresión

# Datos del comerciante al menudeo
costos_publicidad <- c(40, 20, 25, 20, 30, 50, 40, 20, 50, 40, 25, 50)
ventas <- c(385, 400, 395, 365, 475, 440, 490, 420, 560, 525, 480, 510)

# Crear un DataFrame con los datos
df_ventas <- data.frame(Costos_Publicidad = costos_publicidad, Ventas = ventas)

# Modelo de regresión lineal
modelo <- lm(Ventas ~ Costos_Publicidad, data = df_ventas)
summary_modelo <- summary(modelo)

# Imprimir el resumen del modelo
print(summary_modelo)
## 
## Call:
## lm(formula = Ventas ~ Costos_Publicidad, data = df_ventas)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -87.538 -32.700   8.566  39.118  55.774 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        343.706     44.766   7.678 1.68e-05 ***
## Costos_Publicidad    3.221      1.240   2.598   0.0266 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 50.23 on 10 degrees of freedom
## Multiple R-squared:  0.403,  Adjusted R-squared:  0.3433 
## F-statistic: 6.751 on 1 and 10 DF,  p-value: 0.02657

La ecuación de la línea de regresión para predecir las ventas semanales a partir de los gastos en publicidad es:

Ventas

343.71 + 3.22 × Publicidad Ventas=343.71+3.22×Publicidad

Donde:

El intercepto (343.71) representa las ventas esperadas cuando no hay gasto en publicidad. El coeficiente de la publicidad (3.22) significa que por cada mil dólares adicionales gastados en publicidad, se espera un incremento de aproximadamente 3.22 mil dólares en las ventas.

Intervalo de confianza para la intercepción

B: Intervalo de confianza

intervalo_confianza <- confint(modelo, "Costos_Publicidad", level = 0.95)
print(intervalo_confianza)
##                       2.5 %   97.5 %
## Costos_Publicidad 0.4587991 5.982825

El intervalo de confianza del 95% para el intercepto (ventas cuando no hay gasto en publicidad) es entre 243.96 y 443.45 mil dólares. Esto indica que estamos bastante seguros de que las ventas, sin gastar en publicidad, estarían en este rango.

Test de hipótesis para la pendiente

C: Test de hipótesis

p_valor <- summary(modelo)$coefficients[2,4]
print(p_valor)
## [1] 0.0265709

Una prueba para ver si la publicidad influye positivamente en las ventas. El resultado (p-valor = 0.0266) indica que sí hay una influencia positiva significativa de la publicidad en las ventas, ya que este valor es menor que 0.05 (nuestro nivel de significación).

Coeficiente de determinación

D: R cuadrado

r_cuadrado <- summary(modelo)$r.squared
print(r_cuadrado)
## [1] 0.4030184

El modelo explica aproximadamente el 40.3% de la variabilidad en las ventas semanales. Esto significa que un poco más de la mitad de los cambios en las ventas semanales pueden ser explicados por factores distintos a la publicidad