[R-es] Tiempo de vida
Jesús Para Fernández
j.para.fernandez en hotmail.com
Vie Dic 11 01:16:47 CET 2015
Un placer leer la solución aportada por Carlos. Tb he creado una tabla de frecuencias para valorar los riesgos que se corren, pues mucha sveces podemos asumir riesgos de un 10% o un 15% dependiendo de la pieza...
Respecto al libro de Emilio, ya lo tenía en mi poder. Merece la pena la reflexión sobre si el 6sigma tuvo mucho de moda o no, pues no dejaba de ser un PDCA pero añadiendo al potencia de la estadística. Yo me quedo con eso.
Gracias por todo chicos!!!
Jesús
Date: Fri, 11 Dec 2015 00:13:36 +0100
Subject: Re: [R-es] Tiempo de vida
From: emilio en lcano.com
To: cof en qualityexcellence.es
CC: j.para.fernandez en hotmail.com; r-help-es en r-project.org
Hola,
Genial la respuesta de Carlos, "as usual"...
... y ¡Gracias por la cita! Aprovecho para decir que se acaba de publicar nuestro nuevo libro (Quality Control with R: An ISO Standards Approach), donde el tema de los gráficos de control lo tratamos un poco más extensamente que en el de Six Sigma:
http://www.amazon.es/dp/3319240447/ref=wl_it_dp_o_pC_nS_ttl?_encoding=UTF8&colid=2XED50UJY9ZK0&coliid=I2K9YJO7VX859P
Saludos a toda la lista,
Emilio
Dr. Emilio López CanoData Scientist
Mobile: +34 665 676 225
skype: emilopezcano
twitter: @emilopezcano
http://emilio.lcano.com
Affiliations / Collaborations:Rey Juan Carlos UniversityUniversity of Castilla-La ManchaComunidad R-HispanoAEC - AENOR - SKITES - talentyon
El 10 de diciembre de 2015, 23:52, Carlos Ortega <cof en qualityexcellence.es> escribió:
Hola,
OK. Gracias.
Pues para empezar, haría un gráfico de control.
Que aunque inventados en el siglo pasado, brillan por su ausencia en las PYMES españolas, cuando siendo rigurosos en su uso, seguimiento, etc, ofrecen casi una garantía de éxito en la mejora de la calidad de un proceso industrial. "Caballo ganador" sin duda.
Utilizando la referencia como un grupo de muestreo (adjunto tu Excel en .csv).
Puedes hacer esto:
#----------------------------------
datIn <- read.table("pedido.csv",header=TRUE, as.is=TRUE, sep=";", dec=",")
#datIn$Qty <- as.numeric(datIn$Qty)
datIn$newdipe <- ifelse(datIn$dipean==0,NA,datIn$dipean)
datIn$qtydi <- datIn$Qty/datIn$newdipe
datIn$sample <- datIn$Ref
library(qicharts)
qic(datIn$qtydi, x=datIn$Ref, chart="xbar" , main="Avg Pedido per day", xlab="Group", ylab="Qty")
#----------------------------------
Es un gráfico "Media-Sigma" que es el que se suele utiizar para datos continuos agrupados como los que tienes. Y lo que represento es la variable "Pedido/Días".
Verás que el límite de control (CL) es de 0.51 y el límie de control superior (UCL) es de 4.6.
Es decir, debieras de pedir 4.6 cuchillas al día para estar casi seguro de no romper el stock. Con este límite, ves que en tu histórico tan sólo hay un punto fuera de control. A partir de este valor, puedes ir a valores más pequeños, asumiendo cada vez mayor riesgo.
Como prácticas adicionales:
iría generando este gráfico de forma regular y lo monitorizaríaMonitorizaría por separado varios tipos de cuchilla, el criterio de monitorización que utilizaría sería el económico: las más caras, o en las que más gastas por volumen de cambio.Y comenzaría a recopilar más información asociada a las cuchillas: cantidad de producto que procesan/cortan, momento en el que se cambian para con el tiempo, empezar a analizar la fiabilidad de los diferentes lotes de cuchillas...
Y ya puestos, me leería y tendría muy a mano el libro de Emilio:
http://www.amazon.es/Six-SIGMA-Statistical-Engineering-Improvement/dp/B013ILHXN4/ref=sr_1_1?s=books&ie=UTF8&qid=1449787862&sr=1-1&keywords=six+sigma+R+cano
Saludos,
Carlos Ortega
www.qualityexcellence.es
El 10 de diciembre de 2015, 23:23, Jesús Para Fernández <j.para.fernandez en hotmail.com> escribió:
La referencia de las cuchillas, no son todas la misma
Date: Thu, 10 Dec 2015 22:04:24 +0100
Subject: Re: [R-es] Tiempo de vida
From: cof en qualityexcellence.es
To: j.para.fernandez en hotmail.com
CC: r-help-es en r-project.org
Gracias.
¿Y qué es "Referencia"?...
Gracias,
Carlos Ortega
www.qualityexcellence.es
El 10 de diciembre de 2015, 21:48, Jesús Para Fernández <j.para.fernandez en hotmail.com> escribió:
Buenas, os adjunto el documento, en u nexcel.
Está estructurado de la siguiente manera:
Referencia, Días desde pedido anterior, Unidades pedidas, Diasdesde pedido anterior promedio
Dias de pedido anterior promedio no es más que dias desde pedido anterior / Unidades pedidas.
Codifico las variables, para trabjaar en R de manera cómoda como:
Ref,dias.pedido,unidades,dias.prom
y lo meto en undata.frame que llamaré datos
Con ello y en R, creo los histogramas
histograma<-tapply(datos$dias.prom,datos$Ref,hist)
esto me crea los 392 histogramas, pero me los crea como listas, asi que me resulta luego imposible graficarlos...
Por otra parte tb creo un nuevo dataframe, con los cuantiles:
cuartil<-tapply(datos$dias.prom,datos$Ref,quantile)
dataframe<-as.data.frame(t(data.frame(cuartil[[1]])))
nuevo<-as.data.frame(t(data.frame(cuartil[[1]])))
for(i in 2:392){
dataframe<-as.data.frame(t(data.frame(cuartil[[i]])))
nuevo<-rbind(nuevo,dataframe)
}
Con esto tengo uan lista donde puedo ver para los cuartiles como están disttribuidos los datos.
Se os ocurre algo mejor??
Date: Thu, 10 Dec 2015 20:38:32 +0100
Subject: Re: [R-es] Tiempo de vida
From: cof en qualityexcellence.es
To: j.para.fernandez en hotmail.com
CC: r-help-es en r-project.org
Hola,
Puedes adjuntar una parte o el conjunto "datos". Ahora no sé si los datos que quieres representar tienen que ver con el conjunto que nos comentabas de las cuchillas. ¿Hay diferentes tipos de cuchillas?... En cuanto al consumo, ¿calculaste el MTTR?...
Y por otro lado, respondiendo a la pregunta que planteas, si ves la ayuda de "hist()" verás que lo que acepta esta función, sólo acepta un vector como parámetro de entrada, no una lista.
Saludos,
Carlos Ortega
www.quallityexcellence.es
El 10 de diciembre de 2015, 19:04, Jesús Para Fernández <j.para.fernandez en hotmail.com> escribió:
Buenas
He creado los histogramas, y los he guardado en función de la referneica en una variable:
histograma<-tapply(datos$consumo,datos$Material,function(x)hist(x,col=8)
Pero ahora la variable histograma como array, donde estan las 300 referencias.
Si entor en una, por ejemplo, histograma[1], veo como es un tipo list con los siguientes campos:
$breaks
[1] 0.0 0.2 0.4 0.6 0.8 1.0
$counts
[1] 18 2 0 0 1
$density
[1] 4.2857143 0.4761905 0.0000000 0.0000000 0.2380952
$mids
[1] 0.1 0.3 0.5 0.7 0.9
$xname
[1] "X[[i]]"
$equidist
[1] TRUE
attr(,"class")
[1] "histogram"
Con esta información, cómo podría crear el histograma para esta referencia o la que elija????
Yo pensaba que iba a quedar los datos de tal manera que con poner:
hist(histograma[1]) me haría el histograma.
Gracias
Jesús
Date: Thu, 10 Dec 2015 16:29:11 +0100
Subject: Re: [R-es] Tiempo de vida
From: cof en qualityexcellence.es
To: j.para.fernandez en hotmail.com
CC: r-help-es en r-project.org
Hola,
Lo tenía en mente, pero no me acordaba del nombre de la autora y el libro no lo tenía a mano...
Esta referencia es de lo mejorcito que he visto/leído para la mejora de procesos industriales desde el punto de vista estadístico:
http://www.amazon.com/gp/product/0898713943?keywords=veronica%20czitrom&qid=1449761180&ref_=sr_1_1&s=books&sr=1-1
Saludos,
Carlos Ortega
www.qualityexcellence.es
El 10 de diciembre de 2015, 11:00, Carlos Ortega <cof en qualityexcellence.es> escribió:
Hola Jesús,
La respuesta, desde mi punto de vista, es un poco off-topic de lo que se trata en esta lista, pero comento como lo veo yo.
Con el nivel de detalle que tienes, puedes hacer varias cosas:
Simplemente mantén en tu almacén un número de cuchillas mayor que la última vez que tuviste que pedirlas con urgencia. En los entornos de Producción, efectivamente el que rompas el stock es una situación grave, porque paras la línea. Pero como bien, dices por otro lado no puedes mantener en tu almacén muchas cuchillas. Aunque también hay que comentar que en el análisis tendrías que meter el coste de reposición. No veo que las cuchillas sean un producto que se quede obsoleto, así que comprar un número mayor de "1" te sea hasta económicamente más rentable. Seguramente puedas negociar mejores precios comprando "10" que "1".Entonces por este lado, tener en tu almacén un número constante de "3". Y que ese sea tu punto de pedido no parece descabellado.
Otra forma de analizarlo teniendo en cuenta los datos que ya has acumulado es ver cuál es tu "MTTR" (Mean Time To Repair). Considera la rotura/desgaste de la cuchilla como una "reparación". Y con este concepto calcula el tiempo medio que pasa hasta que sustituyes una cuchilla. Esto lo puedes calcular con los datos que tienes, simplemente calculando las diferencias entre las fechas en las que cambias las cuchillas. De esta forma, obtendrás que si cambias cuchillas cada 2 semanas (en media), tendrás que tener en media, una cuchilla disponible en tu almacén.
Claro, si te ajustas al valor medio, pierdes toda la información que te da el MTTR de su sigma. Al calcular el MTTR, representa esas diferencias en un histograma o simplemente calcula su sigma y tu stock óptimo (conservador) sería "Media + 3 Sigmas". Es una aproximación de tirar por la calle del medio (suponiendo una distribución normal de los datos de MTTR).En cualquier caso, cuando tengas los datos de MTTR, mira el histograma por si se puede hacer un análisis más fino.
Gracias,
Carlos Ortega
www.qualityexcellence.es
El 10 de diciembre de 2015, 9:57, Jesús Para Fernández <j.para.fernandez en hotmail.com> escribió:
Buenas Antonio,
No termino de entender lo que dices, la verdad.
Para ponernos en situación, lo que quiero es llegar al punto de pedido optimo, es decir, no desabastecer el almacen, pero tampcoo tener cuchillas para 100 años...
Por ello, a mi me llega cuando necesitan una cuchilla, entonces se le da salida en el almacen, pero esa cuchilla nunca retorna a nosotros, es colocada en la maquina y hasta que parta.
Es por eso por lo que habia pensado en un tiempoo de vida o en frecuencias. No me asusta meterme en "fregados" si la solución es robusta. Entiendo que el tema de frecuencias podría valer, ya que al final no es más que la frecuencia de pedido, pero lo que no me vale es usar medias, ya que la media de 0 y 2 es la misma que la de 1 y 1, pero las situaciones no tienen nada que ver. Pongo un ejemplo.
Si hoy me piden 1 y dentro de una semana me piden 1, entonces con tener 1 en el almacen me vale. La media de pedido sería 1 y el punto de pedido optimo seria 1.
Sin embargo, si esta seman me piden 0 y la semana siguiente me piden 2, el punto de pedido optimo es 2, aunque la media de consumo es 1...
Por eso habia pensado en tiempo de vida que creoq ue se puede ajustar mejor, pero no se como meter los datos para hacer correctamente el análisis.
To: r-help-es en r-project.org
From: antonio.punzon en st.ieo.es
Date: Thu, 10 Dec 2015 09:36:25 +0100
Subject: Re: [R-es] Tiempo de vida
Si no tienes la fecha de venta o cuando se comenzó a usar lo tienes
realmente difícil.
Puedes hacer una aproximación si tuvieras cuantas se vendieron,
identificando modas de venta y de devolución podrías estimar el
tiempo de vida.
Si solo tienes devolución puedes trabajar con modas/ frecuencias, el
proceso es más complejo, bastante más. Sería algo parecido a
averiguar la edad de un pez solo sabiendo cuando lo has cogido, sin
saber fecha de nacimiento (pongo este ejemplo porque trabajo en
biología marina). Y aunque no soy un experto en el tema (nada), el
proceso de averiguar la "edad" es más complejo. Te diré que hay
diversos métodos, y yo creo que el que más se ajusta sería con
análisis de frecuencias. Pero no creo que te vayas a meter en ese
"jardín"
Pero, creo que estás haciendo mal la pregunta. Yo interpreto que lo
que quieres saber es cuando debes hacer un pedid, para tener stock o
previsiones de gasto. Esto solo depende de cuando se compraron. Pero
esto te da lo mismo, incluso el tiempo de vida, ya que si es un
producto estandarizado, será similar. Por lo tanto, solo tienes que
hacer análisis de cuando te las traen de vuelta. Con cualquier
análisis exploratorio por la unidad temporal que tu desees (Semana,
mes, etc) te valdría. Por ejemplo unos boxplot
El data frame sería muy simple
kk<-
data.frame(año=as.numeric(0),dia=as.numeric(0),mes=as.numeric(0))
aquí meterías cada cuchilla que te devuelven
o
kk<-
data.frame(año=as.numeric(0),dia=as.numeric(0),mes=as.numeric(0),numero.cuchillas=as.numeric(0))
aquí meterías el numero de cuchillas por día
Del primero mediante un aggregate se obtiene el segundo
Y después solo analizar
Si los pedidos los hicieras por semanas, con la unión de los tres
campos "dia, año, y me"s con la libreria "chron" los transformas en
un campo fecha (as.Date), y con la misma librería puedes sacar la
semana de forma numérica. De esta forma tendrías las cuchillas por
semana
Poco más se me ocurre
Espero que te sirva
Saludos
__________________________________
Antonio Punzón Merino
Instituto Español de Oceanografía
CO Santander
Promontorio de San Martín s/n
PO BOX 240
39080-Santander (Spain)
Tel: +34 942 29 17 16 (Direct: 55)
Fax: +34 942 275 072
Email: antonio.punzon en st.ieo.es
Web: www.ieo.es
__________________________________
El 10/12/2015 a las 9:05, Jesús Para
Fernández escribió:
Siento insistir en el tema, pero es de vital importancia.
Alguna idea???
Gracias
Jes�s
From: j.para.fernandez en hotmail.com
To: griera en yandex.com; r-help-es en r-project.org
Subject: RE: [R-es] Tiempo de vida
Date: Tue, 8 Dec 2015 09:18:11 +0100
Pero como har�a el data frame?? Porque las cuchillas son de la misma referencia. En realidad es para ver cada cuanto se gstan las cuchillas y ver que pedidos hay que hacer de las mismas.
La tabla que tengo es:
25 enero-> 1 cuchilla gastada
30 enero -> 1 cuchilla gastada
3 de febrero -> 2 cuchillas gastadas
5 de febrero -> 1 cuchilla gastada
Y as�....
No tiene necesariamente que ser gastada en la misma afeitadora, ya que hay 3 cortadoras y los datos de a que cortadora se cambian no son proporcionados y son imposibles de conseguir (ya que esa informaci�n es de un externo).
Gracias.
Jes�s
Date: Mon, 7 Dec 2015 17:47:45 +0100
From: griera en yandex.com
To: j.para.fernandez en hotmail.com; r-help-es en r-project.org
Subject: Re: [R-es] Tiempo de vida
Hola:
On Mon, 7 Dec 2015 16:34:14 +0100
Jes�s Para Fern�ndez <j.para.fernandez en hotmail.com> wrote:
Los datos no son de desgaste de cuchilla, sino de consumo de las mismas.
Por ello tengo los datos de la siguiente forma:
Unidades cambiadas Fecha
En unidades cambiadas, suele ser una y en fecha el dia que se hizo el cmabio.
No seria:
TIEMPO: Fecha que se coloca una cuchilla nueva hasta que se cambia.
ESTADO: Siempre 1 (siempre se cambia): no existen censuras.
y un registro para cada cuchilla.
Servir�a?
Saludos.
Con eso no se muy bien como estructurar los datos para hacer el an�lisis.
Gracias
Jes�s
Date: Mon, 7 Dec 2015 16:27:18 +0100
From: griera en yandex.com
To: j.para.fernandez en hotmail.com
CC: r-help-es en r-project.org
Subject: Re: [R-es] Tiempo de vida
Hola:
On Mon, 7 Dec 2015 15:12:24 +0100
Jes__s Para Fern__ndez <j.para.fernandez en hotmail.com> wrote:
Buenas,
Como pudeo calcular el tiempo de vida? Os cuento, tengo una serie de cuchillas y quiero ver el consumo de las mismas y he pensado en hacer un estudio por tiempo de vida. No se como hacerlo con R
Has una tabla de datos con 4 columnas:
1. Fecha que se empieza a utilizar la cuchilla
2. Fecha de la �ltima revisi�n de la cuchilla
3. TIEMPO: el tiempo transcurrido entre las dos fechas anteriores
4. ESTADO: estado de la cuchilla cuando se revis� la �ltima vez:
0 = Buen estado
1 = Para tirar
Y utiliza el m�todo kaplan-meier:
library(survival)
KM <- survfit(Surv(DATO$TIEMPO, DATOS$ESTADO) ~ 1)
summary(KM)
plot(KM)
Un ejemplo:
library(survival)
AML.KM <- survfit(Surv(aml$time, aml$status) ~ 1)
summary(AML.KM)
Call: survfit(formula = Surv(aml$time, aml$status) ~ 1)
time n.risk n.event survival std.err lower 95% CI upper 95% CI
5 23 2 0,9130 0,0588 0,8049 1,000
8 21 2 0,8261 0,0790 0,6848 0,996
9 19 1 0,7826 0,0860 0,6310 0,971
12 18 1 0,7391 0,0916 0,5798 0,942
13 17 1 0,6957 0,0959 0,5309 0,912
18 14 1 0,6460 0,1011 0,4753 0,878
23 13 2 0,5466 0,1073 0,3721 0,803
27 11 1 0,4969 0,1084 0,3240 0,762
30 9 1 0,4417 0,1095 0,2717 0,718
31 8 1 0,3865 0,1089 0,2225 0,671
33 7 1 0,3313 0,1064 0,1765 0,622
34 6 1 0,2761 0,1020 0,1338 0,569
43 5 1 0,2208 0,0954 0,0947 0,515
45 4 1 0,1656 0,0860 0,0598 0,458
48 2 1 0,0828 0,0727 0,0148 0,462
plot(AML.KM)
Dibuja la curva de supervivencia con el intervalo de confianza.
Espero que te sea �til.
Saludos.
Gracias
Jes_s
[[alternative HTML version deleted]]
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
--
Saludos,
Carlos Ortega
www.qualityexcellence.es
--
Saludos,
Carlos Ortega
www.qualityexcellence.es
--
Saludos,
Carlos Ortega
www.qualityexcellence.es
--
Saludos,
Carlos Ortega
www.qualityexcellence.es
--
Saludos,
Carlos Ortega
www.qualityexcellence.es
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
[[alternative HTML version deleted]]
Más información sobre la lista de distribución R-help-es