library(knitr)
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(ggplot2)
#analisis de despacho mes de febrero
data <- read.csv("data_proyecto.csv",T,",")
head(data)
## Fecha Codigo PesoDespachado CantidadTeorica
## 1 2019-02-01 1500017 15.164 15
## 2 2019-02-01 1500017 14.880 15
## 3 2019-02-01 1003590 16.382 12
## 4 2019-02-01 1500017 18.851 15
## 5 2019-02-01 1500017 15.198 15
## 6 2019-02-01 1003590 17.095 15
Se eliminan los datos que no posean informacion en cualquiera de las columnas y se transforman los datos a un tipo valido.
data <- subset(data, !is.na(Fecha) & !is.na(Codigo) & !is.na(PesoDespachado) & !is.na(CantidadTeorica))
#conversion de datos
data$Fecha <- as.Date(data$Fecha)
data$Codigo <- as.character(data$Codigo)
data$PesoDespachado <- as.numeric(as.character(data$PesoDespachado))
data$CantidadTeorica <- as.numeric(as.character(data$CantidadTeorica))
Para esto restamos lo real que se despacho con lo que pidio el cliente.
#calculando diferencia entre la cantidad teorica y la despachada
data$Diferencia <- data$PesoDespachado - data$CantidadTeorica
Se agrupan los datos por los codigos de producto, se suman y se seleccion los codigos que tengan mas de 1,000 unidades de volumen vendidas durante el mes.
#calculando que codigos tienen mas despacho
cantidad_despachos_codigo<-data %>% group_by(Codigo) %>% summarise(suma=sum(PesoDespachado))
#tomando los datos mayores a 100 despachos
sumar_mayor_1000 <- subset(cantidad_despachos_codigo, suma>1000)
#los pruductos a seleccionar representan el 80.58% del volumen de ventas ventas
sum(sumar_mayor_1000$suma)/sum(cantidad_despachos_codigo$suma)
## [1] 0.8058065
#limpiando data original solo para estos codigos
data2 <- subset(data, Codigo %in% sumar_mayor_1000$Codigo)
Se realiza un analisis estadistico de los datos agrupados por codigo.
#Agrupando por Codigo
data4 <- data2 %>% group_by(Codigo) %>% summarise(mediaDif = median(Diferencia), desviacionDif = sd(Diferencia), minimoDif = min(Diferencia), maximoDif = max(Diferencia), mediaPesoReal = mean(PesoDespachado), desviacionPesoReal = sd(PesoDespachado), mediaPesoTeorico = mean(CantidadTeorica), desviacionPesoTeorico = sd(CantidadTeorica), totalDespachoReal=sum(PesoDespachado), totalDespachoTeorico = sum(CantidadTeorica), totalItems=n()) %>% mutate(freqReal = totalDespachoReal/sum(totalDespachoReal), freqTeorico = totalDespachoTeorico / sum(totalDespachoTeorico))
#Graficando
for(i in 1:length(data4$Codigo)){
graficar <- subset(data2, Codigo == data4$Codigo[i])
p <- ggplot(graficar) + geom_point(aes(x=Fecha, y=PesoDespachado, colour="Real")) + stat_smooth(method="loess", aes(x=Fecha, y=PesoDespachado, colour="Real")) + geom_point(aes(x=Fecha, y=CantidadTeorica, colour="Teorico")) + stat_smooth(method="loess", aes(x=Fecha, y=CantidadTeorica, colour="Teorico"))+labs(title=paste("Despacho real y teorico del producto: " ,data4$Codigo[i])) + xlab("Mes de Febrero") + ylab("Cantidades") + scale_colour_manual(name="Mediciones", values=c("blue", "red"))
imprimir_encabezado <- select(subset(data4, Codigo == data4$Codigo[i]),Codigo,mediaPesoReal,desviacionPesoReal,mediaPesoTeorico,desviacionPesoTeorico, mediaDif, desviacionDif)
names(imprimir_encabezado) <- c("Codigo", "M. Real", "Desv. Real", "M. Teorico", "Desv. Teorico", "M. Diferencia", "Desv. Diferencia")
print(kable(imprimir_encabezado))
print(p)
p <- ggplot(graficar, aes(x=Diferencia)) + geom_histogram(colour="black", fill="white") + geom_freqpoly() + labs(title=paste("Histograma de la diferencia del producto: " ,data4$Codigo[i])) + xlab("Mes de Febrero") + ylab("Cantidad") + scale_colour_manual(name="Diferencia", values=c("green"))
print(p)
}
##
##
## Codigo M. Real Desv. Real M. Teorico Desv. Teorico M. Diferencia Desv. Diferencia
## -------- --------- ----------- ----------- -------------- -------------- -----------------
## 1000350 13.36268 0.9229996 12.29522 0.9211915 1.107 1.015276
##
##
## Codigo M. Real Desv. Real M. Teorico Desv. Teorico M. Diferencia Desv. Diferencia
## -------- --------- ----------- ----------- -------------- -------------- -----------------
## 1000457 11.65575 2.473285 11.6855 2.427699 -0.017 0.4412849
##
##
## Codigo M. Real Desv. Real M. Teorico Desv. Teorico M. Diferencia Desv. Diferencia
## -------- --------- ----------- ----------- -------------- -------------- -----------------
## 1000751 12.23115 0.5642698 12.06806 0.4198918 0.227 0.7807747
##
##
## Codigo M. Real Desv. Real M. Teorico Desv. Teorico M. Diferencia Desv. Diferencia
## -------- --------- ----------- ----------- -------------- -------------- -----------------
## 1000813 13.35254 0.8676953 14.75535 18.92941 -0.0215 18.90907
##
##
## Codigo M. Real Desv. Real M. Teorico Desv. Teorico M. Diferencia Desv. Diferencia
## -------- --------- ----------- ----------- -------------- -------------- -----------------
## 1000834 12.48407 0.4467438 12.012 0.141194 0.387 0.4730395
##
##
## Codigo M. Real Desv. Real M. Teorico Desv. Teorico M. Diferencia Desv. Diferencia
## -------- --------- ----------- ----------- -------------- -------------- -----------------
## 1001466 18.69206 4.977539 17.79343 4.841308 0.851 1.851188
##
##
## Codigo M. Real Desv. Real M. Teorico Desv. Teorico M. Diferencia Desv. Diferencia
## -------- --------- ----------- ----------- -------------- -------------- -----------------
## 1003590 12.89536 1.384209 12.26482 1.162946 0.558 1.292517
##
##
## Codigo M. Real Desv. Real M. Teorico Desv. Teorico M. Diferencia Desv. Diferencia
## -------- --------- ----------- ----------- -------------- -------------- -----------------
## 1019359 12.77494 0.8858264 12.11051 0.4951041 0.738 0.9439161
##
##
## Codigo M. Real Desv. Real M. Teorico Desv. Teorico M. Diferencia Desv. Diferencia
## -------- --------- ----------- ----------- -------------- -------------- -----------------
## 1500017 15.19494 1.627031 14.97703 0.2616055 0.075 1.603632
kable(data4)
| Codigo | mediaDif | desviacionDif | minimoDif | maximoDif | mediaPesoReal | desviacionPesoReal | mediaPesoTeorico | desviacionPesoTeorico | totalDespachoReal | totalDespachoTeorico | totalItems | freqReal | freqTeorico |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1000350 | 1.1070 | 1.0152763 | -3.993 | 6.578 | 13.36268 | 0.9229996 | 12.29522 | 0.9211915 | 6480.899 | 5963.183 | 485 | 0.1334644 | 0.1252227 |
| 1000457 | -0.0170 | 0.4412849 | -6.048 | 1.677 | 11.65575 | 2.4732850 | 11.68550 | 2.4276991 | 2634.200 | 2640.922 | 226 | 0.0542474 | 0.0554575 |
| 1000751 | 0.2270 | 0.7807747 | -4.343 | 1.956 | 12.23115 | 0.5642698 | 12.06806 | 0.4198918 | 1161.959 | 1146.466 | 95 | 0.0239288 | 0.0240750 |
| 1000813 | -0.0215 | 18.9090715 | -318.096 | 3.794 | 13.35254 | 0.8676953 | 14.75535 | 18.9294065 | 4833.620 | 5341.436 | 362 | 0.0995411 | 0.1121665 |
| 1000834 | 0.3870 | 0.4730395 | -1.891 | 2.741 | 12.48407 | 0.4467438 | 12.01200 | 0.1411940 | 3121.017 | 3003.000 | 250 | 0.0642726 | 0.0630609 |
| 1001466 | 0.8510 | 1.8511882 | -9.076 | 10.497 | 18.69206 | 4.9775394 | 17.79343 | 4.8413075 | 3981.408 | 3790.000 | 213 | 0.0819911 | 0.0795874 |
| 1003590 | 0.5580 | 1.2925166 | -6.636 | 4.382 | 12.89536 | 1.3842089 | 12.26482 | 1.1629456 | 3984.665 | 3789.828 | 309 | 0.0820582 | 0.0795838 |
| 1019359 | 0.7380 | 0.9439161 | -2.367 | 3.910 | 12.77494 | 0.8858264 | 12.11051 | 0.4951041 | 2516.664 | 2385.770 | 197 | 0.0518269 | 0.0500995 |
| 1500017 | 0.0750 | 1.6036324 | -4.237 | 4.973 | 15.19494 | 1.6270307 | 14.97703 | 0.2616055 | 19844.590 | 19560.000 | 1306 | 0.4086695 | 0.4107466 |
data4$Estimacion <- data4$mediaDif * data4$totalItems
data4$Resultado <- ifelse(data4$Estimacion >=0, "Verificar calibracion", "Descontento cliente")
data5 <- select(data4, Codigo, mediaDif, Estimacion, Resultado)
names(data5) <- c("Codigo", "Media Diferencia", "Estimacion", "Accion a tomar")
kable(data5)
| Codigo | Media Diferencia | Estimacion | Accion a tomar |
|---|---|---|---|
| 1000350 | 1.1070 | 536.895 | Verificar calibracion |
| 1000457 | -0.0170 | -3.842 | Descontento cliente |
| 1000751 | 0.2270 | 21.565 | Verificar calibracion |
| 1000813 | -0.0215 | -7.783 | Descontento cliente |
| 1000834 | 0.3870 | 96.750 | Verificar calibracion |
| 1001466 | 0.8510 | 181.263 | Verificar calibracion |
| 1003590 | 0.5580 | 172.422 | Verificar calibracion |
| 1019359 | 0.7380 | 145.386 | Verificar calibracion |
| 1500017 | 0.0750 | 97.950 | Verificar calibracion |