Una empresa vendedora de productos de bebidas en Guadalajara, y desea ver como se han comportado las ventas en los años 2016-2019, y también desea ver como serían las ventas en el 2020 de acuerdo con los datos de estos años.
#file.choose()
bd <- read.csv("/Users/eduardogarza/Desktop/S7/BootcampProgramaciónST/Datos Arca Continental Original.csv")## ID Año Territorio Sub.Territorio
## Min. : 1 Min. :2016 Length:466509 Length:466509
## 1st Qu.:116628 1st Qu.:2017 Class :character Class :character
## Median :233255 Median :2018 Mode :character Mode :character
## Mean :233255 Mean :2018
## 3rd Qu.:349882 3rd Qu.:2019
## Max. :466509 Max. :2019
## CEDI Cliente Nombre Tamaño.Cte.Industria
## Length:466509 Length:466509 Length:466509 Length:466509
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## Segmento.Det Marca Presentacion Tamaño
## Length:466509 Length:466509 Length:466509 Length:466509
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## Retornable_NR Enero Febrero Marzo
## Length:466509 Length:466509 Length:466509 Length:466509
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## Abril Mayo Junio Julio
## Length:466509 Length:466509 Length:466509 Length:466509
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## Agosto Septiembre Octubre Noviembre
## Length:466509 Length:466509 Length:466509 Length:466509
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## Diciembre
## Length:466509
## Class :character
## Mode :character
##
##
##
##
## Attaching package: 'janitor'
## The following objects are masked from 'package:stats':
##
## chisq.test, fisher.test
##
## 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
## Territorio n
## 1 Guadalajara 466508
## 2 Territorio 1
#count(bd,Sub.Territorio,sort=TRUE)
#count(bd,CEDI,sort=TRUE)
#count(bd,Cliente,sort=TRUE)
#count(bd,Nombre,sort=TRUE)
#count(bd,Tamaño.Cte.Industria,sort=TRUE)
#count(bd,Segmento.Det,sort=TRUE)
#count(bd,Marca,sort=TRUE)
#count(bd,Presentacion,sort=TRUE)
#count(bd,Tamaño,sort=TRUE)
#count(bd,Retornable_NR,sort=TRUE)
#count(bd,Enero,sort=TRUE)
#count(bd,Febrero,sort=TRUE)
#count(bd,Marzo,sort=TRUE)
#count(bd,Abril,sort=TRUE)
#count(bd,Mayo,sort=TRUE)
#count(bd,Junio,sort=TRUE)
##count(bd,Julio,sort=TRUE)
#count(bd,Agosto,sort=TRUE)
#count(bd,Septiembre,sort=TRUE)
#count(bd,Octubre,sort=TRUE)
#count(bd,Noviembre,sort=TRUE)
#count(bd,Diciembre,sort=TRUE)
# Existe un renglon duplicado en el 184065, y hay que eliminarlo.
bd<-bd[-184065,]
bd$Enero <- as.integer(bd$Enero)## Warning: NAs introduced by coercion
## Warning: NAs introduced by coercion
## Warning: NAs introduced by coercion
## Warning: NAs introduced by coercion
## Warning: NAs introduced by coercion
## Warning: NAs introduced by coercion
## Warning: NAs introduced by coercion
## Warning: NAs introduced by coercion
## Warning: NAs introduced by coercion
## Warning: NAs introduced by coercion
## Warning: NAs introduced by coercion
## Warning: NAs introduced by coercion
## 'data.frame': 466508 obs. of 25 variables:
## $ ID : int 1 2 3 4 5 6 7 8 9 10 ...
## $ Año : int 2016 2016 2016 2016 2016 2016 2016 2016 2016 2016 ...
## $ Territorio : chr "Guadalajara" "Guadalajara" "Guadalajara" "Guadalajara" ...
## $ Sub.Territorio : chr "Belenes" "Belenes" "Belenes" "Belenes" ...
## $ CEDI : chr "Suc. Belenes" "Suc. Belenes" "Suc. Belenes" "Suc. Belenes" ...
## $ Cliente : chr "77737" "77737" "77737" "77737" ...
## $ Nombre : chr "ABARR" "ABARR" "ABARR" "ABARR" ...
## $ Tamaño.Cte.Industria: chr "Extra Grande" "Extra Grande" "Extra Grande" "Extra Grande" ...
## $ Segmento.Det : chr "Agua Mineral" "Agua Purificada" "Agua Purificada" "Agua Saborizada" ...
## $ Marca : chr "Topo Chico A.M." "Ciel Agua Purificada" "Ciel Agua Purificada" "Ciel Exprim" ...
## $ Presentacion : chr "600 ml NR" "1 Ltro. N.R." "1.5 Lts. NR" "600 ml NR" ...
## $ Tamaño : chr "Individual" "Individual" "Individual" "Individual" ...
## $ Retornable_NR : chr "No Retornable" "No Retornable" "No Retornable" "No Retornable" ...
## $ Enero : int NA NA NA NA NA NA 1 NA 3 NA ...
## $ Febrero : int NA 2 NA NA NA NA NA 1 3 NA ...
## $ Marzo : int NA 8 3 NA NA 1 NA NA 4 NA ...
## $ Abril : int NA 4 6 NA NA NA NA 1 4 NA ...
## $ Mayo : int NA 4 3 NA NA NA 0 NA 4 NA ...
## $ Junio : int NA 2 3 NA NA NA NA 1 4 0 ...
## $ Julio : int NA 2 3 NA NA NA 0 NA 4 NA ...
## $ Agosto : int NA 2 3 NA NA NA NA 1 7 NA ...
## $ Septiembre : int NA 2 3 NA NA NA NA 1 4 NA ...
## $ Octubre : int NA 2 3 NA NA NA 0 NA 3 NA ...
## $ Noviembre : int NA 4 3 NA 0 NA NA NA 1 NA ...
## $ Diciembre : int 1 2 3 1 NA NA NA NA 3 NA ...
# Si hay NA's
# Hay cantidades nega
# Identificar cuantos NA's hay y reemplazar por ceros.
sum(is.na(bd))## [1] 3149791
## ID Año Territorio Sub.Territorio
## Min. : 1 Min. :2016 Length:466508 Length:466508
## 1st Qu.:116628 1st Qu.:2017 Class :character Class :character
## Median :233256 Median :2018 Mode :character Mode :character
## Mean :233255 Mean :2018
## 3rd Qu.:349882 3rd Qu.:2019
## Max. :466509 Max. :2019
## CEDI Cliente Nombre Tamaño.Cte.Industria
## Length:466508 Length:466508 Length:466508 Length:466508
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## Segmento.Det Marca Presentacion Tamaño
## Length:466508 Length:466508 Length:466508 Length:466508
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## Retornable_NR Enero Febrero Marzo
## Length:466508 Min. :-19.00 Min. :-11.000 Min. :-32.000
## Class :character 1st Qu.: 0.00 1st Qu.: 0.000 1st Qu.: 0.000
## Mode :character Median : 0.00 Median : 0.000 Median : 0.000
## Mean : 4.69 Mean : 4.581 Mean : 5.401
## 3rd Qu.: 2.00 3rd Qu.: 2.000 3rd Qu.: 3.000
## Max. :999.00 Max. :986.000 Max. :986.000
## Abril Mayo Junio Julio
## Min. :-70.000 Min. :-106.000 Min. :-211.0 Min. :-60.000
## 1st Qu.: 0.000 1st Qu.: 0.000 1st Qu.: 0.0 1st Qu.: 0.000
## Median : 0.000 Median : 0.000 Median : 0.0 Median : 0.000
## Mean : 5.519 Mean : 6.117 Mean : 5.9 Mean : 5.583
## 3rd Qu.: 3.000 3rd Qu.: 3.000 3rd Qu.: 3.0 3rd Qu.: 3.000
## Max. :993.000 Max. : 991.000 Max. : 998.0 Max. :993.000
## Agosto Septiembre Octubre Noviembre
## Min. :-211.000 Min. :-527.000 Min. :-38.000 Min. :-25.000
## 1st Qu.: 0.000 1st Qu.: 0.000 1st Qu.: 0.000 1st Qu.: 0.000
## Median : 0.000 Median : 0.000 Median : 0.000 Median : 0.000
## Mean : 5.777 Mean : 3.311 Mean : 3.327 Mean : 3.248
## 3rd Qu.: 3.000 3rd Qu.: 1.000 3rd Qu.: 1.000 3rd Qu.: 1.000
## Max. : 999.000 Max. : 993.000 Max. :998.000 Max. :991.000
## Diciembre
## Min. :-28.000
## 1st Qu.: 0.000
## Median : 0.000
## Mean : 3.477
## 3rd Qu.: 0.000
## Max. :997.000
Observaciones.
Hay NA’s
Cantidades Negativas
No hay ventas anuales Cambiar formato de meses a valores enteros Hay
muchos valores extremos, se creará un boxplot para ver si son outliers o
no.
# Crear ventas anuales (suma de ventas por mes)
bd$Ventas <- (bd$Enero + bd$Febrero +bd$Marzo + bd$Abril + bd$Mayo + bd$Junio + bd$Julio + bd$Septiembre + bd$Octubre + bd$Noviembre + bd$Diciembre)
library(ggplot2)
ggplot(bd, aes(x=Año, y = Ventas)) +
geom_bar(stat="identity") +
labs(
title= "Ventas Por Año"
)Se encontraron variables negativos en ventas, pero se van a dejar como negativos ya que no hay interpretación para una venta negativa.
R1: Se observó que sí hay un crecimiento en las ventas a lo largo de los años 2016-2019.
library(ggplot2)
ggplot(bd, aes(x=Año, y = Ventas, colour=Tamaño.Cte.Industria)) +
geom_bar(stat="identity") +
labs(
title= "Ventas Por Tipo de Clientes"
)eg <- bd %>% filter(Tamaño.Cte.Industria =="Extra Grande")
ggplot(eg, aes(x=Año, y = Ventas, colour=Tamaño.Cte.Industria)) +
geom_bar(stat="identity") +
labs(
title= "Ventas de Cliente Extra Grande"
)g <- bd %>% filter(Tamaño.Cte.Industria =="Grande")
ggplot(g, aes(x=Año, y = Ventas, colour=Tamaño.Cte.Industria)) +
geom_bar(stat="identity") +
labs(
title= "Ventas de Cliente Grande"
)m <- bd %>% filter(Tamaño.Cte.Industria =="Micro")
ggplot(m, aes(x=Año, y = Ventas, colour=Tamaño.Cte.Industria)) +
geom_bar(stat="identity") +
labs(
title= "Ventas de Cliente Micro"
)p <- bd %>% filter(Tamaño.Cte.Industria =="Pequeño")
ggplot(p, aes(x=Año, y = Ventas, colour=Tamaño.Cte.Industria)) +
geom_bar(stat="identity") +
labs(
title= "Ventas de Cliente Pequeño"
)
R2: A través de los años, hubo un incremento en las ventas a los
clientes Extra Grande y Micro, y en el año 2019 se consiguieron clientes
en las secciones de Grandes y Pequeños.
library(ggplot2)
coca<- bd %>% filter(Marca=="Coca-Cola")
ggplot(coca, aes(x= Año, y = Ventas, colour=Tamaño.Cte.Industria)) +
geom_bar(stat="identity") +
labs(
title= "Ventas Anuales de Coca Cola"
)sp<- bd %>% filter(Marca=="Sprite")
ggplot(sp, aes(x= Año, y = Ventas, colour=Tamaño.Cte.Industria)) +
geom_bar(stat="identity") +
labs(
title= "Ventas Anuales de Sprite"
)R3: Ha habido un incremento en las ventas de Sprite y Coca-Cola en los pasados cuatro años, Sprite y Coca-Cola son las marcas más vendidas
library(ggplot2)
ggplot(bd, aes(x= Año, y = Ventas, colour= Retornable_NR)) +
geom_bar(stat="identity") +
labs(
title= "Ventas Por Año"
)R4: Sí, se ha incrementado la venta de envases retornables de 2018-2019.
#bd1<- bd %>% filter(Segmento.Det =="Agua Purificada" | Segmento.Det == "Isotónicos Regular"| Segmento.Det == "Isotónicos Light"| Segmento.Det == "Colas Light"| Segmento.Det == "Colas Regular")
library(ggplot2)
#ggplot(bd1, aes(x= Año, y = Ventas, colour= Segmento.Det)) +
# geom_bar(stat="identity") +
# labs(
# title= "Ventas Por Año"
#)
ap <- bd %>% filter(Segmento.Det =="Agua Purificada")
ggplot(ap, aes(x= Año, y = Ventas,)) +
geom_bar(stat="identity") +
labs(
title= "Ventas de Agua"
)ir <- bd %>% filter(Segmento.Det =="Isotónicos Regular")
ggplot(ir, aes(x= Año, y = Ventas)) +
geom_bar(stat="identity") +
labs(
title= "Ventas de Isotónicos Regular"
)il <- bd %>% filter(Segmento.Det =="Isotónicos Light")
ggplot(il, aes(x= Año, y = Ventas,)) +
geom_bar(stat="identity") +
labs(
title= "Ventas de Isotónico Light"
)cl <- bd %>% filter(Segmento.Det =="Colas Light")
ggplot(cl, aes(x= Año, y = Ventas,)) +
geom_bar(stat="identity") +
labs(
title= "Ventas de Colas Light"
)cr <- bd %>% filter(Segmento.Det =="Colas Regular")
ggplot(cr, aes(x= Año, y = Ventas,)) +
geom_bar(stat="identity") +
labs(
title= "Ventas de Colas Regular"
)df9 <- bd %>% filter(Segmento.Det =="Agua Purificada"| Segmento.Det == "Isotónicos Regular"|Segmento.Det =="Colas Regular"|Segmento.Det =="Colas Light"|Segmento.Det =="Isotónicos Light")
ggplot(df9, aes(x= Año, y = Ventas, fill=Segmento.Det)) +
geom_bar(stat="identity", position = "dodge") +
labs(
title= "Ventas de Agua, Refrescos y Isotónicos"
)R5: Las ventas por año de agua purificada disminuyeron en el ultimo año, y también las ventas de refrescos, pero subieron las ventas de isotónicos regulares de 2018 - 2019.
acc <- bd %>% filter(Segmento.Det =="Agua Purificada"|Segmento.Det =="Colas Regular"|Segmento.Det =="Colas Light")
ggplot(acc, aes(x= Año, y = Ventas, fill=Segmento.Det)) +
geom_bar(stat="identity", position = "dodge") +
labs(
title= "Ventas de Agua, Refrescos y Isotónicos"
)R6: En esta gráfica, yo observo que están ligeramente relacionados los conmportamientos de las ventas de Agua y de refrescos. Ya que solamente de 2016-2017 se osbervan comportamientos diferentes.
p7 <- bd %>% filter(Marca =="Coca-Cola" & Presentacion =="500 ml NR Vidrio")
sva <- aggregate(Ventas ~ Año,p7, sum)
#sva$Año <- as.integer(sva$Año)
ventas2020 <- lm(Ventas ~ Año, data=sva)
summary(ventas2020)##
## Call:
## lm(formula = Ventas ~ Año, data = sva)
##
## Residuals:
## 1 2 3 4
## -25706 32140 12838 -19272
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -38345512 30127807 -1.273 0.331
## Año 19174 14933 1.284 0.328
##
## Residual standard error: 33390 on 2 degrees of freedom
## Multiple R-squared: 0.4518, Adjusted R-squared: 0.1778
## F-statistic: 1.649 on 1 and 2 DF, p-value: 0.3278
##
## Call:
## lm(formula = Ventas ~ Año, data = sva)
##
## Coefficients:
## (Intercept) Año
## -38345512 19174
#Ecuación de regresión, -38345512 + 19174*Año
datos <- data.frame(Año = 2020)
predict(ventas2020, datos)## 1
## 385160.5
R7: De acuerdo al modelo predictivo usando regresión lineal, las ventas esperadas para coca cola de 500 ml nr de vidrio en 2020, serán de 385,160 unidades con una R^2 ajustada del 17.78%.