Estadística Descriptiva

Contexto

Recibos de luz de una familia en California en el 2006.

Librerías

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.2     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggplot2)
library(foreign)
library(readxl)

Importar la base de datos

poblacion <- read_excel("poblacion.xlsx")
muestra <- read_excel("muestra.xlsx")

Ejercicio 3

  1. Tamaño de la población
N <- length(poblacion$PAGO)

n <- length(muestra$PAGO)

Medidas de Tendencia Central

Permiten conocer el valor al que tiende el conjunto de datos

Media o promedio

Valor que se obtiene al sumar todos los datos y dividirlos entre la cantidad total de datos.

Media Poblacional

media_poblacional <- mean(poblacion$PAGO)

Media Muestral

media_muestral <- mean(muestra$PAGO)

Mediana

Valor que ocupa el lugar central de todos los datos cuando estos están ordenados de menor a mayor

Mediana Poblacional

mediana_poblacional <- median(poblacion$PAGO)

Mediana Muestral

mediana_muestral <- median(muestra$PAGO)

De igual manera se puede ocupar la función summary para estos cálculos

summary(poblacion)
##      MES                 PAGO           X - m         (X - m)*2     
##  Length:12          Min.   :162.6   Min.   :162.6   Min.   : 26452  
##  Class :character   1st Qu.:203.5   1st Qu.:203.5   1st Qu.: 41515  
##  Mode  :character   Median :228.6   Median :228.6   Median : 52275  
##                     Mean   :245.0   Mean   :245.0   Mean   : 63648  
##                     3rd Qu.:293.5   3rd Qu.:293.5   3rd Qu.: 86208  
##                     Max.   :343.5   Max.   :343.5   Max.   :117992
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

Moda

Valor que se aparece con mayor frecuencia en un conjunto de datos.

Función para calcular la moda

moda<- function(x){
ux <- unique(x)
ux[which.max(tabulate(match(x, ux)))]
}

Nota: Si ninguno de los datos se repite, la función coloca el primer valor en lugar de marcar error.

Moda Poblacional

moda_poblacional <- moda(poblacion$PAGO)
moda_poblacional
## [1] 343.5

Moda Muestral

moda_muestral <- moda(muestra$PAGO)
moda_muestral
## [1] 266.63

Relación entre la media, mediana y moda

Si la media=mnediana=moda, los datos tienen una distribución simétrica. Si la media < mediana < moda, los datos tienen un sesgo negativo. Si la moda < mediana < media, los datos tienen un Sesgo positivo.

mtc_poblacional <- c(media_poblacional,mediana_poblacional,moda_poblacional)
names(mtc_poblacional) <- c("media_poblacional","mediana_poblacional","moda_poblacional")

mtc_poblacional <- sort
mtc_poblacional
## function (x, decreasing = FALSE, ...) 
## {
##     if (!is.logical(decreasing) || length(decreasing) != 1L) 
##         stop("'decreasing' must be a length-1 logical vector.\nDid you intend to set 'partial'?")
##     UseMethod("sort")
## }
## <bytecode: 0x0000017791f94b28>
## <environment: namespace:base>

La población tiene un sesgo positivo

hist(poblacion$PAGO)

Medidas de dispersión

Miden que tan esparcidos se encuentran los datos

Rango

Intervalo o diferencia entre el valor máximo y el mínimo de un conjunto

Rango Poblacional

rangopob <- max(poblacion$PAGO)-min(poblacion$PAGO)
rangopob
## [1] 180.86

La función range() devuelve el valor max. y min. pero no su diferencia.

Rango Muestral

rangomues <- max(muestra$PAGO)-min(muestra$PAGO)
rangomues
## [1] 156.34

Varianza

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 entre N, Si es muestra, se divide entre n-1.

Varianza Poblacional

varpob <- var(poblacion$PAGO)*(N-1/N)
varpob
## [1] 46990.57

Varianza Muestral

varmues <- var(muestra$PAGO)
varmues
## [1] 3570.905

Desviación Estándar

La raíz cuadrada de la varianza

Desviación Estándar Poblacional (Sigma)

sd_pob <- sqrt(varpob)
sd_pob
## [1] 216.7731

Desviación Estándar Muestral (S)

