[R-es] Tiempo de vida

Carlos Ortega cof en qualityexcellence.es
Jue Dic 10 23:52:06 CET 2015


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ía
   - Monitorizarí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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20151210/f8d549e2/attachment-0001.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: pedido.csv
Type: text/csv
Size: 123818 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20151210/f8d549e2/attachment-0001.bin>


Más información sobre la lista de distribución R-help-es