#Descripción general: Esta base de datos corresponde al ámbito financiero y de negocios. Contiene información sobre diferentes indicadores económicos que reflejan la situación de varias empresas. Su finalidad es ofrecer datos organizados para evaluar el desempeño y apoyar la toma de decisiones. En este caso, se estudiarán tres tiendas (A, B y C) y se analizarán principalmente las variables: Monto_Ventas: valor total obtenido por cada tienda. Clientes_Frecuentes: proporción de compradores habituales. Productos_Vendidos: cantidad total de producto vendidos
("datos_negocios_var_5_ventas.csv")
## [1] "datos_negocios_var_5_ventas.csv"
library(readr)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(janitor)
##
## Attaching package: 'janitor'
## The following objects are masked from 'package:stats':
##
## chisq.test, fisher.test
df <- read_csv("datos_negocios_var_5_ventas.csv") |> clean_names()
## Rows: 100 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): Tienda
## dbl (3): Monto_Ventas, Clientes_Frecuentes, Productos_Vendidos
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
dim(df)
## [1] 100 4
names(df)
## [1] "tienda" "monto_ventas" "clientes_frecuentes"
## [4] "productos_vendidos"
datos <- read.csv("datos_negocios_var_5_ventas.csv")
head(datos)
## Tienda Monto_Ventas Clientes_Frecuentes Productos_Vendidos
## 1 Tienda A 10880.85 0 346
## 2 Tienda B 48635.34 1 159
## 3 Tienda C 33066.81 0 102
## 4 Tienda A 41198.95 0 299
## 5 Tienda A 47513.59 0 311
## 6 Tienda A 26147.79 0 327
num_vars <- names(df)[sapply(df, is.numeric)]
if (length(num_vars) == 0) {
cat("— No hay variables numéricas en esta base.\n")
} else {
cat("*Resumen de variables numéricas:*\n")
print(summary(df[num_vars]))
}
## *Resumen de variables numéricas:*
## monto_ventas clientes_frecuentes productos_vendidos
## Min. :10294 Min. :0.00 Min. : 61.0
## 1st Qu.:19853 1st Qu.:0.00 1st Qu.:140.5
## Median :30921 Median :0.00 Median :239.0
## Mean :31160 Mean :0.45 Mean :254.4
## 3rd Qu.:42604 3rd Qu.:1.00 3rd Qu.:353.5
## Max. :49187 Max. :1.00 Max. :486.0
#Mediana: 30921 #Media: 31160 El hecho de que la media y la mediana tengan valores muy similares indica que la distribución del monto de ventas es bastante simétrica. En otras palabras, los datos se encuentran repartidos de forma equilibrada alrededor del valor promedio.
#Diagrama
library(ggplot2)
ggplot(datos, aes(x = Tienda, y = Monto_Ventas, fill = Tienda)) +
geom_boxplot() +
labs(title = "Distribución del monto de ventas por tienda",
x = "Tienda",
y = "Monto de ventas") +
theme_minimal()
#Conclusiones
La tienda B presenta una distribución prácticamente simétrica, en contraste con las tiendas A y C, que muestran una leve asimetría.En cuanto a los montos de venta, la tienda B sobresale por registrar valores más altos y con menor dispersión. La tienda A, por el contrario, es la que exhibe mayor variabilidad, mientras que la tienda C se ubica en una posición intermedia.
library(dplyr)
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
datos <- read.csv("datos_negocios_var_5_ventas.csv")
Clientes_Frecuentes_Tienda <- datos %>%
group_by(Tienda) %>%
summarise(Clientes_Frecuentes_Porcentaje = mean(Clientes_Frecuentes) * 100)
print(Clientes_Frecuentes_Tienda)
## # A tibble: 3 × 2
## Tienda Clientes_Frecuentes_Porcentaje
## <chr> <dbl>
## 1 Tienda A 35.3
## 2 Tienda B 41.9
## 3 Tienda C 57.1
Tienda A: el 35% de los clientes son clientes frecuentes.
Tienda B: en la tienda B el 41% de sus clientes van con frecuencia.
Tienda C: en la tienda C el 57% de los clientes van con frecuencia.
#Conclusion general:
Entre la tienda A, B y C la tienda C es la tienda que tiene mas clientes que van con frecuencia a comprar esto se puede dar debido a que la tienda tendra mas variedad de productos y por ende tiene clientes mas fieles a diferencia de las otras tiendas.
#Diagrama de barras: numero de clientes
ggplot(datos, aes(x = Tienda, fill = as.factor(Clientes_Frecuentes))) +
geom_bar(position = "dodge") +
labs(title = "Número de Clientes frecuentes por tienda",
x = "Tienda",
y = "Clientes Frecuentes",
fill = "Frecuentes") +
scale_fill_manual(values = c("lightpink", "lightblue"), labels = c("No", "Sí")) +
theme_minimal()
#Conclusion: Se observa que la tienda C cuenta con un mayor número de clientes frecuentes (20), además de 15 no frecuentes, para un total de 35 clientes. En contraste, las demás tiendas presentan una mayor cantidad de clientes no frecuentes, por lo que la proporción de compradores habituales no alcanza a igualar los niveles de la tienda C.
#Diagrama caja y bigotes:Distribución del monto de ventas
ggplot(datos, aes(x = (Clientes_Frecuentes), y = Monto_Ventas, fill = as.factor(Clientes_Frecuentes))) +
geom_boxplot() +
labs(title = "Distribución del monto de ventas según la frecuencia del Cliente",
x = "Frecuencia del Cliente",
y = "Monto de ventas") +
scale_x_discrete(labels = c("0" = "No es frecuente", "1" = "si es frecuente")) +
scale_fill_manual(values = c("lightyellow", "lightgreen")) +
theme_minimal()
>Conclusion:
El grupo de clientes no frecuentes (0) muestra una distribución más simétrica, mientras que el grupo de clientes frecuentes (1) presenta una ligera asimetría hacia la izquierda.Los clientes no frecuentes tienden a generar montos de venta más altos y más uniformes, mientras que los clientes frecuentes muestran una mayor variabilidad en sus compras, con una tendencia a montos de venta más bajos pero con algunos valores atípicos más altos.
#Diagrama de barras:cantidad de productos
library(ggplot2)
datos <- read.csv("datos_negocios_var_5_ventas.csv")
productos_por_tienda <- aggregate(Productos_Vendidos ~ Tienda, data = datos, sum)
ggplot(productos_por_tienda, aes(x = Tienda, y = Productos_Vendidos, fill = Tienda)) +
geom_bar(stat = "identity") +
labs(title = "Productos Vendidos por Tienda",
x = "Tienda",
y = "Total de Productos Vendidos") +
theme_minimal() +
scale_fill_brewer(palette = "Set3")
#Conclusion:
Se aprecia que la tienda C, al contar con un mayor número de clientes frecuentes, alcanza también un volumen de ventas superior. Este resultado refleja un indicador que está directamente relacionado con la manera en que cada tienda gestiona la relación con sus clientes, sus estrategias de promoción y las acciones de fidelización que implementa.
#Histograma
library(ggplot2)
datos <- read.csv("datos_negocios_var_5_ventas.csv")
ggplot(datos, aes(x = Monto_Ventas)) +
geom_histogram(binwidth = 1000, fill = "lightyellow", color = "green") +
labs(title = "Distribución del Monto de Ventas", x = "Monto de Ventas", y = "Frecuencia")
#Conclusion: Tras analizar la distribución del monto de ventas, se observa que el rango con mayor concentración corresponde a 40.000–50.000, con una frecuencia de 30. El segundo rango más frecuente es 10.000–20.000, que alcanza una frecuencia de 26.
#2. Intervalo de confianza para la media
Calcular un intervalo de confianza al 95% para la media poblacional del monto de venta mensual en la tienda C. Muestra: n = 35 tiendas Media muestral X¯: Calculada con la muestra Desviación estándar muestral s: Calculada con la muestra Nivel de confianza: 95%
library(dplyr)
datos <- read.csv("datos_negocios_var_5_ventas.csv")
datos_tienda_C <- datos %>%
filter(Tienda == "Tienda C")
print(datos_tienda_C)
## Tienda Monto_Ventas Clientes_Frecuentes Productos_Vendidos
## 1 Tienda C 33066.81 0 102
## 2 Tienda C 38066.25 0 131
## 3 Tienda C 12612.52 0 210
## 4 Tienda C 39172.95 1 404
## 5 Tienda C 25834.14 0 175
## 6 Tienda C 28791.12 1 258
## 7 Tienda C 25390.91 1 180
## 8 Tienda C 17883.83 1 83
## 9 Tienda C 39084.89 0 470
## 10 Tienda C 15081.87 0 256
## 11 Tienda C 14854.47 0 114
## 12 Tienda C 28195.20 0 157
## 13 Tienda C 17271.63 0 248
## 14 Tienda C 31041.73 1 250
## 15 Tienda C 38670.10 1 434
## 16 Tienda C 35948.84 1 93
## 17 Tienda C 41911.09 1 138
## 18 Tienda C 45355.02 0 367
## 19 Tienda C 27026.45 1 441
## 20 Tienda C 13249.43 0 361
## 21 Tienda C 48642.58 1 134
## 22 Tienda C 36517.82 1 258
## 23 Tienda C 14097.74 1 133
## 24 Tienda C 31066.10 1 395
## 25 Tienda C 25110.59 1 482
## 26 Tienda C 17448.10 1 112
## 27 Tienda C 30260.26 1 292
## 28 Tienda C 34826.09 0 287
## 29 Tienda C 39679.78 0 323
## 30 Tienda C 43398.42 1 125
## 31 Tienda C 33554.81 1 355
## 32 Tienda C 22615.52 1 168
## 33 Tienda C 16489.87 1 348
## 34 Tienda C 48906.81 0 237
## 35 Tienda C 37647.29 0 311
datos <- read.csv("datos_negocios_var_5_ventas.csv")
datos_tienda_c <- datos[datos$Tienda == "Tienda C", ]
media <- mean(datos_tienda_c$Monto_Ventas)
desviacion <- sd(datos_tienda_c$Monto_Ventas)
n <- nrow(datos_tienda_c)
z <- 1.96
margen_error <- z * (desviacion / sqrt(n))
intervalo_confianza <- c(media - margen_error, media + margen_error)
cat("Media del monto de ventas en Tienda C:", round(media, 2), "\n")
## Media del monto de ventas en Tienda C: 29964.89
cat("Intervalo de Confianza 95%: [", round(intervalo_confianza[1], 2),
"y ", round(intervalo_confianza[2], 2), "]\n")
## Intervalo de Confianza 95%: [ 26410.3 y 33519.47 ]
Conclusion: Con un nivel de confianza del 95% podemos estimar que el numero de clientes frecuentes de la tienda C estan entre 26410.3 y 33519.47
#Intervalo de confianza para la proporción
Con el propósito de conocer el porcentaje de clientes frecuentes en la tienda C, la empresa tomó una muestra aleatoria de 35 observaciones. En esta se evaluó la variable que indica la frecuencia de visita, donde el valor 1 representa a los clientes habituales y el 0 a los no frecuentes. A partir de esta muestra se calculó la proporción muestral y el análisis se realizó bajo un nivel de confianza del 95%.
library(dplyr)
datos <- read.csv("datos_negocios_var_5_ventas.csv")
clientes_frecuentes_tienda_c <- datos %>%
filter(Tienda == "Tienda C") %>%
summarise(Total_Clientes = n(),Clientes_Frecuentes = sum(Clientes_Frecuentes), Clientes_No_Frecuentes = Total_Clientes - Clientes_Frecuentes)
cat("Tamaño de la muestra:", clientes_frecuentes_tienda_c$Total_Clientes, "\n")
## Tamaño de la muestra: 35
cat("Clientes frecuentes en la tienda C (1):", clientes_frecuentes_tienda_c$Clientes_Frecuentes, "\n")
## Clientes frecuentes en la tienda C (1): 20
clientes_frecuentes <- 20
total_clientes <- 35
p_hat <- clientes_frecuentes / total_clientes
z <- 1.96
margen_error <- z * sqrt(p_hat * (1 - p_hat) / total_clientes)
IC_inferior <- p_hat - margen_error
IC_superior <- p_hat + margen_error
cat("Muestra utilizada:", total_clientes, "clientes\n")
## Muestra utilizada: 35 clientes
cat("Proporción muestral:", round(p_hat, 2), "\n")
## Proporción muestral: 0.57
cat("Intervalo de Confianza 95% de la de la población de clientes frecuentes:", round(IC_inferior, 5),"y ", round(IC_superior, 5), "\n")
## Intervalo de Confianza 95% de la de la población de clientes frecuentes: 0.40748 y 0.73538
Conclusion:
Con un nivel de confianza del 95% se estima que el numero de clientes frecuentes esta entre 0.4075 y 0.7354.
#Intervalo de confianza para la diferencia de proporciones
Un analista de negocios de una cadena de tiendas minoristasr está evaluando el numero de clientes que van con frecuencia a la tienda A y tienda C. El analista desea determinar si hay una diferencia significativa entre las dos tiendas.
Calcular un intervalo de confianza al 95% para la diferencia de proporciones poblacionales de clientes frecuentes entre tienda A y tienda C.
library(dplyr)
datos <- read.csv("datos_negocios_var_5_ventas.csv")
datos_A <- filter(datos, Tienda == "Tienda A")
datos_C <- filter(datos, Tienda == "Tienda C")
frecuentes_A <- sum(datos_A$Clientes_Frecuentes)
frecuentes_C <- sum(datos_C$Clientes_Frecuentes)
p_A <- frecuentes_A / nrow(datos_A)
p_C <- frecuentes_C / nrow(datos_C)
diff_proporciones <- p_A - p_C
error_diff_p <- sqrt((p_A * (1 - p_A) / nrow(datos_A)) + (p_C * (1 - p_C) / nrow(datos_C)))
z_critico <- qnorm(0.975)
IC_diff_proporciones <- c(diff_proporciones - z_critico * error_diff_p,
diff_proporciones + z_critico * error_diff_p)
cat("Proporción de clientes Frecuentes en la tienda A:", round(p_A, 2), "\n")
## Proporción de clientes Frecuentes en la tienda A: 0.35
cat("Proporción de clientes Frecuentes en la tienda C:", round(p_C, 2), "\n")
## Proporción de clientes Frecuentes en la tienda C: 0.57
cat("Diferencia de proporciones:", round(diff_proporciones, 5), "\n")
## Diferencia de proporciones: -0.21849
cat("Intervalo de confianza (95%):", round(IC_diff_proporciones[1], 5), "a", round(IC_diff_proporciones[2], 5), "\n")
## Intervalo de confianza (95%): -0.44801 a 0.01104
Conclusion: Con un nivel de confianza del 95% se concluye que no se puede hacer una estimacion debido a que el intervalo de confianza esta entre -0.448 a 0.011
Conclusion de las proporciones: la tienda C tiene una mayor proporción de clientes frecuentes (0.5714) que la tienda A (0.3529), con una diferencia de -0.2185.