#Contexto Análisis de recibos de Luz de una casa en California en 2006
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
library(readxl)
library(ggplot2)
poblacion <- read_csv("poblacion.csv")
muestra <- filter(poblacion, Mes %in% c("Enero", "Marzo", "Mayo", "Septiembre", "Diciembre"))
N <- length(poblacion$Pago)
N
## [1] 12
#Hay 12 observaciones en población
n <- length(muestra$Pago)
n
## [1] 5
#Hay 5 observaciones en población
Permiten conocer el valor al que tiende el conjunto de datos.
Valor que se obtiene al sumar todos los datos y dividirlos entre la cantidad total de datos
media_poblacional <- mean(poblacion$Pago)
media_poblacional
## [1] 245.0167
media_muestral <- mean(muestra$Pago)
media_muestral
## [1] 249.432
Valor que ocupa el lugar central de todos los datos cuando estos estan ordenados de menor a mayor.
mediana_poblacional <- median(poblacion$Pago)
mediana_poblacional
## [1] 228.63
mediana_muestral <- median(muestra$Pago)
mediana_muestral
## [1] 230.46
summary(poblacion)
## Mes Pago
## Length:12 Min. :162.6
## Class :character 1st Qu.:203.5
## Mode :character Median :228.6
## Mean :245.0
## 3rd Qu.:293.5
## Max. :343.5
summary(muestra)
## Mes Pago
## Length:5 Min. :187.2
## Class :character 1st Qu.:219.4
## Mode :character Median :230.5
## Mean :249.4
## 3rd Qu.:266.6
## Max. :343.5
Valor que aparece con mayor frecuencia en un conjunto de moda
moda <- function(x){
ux <- unique(x)
ux[which.max(tabulate(match(x, ux)))]
}
#Nota: si ninguno de los datos se repite, la funcion coloca el primer valor en lugar de marcar error
moda_poblacional <- moda(poblacion$Pago)
moda_poblacional
## [1] 266.63
moda_muestral <- moda(muestra$Pago)
moda_muestral
## [1] 266.63
mtc_poblacional <- c(media_poblacional, mediana_poblacional, moda_poblacional)
names(mtc_poblacional) <- c("media_poblacional", "mediana_poblacional", "moda_poblacional")
mtc_poblacional <- sort(mtc_poblacional)
mtc_poblacional
## mediana_poblacional media_poblacional moda_poblacional
## 228.6300 245.0167 266.6300
hist(poblacion$Pago)
#La población tiene sesgo positivo
Miden que tan esparcidos se encuentran los datos
Intervalo o diferencia entre el valor maximo y el minimo de un conjunto de datos
rango_poblacional <- max(poblacion$Pago) - min(poblacion$Pago)
rango_poblacional
## [1] 180.86
#La función range devuelve el valor minimo y maximo, pero no su diferencia, para esto se tiene que hacer el claculo de arriba.
rango_muestral <- max(muestra$Pago) - min(muestra$Pago)
rango_muestral
## [1] 156.34
Promedio elevado al cuadrado de las desviaciones individuales de cada observación con respecto a la media de una distribución, Si es población, se divide enre N; si es muestra, se divide entre n-1
varianza_poblacional <- var(poblacion$Pago)*(N-1)/N
varianza_poblacional
## [1] 3614.659
varianza_muestral <- var(muestra$Pago)
varianza_muestral
## [1] 3570.905
Raíz cuadrada de la varianza
desv.est_poblacional <- sqrt(varianza_poblacional)
desv.est_poblacional
## [1] 60.12203
desv.est_muestral <- sqrt(varianza_muestral)
desv.est_muestral
## [1] 59.75705
Una empresa con 5 tiendas de abarrotes en distintas ciudades de México
#Importando base de datos
abarrotes <- read_xlsx("Abarrotes_Ventas.xlsx")
summary(abarrotes)
## vcClaveTienda DescGiro Codigo Barras PLU
## Length:200620 Length:200620 Min. :8.347e+05 Mode:logical
## Class :character Class :character 1st Qu.:7.501e+12 TRUE:1437
## Mode :character Mode :character Median :7.501e+12 NA's:199183
## Mean :5.950e+12
## 3rd Qu.:7.501e+12
## Max. :1.750e+13
## Fecha Hora
## Min. :2020-05-01 00:00:31.08 Min. :1899-12-31 00:00:00.00
## 1st Qu.:2020-06-06 13:24:49.08 1st Qu.:1899-12-31 13:12:42.75
## Median :2020-07-11 14:10:21.46 Median :1899-12-31 17:35:59.00
## Mean :2020-07-19 15:19:40.65 Mean :1899-12-31 16:43:52.05
## 3rd Qu.:2020-08-29 22:07:47.33 3rd Qu.:1899-12-31 20:47:06.00
## Max. :2020-11-11 23:53:47.73 Max. :1899-12-31 23:59:59.00
## Marca Fabricante Producto Precio
## Length:200620 Length:200620 Length:200620 Min. :-147.00
## Class :character Class :character Class :character 1st Qu.: 11.00
## Mode :character Mode :character Mode :character Median : 16.00
## Mean : 19.42
## 3rd Qu.: 25.00
## Max. :1000.00
## Ult.Costo Unidades F.Ticket NombreDepartamento
## Min. : 0.38 Min. : 0.200 Min. : 1 Length:200620
## 1st Qu.: 8.46 1st Qu.: 1.000 1st Qu.: 33967 Class :character
## Median : 12.31 Median : 1.000 Median :105996 Mode :character
## Mean : 15.31 Mean : 1.262 Mean :193994
## 3rd Qu.: 19.23 3rd Qu.: 1.000 3rd Qu.:383008
## Max. :769.23 Max. :96.000 Max. :450040
## NombreFamilia NombreCategoria Estado Mts 2
## Length:200620 Length:200620 Length:200620 Min. :47.0
## Class :character Class :character Class :character 1st Qu.:53.0
## Mode :character Mode :character Mode :character Median :60.0
## Mean :56.6
## 3rd Qu.:60.0
## Max. :62.0
## Tipo ubicación Giro Hora inicio
## Length:200620 Length:200620 Min. :1899-12-31 07:00:00.00
## Class :character Class :character 1st Qu.:1899-12-31 07:00:00.00
## Mode :character Mode :character Median :1899-12-31 08:00:00.00
## Mean :1899-12-31 07:35:49.71
## 3rd Qu.:1899-12-31 08:00:00.00
## Max. :1899-12-31 09:00:00.00
## Hora cierre
## Min. :1899-12-31 21:00:00.00
## 1st Qu.:1899-12-31 22:00:00.00
## Median :1899-12-31 22:00:00.00
## Mean :1899-12-31 22:23:11.42
## 3rd Qu.:1899-12-31 23:00:00.00
## Max. :1899-12-31 23:00:00.00
count(abarrotes, vcClaveTienda, sort= TRUE)
## # A tibble: 5 × 2
## vcClaveTienda n
## <chr> <int>
## 1 MX001 96464
## 2 MX004 83455
## 3 MX005 10021
## 4 MX002 6629
## 5 MX003 4051
count(abarrotes, DescGiro, sort= TRUE)
## # A tibble: 3 × 2
## DescGiro n
## <chr> <int>
## 1 Abarrotes 100515
## 2 Carnicería 83455
## 3 Depósito 16650
count(abarrotes, Marca, sort= TRUE)
## # A tibble: 540 × 2
## Marca n
## <chr> <int>
## 1 COCA COLA 18686
## 2 PEPSI 15966
## 3 TECATE 11674
## 4 BIMBO 8316
## 5 LALA 5866
## 6 MARINELA 3696
## 7 DORITOS 3142
## 8 CHEETOS 3130
## 9 NUTRI LECHE 3127
## 10 MARLBORO 2579
## # ℹ 530 more rows
count(abarrotes, Fabricante, sort= TRUE)
## # A tibble: 241 × 2
## Fabricante n
## <chr> <int>
## 1 COCA COLA 27519
## 2 PEPSI-COLA MEXICANA 22415
## 3 SABRITAS 14296
## 4 CERVECERIA CUAUHTEMOC MOCTEZUMA 13681
## 5 GRUPO BIMBO 13077
## 6 SIGMA ALIMENTOS 8014
## 7 GRUPO INDUSTRIAL LALA 5868
## 8 GRUPO GAMESA 5527
## 9 NESTLE 3698
## 10 JUGOS DEL VALLE S.A. DE C.V. 3581
## # ℹ 231 more rows
count(abarrotes, Producto, sort= TRUE)
## # A tibble: 3,404 × 2
## Producto n
## <chr> <int>
## 1 Pepsi N.R. 1.5L 5108
## 2 Coca Cola Retornable 2.5L 3771
## 3 Caguamon Tecate Light 1.2Lt 3471
## 4 Pepsi N. R. 2.5L 2899
## 5 Cerveza Tecate Light 340Ml 2619
## 6 Cerveza Tecate Light 16Oz 2315
## 7 Coca Cola Retornable 1.5L 2124
## 8 Pepsi N.R. 3L 1832
## 9 Coca Cola Retornable 500Ml 1659
## 10 PEPSI N.R. 1.5L 1631
## # ℹ 3,394 more rows
count(abarrotes, NombreDepartamento, sort= TRUE)
## # A tibble: 9 × 2
## NombreDepartamento n
## <chr> <int>
## 1 Abarrotes 198274
## 2 Bebes e Infantiles 1483
## 3 Ferretería 377
## 4 Farmacia 255
## 5 Vinos y Licores 104
## 6 Papelería 74
## 7 Mercería 44
## 8 Productos a Eliminar 8
## 9 Carnes 1
count(abarrotes, NombreFamilia, sort= TRUE)
## # A tibble: 51 × 2
## NombreFamilia n
## <chr> <int>
## 1 Bebidas 64917
## 2 Botanas 21583
## 3 Lacteos y Refrigerados 17657
## 4 Cerveza 14017
## 5 Pan y Tortilla 10501
## 6 Limpieza del Hogar 8723
## 7 Galletas 7487
## 8 Cigarros 6817
## 9 Cuidado Personal 5433
## 10 Salsas y Sazonadores 5320
## # ℹ 41 more rows
count(abarrotes, NombreCategoria, sort= TRUE)
## # A tibble: 174 × 2
## NombreCategoria n
## <chr> <int>
## 1 Refrescos Plástico (N.R.) 32861
## 2 Refrescos Retornables 13880
## 3 Frituras 11082
## 4 Lata 8150
## 5 Leche 7053
## 6 Cajetilla 6329
## 7 Botella 5867
## 8 Productos sin Categoria 5455
## 9 Papas Fritas 5344
## 10 Jugos y Néctares 5295
## # ℹ 164 more rows
count(abarrotes, Estado, sort= TRUE)
## # A tibble: 5 × 2
## Estado n
## <chr> <int>
## 1 Nuevo León 96464
## 2 Sinaloa 83455
## 3 Quintana Roo 10021
## 4 Jalisco 6629
## 5 Chiapas 4051
count(abarrotes, "Tipo ubicación", sort= TRUE)
## # A tibble: 1 × 2
## `"Tipo ubicación"` n
## <chr> <int>
## 1 Tipo ubicación 200620
count(abarrotes, Giro, sort= TRUE)
## # A tibble: 2 × 2
## Giro n
## <chr> <int>
## 1 Abarrotes 183970
## 2 Mini súper 16650
count(abarrotes, Fecha, sort= TRUE)
## # A tibble: 131,933 × 2
## Fecha n
## <dttm> <int>
## 1 2020-05-26 21:52:47 23
## 2 2020-07-16 09:44:01 20
## 3 2020-06-02 19:26:22 19
## 4 2020-06-07 12:11:25 19
## 5 2020-06-20 22:00:56 18
## 6 2020-08-22 14:00:07 18
## 7 2020-05-19 14:55:37 17
## 8 2020-05-31 15:12:58 17
## 9 2020-06-20 16:21:08 17
## 10 2020-08-17 21:30:06 17
## # ℹ 131,923 more rows
count(abarrotes, Hora, sort= TRUE)
## # A tibble: 52,145 × 2
## Hora n
## <dttm> <int>
## 1 1899-12-31 21:52:47 30
## 2 1899-12-31 20:59:07 29
## 3 1899-12-31 12:11:26 28
## 4 1899-12-31 12:47:09 26
## 5 1899-12-31 14:55:38 26
## 6 1899-12-31 21:26:54 26
## 7 1899-12-31 21:30:07 25
## 8 1899-12-31 22:03:53 24
## 9 1899-12-31 18:46:35 23
## 10 1899-12-31 19:28:26 23
## # ℹ 52,135 more rows
count(abarrotes, "Mts 2", sort= TRUE)
## # A tibble: 1 × 2
## `"Mts 2"` n
## <chr> <int>
## 1 Mts 2 200620
table(abarrotes$NombreDepartamento)
##
## Abarrotes Bebes e Infantiles Carnes
## 198274 1483 1
## Farmacia Ferretería Mercería
## 255 377 44
## Papelería Productos a Eliminar Vinos y Licores
## 74 8 104
tabla1<- tabyl(abarrotes, vcClaveTienda, NombreDepartamento)
tabla1
## vcClaveTienda Abarrotes Bebes e Infantiles Carnes Farmacia Ferretería Mercería
## MX001 95410 515 1 147 245 28
## MX002 6590 21 0 4 10 0
## MX003 4026 15 0 2 8 0
## MX004 82234 932 0 102 114 16
## MX005 10014 0 0 0 0 0
## Papelería Productos a Eliminar Vinos y Licores
## 35 3 80
## 0 0 4
## 0 0 0
## 32 5 20
## 7 0 0
abarrotes$Subtotal <- abarrotes$Precio*abarrotes$Unidades
ggplot(abarrotes, aes(x= vcClaveTienda, y=Subtotal)) + geom_bar(stat="identity")
library(qcc)
## Package 'qcc' version 2.7
## Type 'citation("qcc")' for citing this R package in publications.
tabla1 <- subset(tabla1, select= c(vcClaveTienda, Abarrotes))
pareto.chart(tabla1$Abarrotes)
##
## Pareto chart analysis for tabla1$Abarrotes
## Frequency Cum.Freq. Percentage Cum.Percent.
## A 9.541000e+04 9.541000e+04 4.812028e+01 4.812028e+01
## D 8.223400e+04 1.776440e+05 4.147493e+01 8.959521e+01
## E 1.001400e+04 1.876580e+05 5.050587e+00 9.464579e+01
## B 6.590000e+03 1.942480e+05 3.323683e+00 9.796948e+01
## C 4.026000e+03 1.982740e+05 2.030523e+00 1.000000e+02
plot(abarrotes$Precio, abarrotes$Unidades, main="Relación entre precio y unidades", xlab="Precio", ylab="Unidades")
boxplot(abarrotes$Precio, horizontal= TRUE)
boxplot(abarrotes$Unidades, horizontal= TRUE)