1. Análisis exploratorio de la base

library(readr)
datos_negocios_var_5_ventas <- read_csv("~/Angie/datos_negocios_var_5_ventas.csv")
## 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.
View(datos_negocios_var_5_ventas)
datos <- read.csv("~/Angie/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

Resumen estadístico de las variables numéricas

summary(datos)
##     Tienda           Monto_Ventas   Clientes_Frecuentes Productos_Vendidos
##  Length:100         Min.   :10294   Min.   :0.00        Min.   : 61.0     
##  Class :character   1st Qu.:19853   1st Qu.:0.00        1st Qu.:140.5     
##  Mode  :character   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

La media y mediana estan muy cerca lo que significa que la distribucion del Monto de ventas es simetrica. Esto significa que los valores están distribuidos de manera uniforme alrededor del promedio.

Diagrama de caja y bigotes

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 tiene una distribución bastante simétrica, mientras que la tienda A y C tienen una ligera asimetría.

La Tienda B se destaca por tener los montos de venta más altos y una menor variabilidad. La Tienda A muestra la mayor variabilidad, mientras que la Tienda C se sitúa en un punto intermedio.

library(dplyr)
## 
## Adjuntando el paquete: '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("~/Angie/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.

Clonclusion 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

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("lightblue", "lightgreen"), labels = c("No", "Sí")) +
  theme_minimal()

Conclusion: Nos percatamos que la tienda C tiene más clientes frecuentes (20) a comparación con las otras, y tiene 15 clientes no frecuentes lo que suma 35.

En el caso de las demás tienen más clientes no frecuentes, y la proporción de clientes frecuentes no hace que iguale a la tienda C.

