[R-es] Tiempo de vida

Emilio L. Cano emilio en lcano.com
Vie Dic 11 00:13:36 CET 2015


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 Cano*
Data Scientist

Mobile: +34 665 676 225
skype: emilopezcano
twitter: @emilopezcano
http://emilio.lcano.com

*Affiliations / Collaborations:*
Rey Juan Carlos University
University of Castilla-La Mancha
Comunidad R-Hispano
AEC - 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í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
>
> _______________________________________________
> 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