sd_muestra <- sqrt(varmues)
sd_muestra
## [1] 59.75705

Ejercicio 3.1

A medida que los consumidores estadounidenses tienen más cuidado con los alimentos que consumen, los procesadores de alimentos, tratan de ser competitivos, al evitar cantidades excesivas de grasas, colesterol y sodio en los alimentos que venden.

Los datos siguientes son las cantidades de sodio por rebanada (mg) para cada una de 8 marcas de queso. (Construya una gráfica de caja para los datos y busque resultados atípicos).

data_abarrotes <- read_excel("abarrotes.xlsx")

Entender la base de datos

summary(data_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.:383009                     
##  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_ubicacion         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

Se usa la función count para saber información cuantitativa de información cualitativa

count(data_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(data_abarrotes,DescGiro,sort=TRUE)
## # A tibble: 3 × 2
##   DescGiro        n
##   <chr>       <int>
## 1 Abarrotes  100515
## 2 Carnicería  83455
## 3 Depósito    16650
count(data_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(data_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(data_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(data_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(data_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(data_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(data_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(data_abarrotes,Mts_2,sort=TRUE)
## # A tibble: 5 × 2
##   Mts_2     n
##   <dbl> <int>
## 1    60 96464
## 2    53 83455
## 3    58 10021
## 4    47  6629
## 5    62  4051
count(data_abarrotes,Tipo_ubicacion,sort=TRUE)
## # A tibble: 3 × 2
##   Tipo_ubicacion      n
##   <chr>           <int>
## 1 Esquina        189940
## 2 Rotonda          6629
## 3 Entre calles     4051
count(data_abarrotes,Giro,sort=TRUE)
## # A tibble: 2 × 2
##   Giro            n
##   <chr>       <int>
## 1 Abarrotes  183970
## 2 Mini súper  16650
count(data_abarrotes,Hora_inicio,sort=TRUE)
## # A tibble: 3 × 2
##   Hora_inicio              n
##   <dttm>               <int>
## 1 1899-12-31 08:00:00 106485
## 2 1899-12-31 07:00:00  87506
## 3 1899-12-31 09:00:00   6629
count(data_abarrotes,Hora_cierre,sort=TRUE)
## # A tibble: 3 × 2
##   Hora_cierre              n
##   <dttm>               <int>
## 1 1899-12-31 22:00:00 103093
## 2 1899-12-31 23:00:00  87506
## 3 1899-12-31 21:00:00  10021

Tabla de Frecuencia

table(data_abarrotes$Estado)
## 
##      Chiapas      Jalisco   Nuevo León Quintana Roo      Sinaloa 
##         4051         6629        96464        10021        83455
table(data_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

Tablas Cruzadas

library(janitor)
## 
## Attaching package: 'janitor'
## The following objects are masked from 'package:stats':
## 
##     chisq.test, fisher.test
tabla1 <- tabyl(data_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

Gráficos de Datos Cualitativos y Cuantitativos

Gráfico de barras

data_abarrotes$Subtotal <- data_abarrotes$Precio*data_abarrotes$Unidades
ggplot(data=data_abarrotes,aes(x=vcClaveTienda,y=Subtotal))+ geom_bar(stat="identity")+
    scale_fill_manual()

### Diagrama de Pareto

library(qcc)
## Package 'qcc' version 2.7
## Type 'citation("qcc")' for citing this R package in publications.
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

Gráficos de Puntos o Líneas

plot(data_abarrotes$Precio,data_abarrotes$unidades,main="Relación entre Precio y Unidades", xlab="Precio",ylab="Unidades")

Gráfica de Cajas y Bigotes

boxplot(data_abarrotes$Precio,horizontal=TRUE)

boxplot(data_abarrotes$Unidades,horizontal=TRUE)

Propuestas

  1. Encontrar las prácticas diferenciadoras de la tienda de Nuevo León para poder replicarlas en las demás tiendas. En caso de no encontrar relación entre alguna práctica especifica y el rendimiento de la tienda, realizar estudios más a fondo como características de proudctos, clientes, zonas, etc,para así poder encontrar la variable que afecta directamente a las visitas y las ventas de las tienads.

  2. Dedicarse enteramente a los abarrotes.