Importar base de datos
#file.choose()
prod<-read.csv("/Users/elenavela/Downloads/produccion.csv")str(prod)## 'data.frame': 2568 obs. of 13 variables:
## $ CLIENTE : chr "VARROC" "VARROC" "VARROC" "DENSO" ...
## $ ID.FORM : chr "VL-017-13938" "VL-017-13936" "VL-017-14729" "" ...
## $ PRODUCTO : chr "763 . KIT. CAJA." "747 KIT. CAJA HSC. ( 2 Partes)" "747 KIT. TAPA." "TOYOTA. MCV. Insterto D 2R. CORTE. 1 Golpe = 12 piezas. ( 9 Pza. / Celda)." ...
## $ PIEZAS.PROG. : chr "199" "57" "68" "192" ...
## $ TMO..MIN. : chr "15" "10" "10" "15" ...
## $ HR..FIN : chr "9:15" "9:25" "9:35" "9:50" ...
## $ ESTACION.ARRANQUE : chr "C1" "C1Y2" "C1Y2" "C1" ...
## $ Laminas.procesadas : chr "201" "116" "69" "49" ...
## $ INICIO.SEP.UP : chr "9:00" "9:26" "10:02" "10:12" ...
## $ FIN.INICIO.DE.SEP.UP: chr "9:12" "9:31" "10:09" "10.17" ...
## $ INICIO.de.PROCESO : chr "9:13" "9:32" "10:09" "10:18" ...
## $ FIN.de.PROCESO : chr "9:26" "9:53" "10.12" "10:20" ...
## $ TIEMPO.CALIDAD : chr "1" "1" "1" "1" ...
Se obtienen 13 variables y 2,568 registros del mes de agosto de la base de datos “Producción de Cartón”, específicamente de Tiempo de Máquinas.
Se hace el paso 4 primero, antes de clasificar.
Técnica 1, REMOVER DATOS IRRELEVANTES
No todas las variables nos interesan, o aportan mucho, al análisis que
se pretende hacer. Se ha definido que las variables con las que se desea
quedar son las siguientes: cliente, piezas programadas, tiempo mínimo,
láminas procesadas y tiempo de calidad.
Se eliminan columnas
prod2<-prod
prod2<-subset(prod2,select=-c(ID.FORM,PRODUCTO,HR..FIN,ESTACION.ARRANQUE,INICIO.SEP.UP,FIN.INICIO.DE.SEP.UP,INICIO.de.PROCESO,FIN.de.PROCESO))
summary(prod2)## CLIENTE PIEZAS.PROG. TMO..MIN. Laminas.procesadas
## Length:2568 Length:2568 Length:2568 Length:2568
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
## TIEMPO.CALIDAD
## Length:2568
## Class :character
## Mode :character
Para poder determinar los valores faltantes, es necesario convertir los valores de carácter a enteros/hora/fecha.
Carácter a entero
prod3<-prod2
prod3$PIEZAS.PROG.<-as.integer(prod3$PIEZAS.PROG.)## Warning: NAs introduced by coercion
str(prod3)## 'data.frame': 2568 obs. of 5 variables:
## $ CLIENTE : chr "VARROC" "VARROC" "VARROC" "DENSO" ...
## $ PIEZAS.PROG. : int 199 57 68 192 192 400 80 104 104 160 ...
## $ TMO..MIN. : chr "15" "10" "10" "15" ...
## $ Laminas.procesadas: chr "201" "116" "69" "49" ...
## $ TIEMPO.CALIDAD : chr "1" "1" "1" "1" ...
summary(prod3)## CLIENTE PIEZAS.PROG. TMO..MIN. Laminas.procesadas
## Length:2568 Min. : 1.0 Length:2568 Length:2568
## Class :character 1st Qu.: 100.0 Class :character Class :character
## Mode :character Median : 176.0 Mode :character Mode :character
## Mean : 183.5
## 3rd Qu.: 201.0
## Max. :1280.0
## NA's :164
## TIEMPO.CALIDAD
## Length:2568
## Class :character
## Mode :character
##
##
##
##
Carácter a hora
prod4<-prod3
prod4$TMO..MIN.<-as.integer(prod4$TMO..MIN.)## Warning: NAs introduced by coercion
str(prod4)## 'data.frame': 2568 obs. of 5 variables:
## $ CLIENTE : chr "VARROC" "VARROC" "VARROC" "DENSO" ...
## $ PIEZAS.PROG. : int 199 57 68 192 192 400 80 104 104 160 ...
## $ TMO..MIN. : int 15 10 10 15 15 30 15 15 15 20 ...
## $ Laminas.procesadas: chr "201" "116" "69" "49" ...
## $ TIEMPO.CALIDAD : chr "1" "1" "1" "1" ...
summary(prod4)## CLIENTE PIEZAS.PROG. TMO..MIN. Laminas.procesadas
## Length:2568 Min. : 1.0 Min. : 0.00 Length:2568
## Class :character 1st Qu.: 100.0 1st Qu.: 15.00 Class :character
## Mode :character Median : 176.0 Median : 20.00 Mode :character
## Mean : 183.5 Mean : 22.59
## 3rd Qu.: 201.0 3rd Qu.: 25.00
## Max. :1280.0 Max. :150.00
## NA's :164 NA's :706
## TIEMPO.CALIDAD
## Length:2568
## Class :character
## Mode :character
##
##
##
##
Carácter a entero
prod5<-prod4
prod5$Laminas.procesadas<-as.integer(prod5$Laminas.procesadas)## Warning: NAs introduced by coercion
str(prod5)## 'data.frame': 2568 obs. of 5 variables:
## $ CLIENTE : chr "VARROC" "VARROC" "VARROC" "DENSO" ...
## $ PIEZAS.PROG. : int 199 57 68 192 192 400 80 104 104 160 ...
## $ TMO..MIN. : int 15 10 10 15 15 30 15 15 15 20 ...
## $ Laminas.procesadas: int 201 116 69 49 49 801 41 53 53 55 ...
## $ TIEMPO.CALIDAD : chr "1" "1" "1" "1" ...
summary(prod5)## CLIENTE PIEZAS.PROG. TMO..MIN. Laminas.procesadas
## Length:2568 Min. : 1.0 Min. : 0.00 Min. : 0.0
## Class :character 1st Qu.: 100.0 1st Qu.: 15.00 1st Qu.: 0.0
## Mode :character Median : 176.0 Median : 20.00 Median : 54.0
## Mean : 183.5 Mean : 22.59 Mean : 108.5
## 3rd Qu.: 201.0 3rd Qu.: 25.00 3rd Qu.: 200.0
## Max. :1280.0 Max. :150.00 Max. :1125.0
## NA's :164 NA's :706 NA's :649
## TIEMPO.CALIDAD
## Length:2568
## Class :character
## Mode :character
##
##
##
##
Carácter a hora
prod6<-prod5
prod6$TIEMPO.CALIDAD<-as.integer(prod6$TIEMPO.CALIDAD)## Warning: NAs introduced by coercion
str(prod6)## 'data.frame': 2568 obs. of 5 variables:
## $ CLIENTE : chr "VARROC" "VARROC" "VARROC" "DENSO" ...
## $ PIEZAS.PROG. : int 199 57 68 192 192 400 80 104 104 160 ...
## $ TMO..MIN. : int 15 10 10 15 15 30 15 15 15 20 ...
## $ Laminas.procesadas: int 201 116 69 49 49 801 41 53 53 55 ...
## $ TIEMPO.CALIDAD : int 1 1 1 1 1 1 1 1 1 1 ...
summary(prod6)## CLIENTE PIEZAS.PROG. TMO..MIN. Laminas.procesadas
## Length:2568 Min. : 1.0 Min. : 0.00 Min. : 0.0
## Class :character 1st Qu.: 100.0 1st Qu.: 15.00 1st Qu.: 0.0
## Mode :character Median : 176.0 Median : 20.00 Median : 54.0
## Mean : 183.5 Mean : 22.59 Mean : 108.5
## 3rd Qu.: 201.0 3rd Qu.: 25.00 3rd Qu.: 200.0
## Max. :1280.0 Max. :150.00 Max. :1125.0
## NA's :164 NA's :706 NA's :649
## TIEMPO.CALIDAD
## Min. : 0.000
## 1st Qu.: 1.000
## Median : 1.000
## Mean : 0.927
## 3rd Qu.: 1.000
## Max. :25.000
## NA's :608
Técnica 5, VALORES FALTANTES
Al haber cambiado ya los valores a su forma correspondiente, observamos que existe una gran cantidad de valores faltantes (aprox. la mitad). Se ha optado por eliminar estos registros, debido a que al poner un cero o un promedio, se podría no tener un análisis ilustrativo.
¿Cuántos NA tengo por variables?
sapply(prod6,function(x) sum(is.na(x)))## CLIENTE PIEZAS.PROG. TMO..MIN. Laminas.procesadas
## 0 164 706 649
## TIEMPO.CALIDAD
## 608
Borrar registros de valores faltantes
prod7<-prod6
prod7<-na.omit(prod7)
summary(prod7)## CLIENTE PIEZAS.PROG. TMO..MIN. Laminas.procesadas
## Length:1475 Min. : 1.0 Min. : 0.00 Min. : 0.0
## Class :character 1st Qu.: 100.0 1st Qu.: 15.00 1st Qu.: 37.0
## Mode :character Median : 192.0 Median : 20.00 Median : 100.0
## Mean : 173.5 Mean : 22.23 Mean : 133.9
## 3rd Qu.: 200.0 3rd Qu.: 25.00 3rd Qu.: 202.0
## Max. :1200.0 Max. :120.00 Max. :1125.0
## TIEMPO.CALIDAD
## Min. : 0.000
## 1st Qu.: 1.000
## Median : 1.000
## Mean : 1.064
## 3rd Qu.: 1.000
## Max. :22.000
¿Cuántos NA tengo por variables?
sapply(prod7,function(x) sum(is.na(x)))## CLIENTE PIEZAS.PROG. TMO..MIN. Laminas.procesadas
## 0 0 0 0
## TIEMPO.CALIDAD
## 0
str(prod7)## 'data.frame': 1475 obs. of 5 variables:
## $ CLIENTE : chr "VARROC" "VARROC" "VARROC" "DENSO" ...
## $ PIEZAS.PROG. : int 199 57 68 192 192 400 80 104 104 160 ...
## $ TMO..MIN. : int 15 10 10 15 15 30 15 15 15 20 ...
## $ Laminas.procesadas: int 201 116 69 49 49 801 41 53 53 55 ...
## $ TIEMPO.CALIDAD : int 1 1 1 1 1 1 1 1 1 1 ...
## - attr(*, "na.action")= 'omit' Named int [1:1093] 18 22 23 29 30 31 32 33 34 35 ...
## ..- attr(*, "names")= chr [1:1093] "18" "22" "23" "29" ...
Ya se han eliminado los registros con NAs
Exportar nueva base de datos (limpia)
produccion_limpia <-prod7
write.csv(produccion_limpia, file ="produccion_limpia.csv", row.names = FALSE)str(prod7)## 'data.frame': 1475 obs. of 5 variables:
## $ CLIENTE : chr "VARROC" "VARROC" "VARROC" "DENSO" ...
## $ PIEZAS.PROG. : int 199 57 68 192 192 400 80 104 104 160 ...
## $ TMO..MIN. : int 15 10 10 15 15 30 15 15 15 20 ...
## $ Laminas.procesadas: int 201 116 69 49 49 801 41 53 53 55 ...
## $ TIEMPO.CALIDAD : int 1 1 1 1 1 1 1 1 1 1 ...
## - attr(*, "na.action")= 'omit' Named int [1:1093] 18 22 23 29 30 31 32 33 34 35 ...
## ..- attr(*, "names")= chr [1:1093] "18" "22" "23" "29" ...
Se tienen 5 variables y 1,475 registros.
Las cinco variables son clasificadas correspondiendo a lo que dan a conocer.
| Variable | Type |
|---|---|
Cliente |
Cualitativa |
Piezas programadas |
Cuantitativa (discreta) |
Tiempo mínimo |
Cuantitativa (continua) |
Láminas procesadas |
Cuantitativa (discreta) |
Tiempo calidad |
Cuantitativa (continua) |
Las cinco variables son clasificadas correspondiendo a como se miden.
| Variable | Medicion |
|---|---|
Cliente |
No aplica |
Piezas programadas |
Unidades de producción |
Tiempo mínimo |
Minutos |
Láminas procesadas |
Unidades de producción |
Tiempo calidad |
Horas |
#install.packages("epiDisplay")
library(epiDisplay)## Loading required package: foreign
## Loading required package: survival
## Loading required package: MASS
## Loading required package: nnet
Tabla de frecuencia y gráfica de datos CUANTITATIVOS: Tiempo de Calidad
Primeramente, se analiza el tiempo de calidad. A partir de la tabla de frecuencia y de su gráfica, observamos que la gran parte de la producción analizada toma un valor de tiempo de calidad de una hora.
tiempo_de_calidad<-table(prod7$TIEMPO.CALIDAD)
knitr::kable(tiempo_de_calidad)| Var1 | Freq |
|---|---|
| 0 | 141 |
| 1 | 1271 |
| 2 | 34 |
| 3 | 8 |
| 4 | 1 |
| 5 | 4 |
| 7 | 2 |
| 8 | 1 |
| 9 | 2 |
| 10 | 6 |
| 11 | 2 |
| 17 | 1 |
| 21 | 1 |
| 22 | 1 |
?tab1
tab1(prod7$TIEMPO.CALIDAD,sort.group = FALSE,graph=TRUE)## prod7$TIEMPO.CALIDAD :
## Frequency Percent Cum. percent
## 0 141 9.6 9.6
## 1 1271 86.2 95.7
## 2 34 2.3 98.0
## 3 8 0.5 98.6
## 4 1 0.1 98.6
## 5 4 0.3 98.9
## 7 2 0.1 99.1
## 8 1 0.1 99.1
## 9 2 0.1 99.3
## 10 6 0.4 99.7
## 11 2 0.1 99.8
## 17 1 0.1 99.9
## 21 1 0.1 99.9
## 22 1 0.1 100.0
## Total 1475 100.0 100.0
No aplican las tablas cruzadas
Gráfica de datos CUANTITATIVOS: Tiempo
Mínimo
Siguientemente, observamos el tiempo mínimo (por minutos) de la
producción. La gran parte se encuentrra entre los 0 y los 30
minutos.
hist((prod7$TMO..MIN.),col=c("orange"),main="Tiempo Mínimo",xlab="Minutos")Gráfica de datos CUANTITATIVOS: Piezas
Programadas
Continuando con las piezas programadas, vemos que la gran parte de las
piezas programadas rondan entre 0 y 200 unidades.
hist((prod7$PIEZAS.PROG.),col=c("yellow"),main="Piezas Programadas",xlab="Unidades")Gráfica de datos CUANTITATIVOS: Láminas
Procesadas
Con las láminas procesadas, vemos que la mayor frecuencia es está entre
el 0 y 100, con un importante número también visto entre 100 y 300.
hist((prod7$Laminas.procesadas),col=c("darkgreen"),main="Láminas Procesadas",xlab="Unidades")Gráfica de dispersión: Piezas
programadas
Tal como lo vimos en el histograma, vemos que la mayor concentración de
datos está entre el 100 y 200. No resulta demasiado disperso, sin
embargo hay un dato que se sale de lo “normal”, puesto que lo
encontramos arriba de los miles.
boxplot(prod7$PIEZAS.PROG.,col=c("orange"))Importar base de datos
#file.choose()
scrap<-read.csv("/Users/elenavela/Downloads/scrap.csv")str(scrap)## 'data.frame': 250 obs. of 9 variables:
## $ Referencia : chr "SP/08731" "SP/08730" "SP/08729" "SP/08728" ...
## $ Fecha : chr "31/08/22" "31/08/22" "31/08/22" "31/08/22" ...
## $ Hora : chr "14:55:40" "14:49:25" "13:49:29" "09:30:07" ...
## $ Producto : chr "[BACKFRAME 60% CUELLO ARMADO] 18805. 60% Backframe. Cuello Armado." "[N61506747 CAJA] N61506747. Kit. Caja." "[N61506729 SEPARADOR] N61506729. Kit. Separador." "[341332 DIVISOR - U611 & U625] 341332. U611. U625. Divisor Troquelado." ...
## $ Cantidad : num 2 1 1 31 1 1 1 9 2 1 ...
## $ Unidad.de.medida : chr "Unidad(es)" "Unidad(es)" "Unidad(es)" "Unidad(es)" ...
## $ Ubicación.de.origen : chr "SAB/Calidad/Entrega de PT" "SAB/Calidad/Entrega de PT" "SAB/Calidad/Entrega de PT" "SAB/Pre-Production" ...
## $ Ubicación.de.desecho: chr "Virtual Locations/Scrapped" "Virtual Locations/Scrapped" "Virtual Locations/Scrapped" "Virtual Locations/Scrapped" ...
## $ Estado : chr "Hecho" "Hecho" "Hecho" "Hecho" ...
Existen 9 variables, con 250 registros en total.
Técnica 1, REMOVER DATOS IRRELEVANTES
No todas las variables no interesan, o aportan mucho, al análisis que se
pretende hacer. Se ha definido que las variables con las que se desea
quedar son las siguientes: fecha, cantidad, y ubicación de origen.
Se eliminan columnas
scrap2<-scrap
scrap2<-subset(scrap2,select=-c(Referencia,Hora,Producto,Unidad.de.medida,Ubicación.de.desecho,Estado))
summary(scrap2)## Fecha Cantidad Ubicación.de.origen
## Length:250 Min. : 0.000 Length:250
## Class :character 1st Qu.: 1.000 Class :character
## Mode :character Median : 2.000 Mode :character
## Mean : 6.696
## 3rd Qu.: 7.000
## Max. :96.000
Para poder determinar los valores faltantes, es necesario convertir los valores de carácter a enteros/hora/fecha.
Carácter a fecha
scrap3<-scrap2
scrap3$Fecha<-as.Date(scrap3$Fecha,format="%d/%m/%Y")
str(scrap3)## 'data.frame': 250 obs. of 3 variables:
## $ Fecha : Date, format: "0022-08-31" "0022-08-31" ...
## $ Cantidad : num 2 1 1 31 1 1 1 9 2 1 ...
## $ Ubicación.de.origen: chr "SAB/Calidad/Entrega de PT" "SAB/Calidad/Entrega de PT" "SAB/Calidad/Entrega de PT" "SAB/Pre-Production" ...
summary(scrap3)## Fecha Cantidad Ubicación.de.origen
## Min. :0022-08-01 Min. : 0.000 Length:250
## 1st Qu.:0022-08-11 1st Qu.: 1.000 Class :character
## Median :0022-08-19 Median : 2.000 Mode :character
## Mean :0022-08-17 Mean : 6.696
## 3rd Qu.:0022-08-25 3rd Qu.: 7.000
## Max. :0022-08-31 Max. :96.000
¿Cuántos NA tengo por variable?
sapply(scrap3,function(x) sum(is.na(x)))## Fecha Cantidad Ubicación.de.origen
## 0 0 0
No se elimina ningún registro.
Exportar nueva base de datos (limpia)
scrap_limpia <-scrap3
write.csv(scrap_limpia, file ="scrap_limpia.csv", row.names = FALSE)str(scrap3)## 'data.frame': 250 obs. of 3 variables:
## $ Fecha : Date, format: "0022-08-31" "0022-08-31" ...
## $ Cantidad : num 2 1 1 31 1 1 1 9 2 1 ...
## $ Ubicación.de.origen: chr "SAB/Calidad/Entrega de PT" "SAB/Calidad/Entrega de PT" "SAB/Calidad/Entrega de PT" "SAB/Pre-Production" ...
Se tienen, finalmente, 250 registros y 3 variables.
Las tres variables son clasificadas correspondiendo a lo que dan a conocer.
| Variable | Type |
|---|---|
Fecha |
Cuantitativa (continua) |
Cantidad |
Cuantitativa (discreta) |
Ubicación de origen |
Cualitativa |
Las tres variables son clasificadas correspondiendo a como se miden.
| Variable | Type |
|---|---|
Fecha |
Días |
Cantidad |
Unidades |
Ubicación de origen |
No aplica |
Tabla de frecuencia y gráfica de datos CUALITATIVOS: Ubicación de origen
En este caso, observamos que la gran parte del scrap se encuentra en pre-producción, siguiendo por la verificación de calidad y la entrega, y muy pocas están en post-producción.
knitr::kable(table(scrap3$Ubicación.de.origen))| Var1 | Freq |
|---|---|
| SAB/Calidad/Entrega de PT | 58 |
| SAB/Post-Production | 13 |
| SAB/Pre-Production | 179 |
tab1(scrap3$Ubicación.de.origen,sort.group = FALSE,graph=TRUE)## scrap3$Ubicación.de.origen :
## Frequency Percent Cum. percent
## SAB/Calidad/Entrega de PT 58 23.2 23.2
## SAB/Post-Production 13 5.2 28.4
## SAB/Pre-Production 179 71.6 100.0
## Total 250 100.0 100.0
Gráfica de datos CUANTITATIVOS: Cantidad
Observando la variable cantidad del scrap, vemos que la gran parte está entre las 0 y 10 unidades, sobrepasando solo muy pocas del total.
hist((scrap3$Cantidad),col=c("lightgreen"),main="Cantidad",xlab="Unidades")Gráfica de dispersión: Fecha y cantidad
Continuando con un análisis de dispersión, comparamos la fecha y las unidades. Vemos que la mayoría del scrap de agosto fue trabajado en pocas unidades, con muy pocas siendo altas. Todo el mes presenta trabajo.
plot(scrap3$Fecha,scrap3$Cantidad, main = "Dispersión de fecha y unidades",
pch = 19, frame = FALSE,col=c("orange"))#file.choose()
merma<-read.csv("/Users/elenavela/Downloads/merma.csv")
summary(merma)## Fecha Mes Kilos
## Length:50 Length:50 Min. : 790
## Class :character Class :character 1st Qu.:3178
## Mode :character Mode :character Median :3925
## Mean :3709
## 3rd Qu.:4232
## Max. :6140
str(merma)## 'data.frame': 50 obs. of 3 variables:
## $ Fecha: chr "11/01/22" "11/01/22" "22/01/22" "22/01/22" ...
## $ Mes : chr "ENERO" "ENERO" "ENERO" "ENERO" ...
## $ Kilos: int 5080 3810 2990 2680 3650 4380 3870 3590 3410 3930 ...
Se obtienen 50 registros y 3 variables.
Técnica 1, REMOVER DATOS IRRELEVANTES
Desde el excel se han eliminado las filas de “total mes”.
Para poder determinar los valores faltantes, es necesario convertir los valores de carácter a enteros/hora/fecha.
Carácter a entero
merma2<-merma
merma2$Fecha<-as.Date(merma2$Fecha,format="%d/%m/%Y")
str(merma2)## 'data.frame': 50 obs. of 3 variables:
## $ Fecha: Date, format: "0022-01-11" "0022-01-11" ...
## $ Mes : chr "ENERO" "ENERO" "ENERO" "ENERO" ...
## $ Kilos: int 5080 3810 2990 2680 3650 4380 3870 3590 3410 3930 ...
summary(merma2)## Fecha Mes Kilos
## Min. :0022-01-11 Length:50 Min. : 790
## 1st Qu.:0022-03-12 Class :character 1st Qu.:3178
## Median :0022-05-24 Mode :character Median :3925
## Mean :0022-05-25 Mean :3709
## 3rd Qu.:0022-08-10 3rd Qu.:4232
## Max. :0022-09-21 Max. :6140
¿Cuántos NA tengo por variable?
sapply(merma2,function(x) sum(is.na(x)))## Fecha Mes Kilos
## 0 0 0
No existen valores faltantes por variables.
Exportar nueva base de datos (limpia)
merma_limpia <-merma2
write.csv(merma_limpia, file ="mermaa_limpia.csv", row.names = FALSE)Las tres variables son clasificadas correspondiendo a lo que dan a conocer.
| Variable | Type |
|---|---|
Fecha |
Cuantitativa (continua) |
Mes |
Cualitativa |
Kilos |
Cuantitativa (continua |
Las tres variables son clasificadas correspondiendo a como se miden.
| Variable | Medicion |
|---|---|
Fecha |
Día/Mes/Año |
Mes |
No aplica |
Kilos |
Kgs |
Tabla de frecuencia y gráfica de datos CUALITATIVOS: Mes
Viendo los desperdicios por kilos, por mes, vemos que agosto fue un mes que tuvo una gran cantidad de desperdicios, sobre todo al compararla con los otros meses.
knitr::kable(table(merma$Mes))| Var1 | Freq |
|---|---|
| ABRIL | 5 |
| AGOSTO | 11 |
| ENERO | 4 |
| FEBRERO | 6 |
| JULIO | 5 |
| JUNIO | 4 |
| MARZO | 6 |
| MAYO | 5 |
| SEPTIEMBRE | 4 |
tab1(merma$Mes,sort.group = FALSE,graph=TRUE)## merma$Mes :
## Frequency Percent Cum. percent
## ABRIL 5 10 10
## AGOSTO 11 22 32
## ENERO 4 8 40
## FEBRERO 6 12 52
## JULIO 5 10 62
## JUNIO 4 8 70
## MARZO 6 12 82
## MAYO 5 10 92
## SEPTIEMBRE 4 8 100
## Total 50 100 100
Gráfica de datos CUANTITATIVOS: Kilos
Viendo la cantidad de kilos, observamos que la gran cantidad se encuentra entre los 3000 y 5000 kilos.
hist((merma$Kilos),col=c("lightgreen"),main="Cantidad",xlab="Kilogramos")Gráfica de datos CUALITATIVOS: Mes
Diferente presentación de los meses.
pie(prop.table(table(merma$Mes)),col=c("red","blue","green","lightpink","lightblue","lightgreen","yellow","orange","darkred"),main="Meses", ylab ="Frecuencias",las=1)Gráfica de dispersión: Kilos
En este boxplot que describe la dispersión de los kilos por los meses, vemos que no hay muchos datos que se salgan de lo “normal”
boxplot(merma$Kilos,col=c("yellow"))Estas bases de datos, otorgados por Form, nos hablan de su producción y desperdicios (uno de desperdicio general y otro enfocado en desperdicio de cartón). De la base de datos conocemos, en producción, los siguientes datos: (1) la gran parte de la producción analizada toma un valor de tiempo de calidad de una hora, (2) el tiempo mínimo (por minutos) de la producción se encuentra entre los 0 y los 30 minutos, (3) la gran parte de las piezas programadas rondan entre 0 y 200 unidades, (4) con las láminas procesadas, vemos que la mayor frecuencia es está entre el 0 y 100.
Siguiendo con la base de deatos de scrap: (1) la gran parte del scrap se encuentra en pre-producción, (2) la gran parte del scrap está entre las 0 y 10 unidades, (3) a mayoría del scrap de agosto fue trabajado en pocas unidades, con muy pocas siendo altas. Todo el mes presenta trabajo.
Finalmente, con la base de datos de merma: (1) agosto fue un mes que tuvo una gran cantidad de desperdicios de cartón, sobre todo al compararla con los otros meses, (2) la gran cantidad se encuentra entre los 3000 y 5000 kilos.
Al reflexionar específicamente de los retos que pude encontrar en esta actividad, fue pprincipalmente el tener que trabajar con bases de datos “reales”, es decir, que no son de lo más ideales y que no todos los datos registrados resultan muy útiles o bien clasificados para su análisis.
Una importante reflexión de esta actividad fue como R me puede ayudar a preparar una base de datos de manera que tengamos menos errores y hacer el proceso más eficiente; así como entregar al socio formador la información más relevante y un análisis preciso. Igualmente, me pude dar cuenta que ahora soy capaz de hacer una limpia de bases de datos yo misma y tomar las decisiones que me parecen más pertinentes. Confío en que estas nuevas bases de datos, su análisis descriptivo y las propuestas que van conforme a, podrán ser de gran utilidad para la resolución del reto y una buena experiencia del socio formador.