Diagrama caja y bigotes

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("lightblue", "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

library(ggplot2)
datos <- read.csv("~/Angie/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: Vemos cómo la tienda C al tener más clientes frecuentes tienen más ventas, es un índice. Todo esto depende de la forma en que las tiendas manejan la relación, promoción, y fidelización de los clientes.

Histograma

library(ggplot2)
datos <- read.csv("~/Angie/datos_negocios_var_5_ventas.csv")
ggplot(datos, aes(x = Monto_Ventas)) +
  geom_histogram(binwidth = 1000, fill = "lightblue", color = "black") +
  labs(title = "Distribución del Monto de Ventas", x = "Monto de Ventas", y = "Frecuencia")

Conclusion: Luego de evaluar la distribución del monto de ventas, encontramos que la frecuencia más alta la tiene el rango entre 40000 a 50000 con una frecuencia de 30 mientras q la segunda con más frecuencia es de 10000 a 20000 con 26 de frecuencia.

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("~/Angie/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("~/Angie/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

La empresa también desea estimar el porcentaje de clientes frecuentes en las tiendas C. Se selecciona una muestra aleatoria de 35 tiendas y se evalúa si los clientes van con frecuencia a la tienda (1 = frecuente, 0 = No frecuente).

Muestra \({n}\): 35 tiendas

Proporcion muestral \(\hat{P}\): Calculada con la muestra

Nivel de confianza: \(95\%\)

library(dplyr)
datos <- read.csv("~/Angie/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, 4),"y ", round(IC_superior, 4), "\n")
## Intervalo de Confianza 95% de la  de la población de clientes frecuentes: 0.4075 y  0.7354

Conclusion: Con un nivel de confianza del 95% no se puede 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.

Muestra en Tienda A: \(n_A\) = 34

Muestra en Tienda C: \(n_C\) = 35

Proporción muestral en Tienda A: \(\hat{P_A}\)

Proporción muestral en Tienda C: \(\hat{P_C}\)

Nivel de confianza: \(95\%\)

library(dplyr)

datos <- read.csv("~/Angie/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, 4), "\n")
## Diferencia de proporciones: -0.2185
cat("Intervalo de confianza (95%):", round(IC_diff_proporciones[1], 4), "a", round(IC_diff_proporciones[2], 4), "\n")
## Intervalo de confianza (95%): -0.448 a 0.011

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

PARTE 2: TALLER 3

Un analista financiero afirma que el monto promedio de ventas mensuales en la Tienda C es mayor o igual a $32,000. Para verificarlo, se toma una muestra de 35 registros de ventas de esta tienda, obteniendo los siguientes resultados:

Datos:

Muestra \(n\): 35

({X}): 29964.89

Desviacion estandar \(o\): 10000

Nivel de significancia α: 0.05

\(u\): 32000

Formulacion de la hipotesis

Hipótesis Nula \(H_0\): El monto promedio de ventas en la Tienda C es mayor o igual a $32000.

Hipótesis Alternativa \(H_1\): El monto promedio de ventas en la Tienda C menor a $32000.

Elementos

media_muestral <- 29964.89
mu0 <- 32000          
sigma <- 10000       
n <- 35               
alpha <- 0.05         

z <- (media_muestral - mu0) / (sigma / sqrt(n))
cat("Estadístico Z:", round(z, 2), "\n")
## Estadístico Z: -1.2
z_critico <- qnorm(alpha)  
cat("Valor crítico (Z_α):", round(z_critico, 2),"\n")
## Valor crítico (Z_α): -1.64

Verificacion

Regla de decision

Si Z ≤ -Zα; entonces, se Rechaza \(H_0\); de lo contrario, se acepta \(H_0\)

if (z <= z_critico) {cat("Decisión: Rechazar H0 (Z ≤ Zα)\n")
} else 
    {cat("Decisión: No rechazar H0 (Z > Zα)\n")}
## Decisión: No rechazar H0 (Z > Zα)

Como z: -1.2 y Zα:-1.64, entonces z > \(z_α\) por lo tanto no se rechaza \(H_0\)

Grafica

media_muestral <- 29964.89
mu0 <- 32000
sigma <- 10000
n <- 35
alpha <- 0.05
z <- (media_muestral - mu0) / (sigma / sqrt(n))  
z_critico <- qnorm(alpha)                        


curve(dnorm(x), from = -3, to = 3, main = "Prueba de Hipótesis Unilateral Izquierda",
      xlab = "Z", ylab = "Densidad", col = "black", lwd = 2)

abline(v = z_critico, col = "red", lty = 2, lwd = 2)  
abline(v = z, col = "blue", lty = 2, lwd = 2)        

legend("topright", 
       legend = c(sprintf("Z crítico (α=0.05) = %.3f", z_critico),
                  sprintf("Z  = %.3f", z)),
       col = c("red", "blue"), lty = 2, lwd = 2)

x_rechazo <- seq(-3, z_critico, length.out = 100)
y_rechazo <- dnorm(x_rechazo)
polygon(c(x_rechazo, rev(x_rechazo)), c(rep(0, 100), rev(y_rechazo)), 
        col = rgb(1, 0, 0, 0.3), border = NA)

Si z cae en zona de rechazo, se rechaza \(H_0\). Como z no cayo en la zona de rechazo entonces no se rechaza \(H_0\)

Valor P

Si P valor es ≤ α se rechaza \(H_0\)

z <- -1.20

valor_p <- 1 - pnorm(z)

cat("Valor p (unilateral derecha):", valor_p, "\n")
## Valor p (unilateral derecha): 0.8849303

si P: 0.88 y α: 0.05 no se rechaza H_0

Conclusion: podemos concluir que el monto de ventas de la tienda c podria ser mayor o igual a $32,000 debido a que la \(H_0\) (\(u\)≥ 32000) no se rechazo.

Prueba de Hipótesis para una Proporcion

La Tienda C tiene 35 registros. Se ha observado que 20 de ellos tienen Clientes Frecuentes. Queremos saber si la proporción de clientes frecuentes en la Tienda C es diferente del promedio general esperado del 45%.

Datos

Muestra \({n}\): 35 tiendas

Proporcion muestral \(\hat{P}\): 0.57

Nivel de significancia α: 0.05

\(P_0\): 0.45

Formulacion de la hipotesis

Hipótesis Nula \(H_0\): p = 0.45 la proporción de clientes frecuentes en Tienda C es igual 45%

Hipótesis Alternativa \(H_1\): p ≠ 0.45 la proporción de clientes frecuentes en Tienda C es diferente a 45%

Elementos

n <- 35                      
p_muestral <- 0.57           
p_0 <- 0.45                  
alpha <- 0.05                

error_estandar <- sqrt((p_0 * (1 - p_0)) / n)
z <- (p_muestral - p_0) / error_estandar

z_critico <- qnorm(1- alpha/2)

cat("Valor Z:", round(z,2), "\n")
## Valor Z: 1.43
    cat("Z crítico:", round(z_critico,2), "\n")
## Z crítico: 1.96

Verificacion

Regla de decisiones

Si Z ≥ Zα/2 o si Z ≤ -Zα/2; entonces, se Rechaza \(H_0\); de lo contrario, se acepta \(H_0\)

decision <- ifelse(abs(z) >= z_critico, "Rechazar H_0", "No Rechazar H0")
cat("Decisión:", decision, "\n")
## Decisión: No Rechazar H0

como es una prueba bilateral se toma z critico como un valor absoluto por ende z critico es mayor a z normal y por eso no se rechaza \(H_0\)

Grafico

Si z cae en zona de rechazo, se rechaza \(H_0\).

library(ggplot2)


z_vals <- seq(-4, 4, length.out = 1000)
densidad <- dnorm(z_vals)
df <- data.frame(z = z_vals, densidad = densidad)


z_obtenido <- 1.43
z_critico <- 1.96


ggplot(df, aes(x = z, y = densidad)) +
 
  geom_line(color = "black", size = 1.2) +
  

  geom_area(data = subset(df, z > z_critico), aes(x = z, y = densidad), 
            fill = "red", alpha = 0.3) +
  geom_area(data = subset(df, z < -z_critico), aes(x = z, y = densidad), 
            fill = "red", alpha = 0.3) +
  
  geom_vline(xintercept = z_obtenido, color = "blue", linetype = "dashed", size = 1.2) +
  
  geom_vline(xintercept = c(-z_critico, z_critico), color = "red", linetype = "dotted", size = 1) +
  
  labs(
    title = "Distribución Normal Estándar",
    subtitle = paste("Z obtenido =", z_obtenido, "| Z crítico = ±", z_critico),
    x = "Valor Z",
    y = "Densidad"
  ) +
  
  theme_minimal() +
  theme(
    plot.title = element_text(size = 16, face = "bold", hjust = 0.5),
    plot.subtitle = element_text(size = 13, hjust = 0.5),
    axis.title = element_text(size = 13),
    axis.text = element_text(size = 11)
  )
## 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.

Como z no cae en la zona de rechazo, entonces no se rechaza \(H_0\)

P valor

Si P valor es ≤ α se rechaza \(H_0\)

p_valor <- 2 * (1 - pnorm(abs(z)))

cat("Valor p:", round(p_valor,2), "\n")
## Valor p: 0.15

como p: 0.15 y α: 0.05, entonces no se rechaza \(H_0\)

Conclusion

Debido a que la hipotesis nula (\(H_0\)=0.45) no se rechaza podeos concluir que no hay suficiente evidencia estadística para afirmar que la proporción de clientes frecuentes en la Tienda C sea diferente al 45%.