Medidas de mejora de procesos (Cp, Cplower, Cpupper, Cpk, Cpm, Cpkm)

Un usuario Pregunto ✅

greg_deckler

Dados algunos datos de muestra:

MedidaValorLímiteUpperLimitLowerIndexObjetivo

0.05 0.05 0 0 0.03
0.04 0.05 0 1 0.03
0.04 0.05 0 2 0.03
0.05 0.05 0 3 0.03
0.04 0.05 0 4 0.03
0.04 0.05 0 5 0.03
0.05 0.05 0 6 0.03

Presenta medidas comunes de mejora de procesos como se documenta aquí: https://en.wikipedia.org/wiki/Process_capability_index

Cp = 
VAR sigma = STDEV.S(Process[MeasureValue])
RETURN (MAX(Process[LimitUpper])-MIN(Process[LimitLower]))/(6*sigma)

Cplower = 
VAR sigma = STDEV.S(Process[MeasureValue])
VAR estimatedMean = AVERAGE(Process[MeasureValue])
RETURN (estimatedMean-MIN(Process[LimitLower]))/(3*sigma)

Cpupper = 
VAR sigma = STDEV.S(Process[MeasureValue])
VAR estimatedMean = AVERAGE(Process[MeasureValue])
RETURN (MAX(Process[LimitUpper])-estimatedMean)/(3*sigma)

Cpk = 
VAR sigma = STDEV.S(Process[MeasureValue])
VAR estimatedMean = AVERAGE(Process[MeasureValue])
VAR Cplower = (estimatedMean-MIN(Process[LimitLower]))/(3*sigma)
VAR Cpupper = (MAX(Process[LimitUpper])-estimatedMean)/(3*sigma)
RETURN MIN(Cplower,Cpupper)

Cpm = 
VAR sigma = STDEV.S(Process[MeasureValue])
VAR estimatedMean = AVERAGE(Process[MeasureValue])
VAR Cp = (MAX(Process[LimitUpper])-MIN(Process[LimitLower]))/(6*sigma)
VAR denom = SQRT(1+POWER((estimatedMean - MAX(Process[Target]))/sigma,2))
RETURN DIVIDE(Cp,denom)

Cpkm = 
VAR sigma = STDEV.S(Process[MeasureValue])
VAR estimatedMean = AVERAGE(Process[MeasureValue])
VAR Cplower = (estimatedMean-MIN(Process[LimitLower]))/(3*sigma)
VAR Cpupper = (MAX(Process[LimitUpper])-estimatedMean)/(3*sigma)
VAR Cpk = MIN(Cplower,Cpupper)
VAR denom = SQRT(1+POWER((estimatedMean - MAX(Process[Target]))/sigma,2))
RETURN DIVIDE(Cpk,denom)

vicentekatoh

@Greg_Deckler,

Consulte con un estadístico, al calcular Cp/Cpk, mi fórmula para Sigma es incorrecta. DAX STDEV.S (también llamado sigma) se usa para Pp/PpK y no para Cpk.

Para Cpk, sigma se calcula utilizando el rango móvil (MR). En particular, para rango móvil individual, Sigma = MRbar/1.128. 1.128 es una constante.

Se necesita ayuda: ¿Puede proporcionar DAX para calcular la columna «Rango móvil»? El rango móvil es la diferencia absoluta entre los valores de medida adyacentes.

2018-02-22 12_50_05-Rango móvil - Excel.jpg

vicentekatoh

En respuesta a vicentekatoh

Hola @Greg_Deckler,

Enlace agregado al archivo pbix de muestra. Necesita ayuda en DAX para calcular el promedio móvil (MR).

https://1drv.ms/u/s!ArjVwEnHONXNghspzwtVdKi9T6KS

Una vez hecho,

1) calcular MRbar, CPk y Cp es fácil.

2) Gráfico ImR: crear un gráfico ImR será fácil. Solo gráficos de 2 líneas

http://blog.minitab.com/blog/understanding-statistics/how-create-and-read-an-i-mr-control-chart

vicentekatoh

En respuesta a vicentekatoh

hola @Greg_Deckler,

Quería compartir los resultados de mi trabajo con la ayuda de @Zubair_Muhammad y de usted mismo. Gracias de nuevo.

Objetivo: crear un gráfico de rango móvil individual (el más simple de los gráficos SPC) con Power BI.

– Calcular: Cp, Cpk, Pp y Ppk

– Calcular: Rango Móvil (MR) y Sigma=MRbar/1.128

https://1drv.ms/u/s!ArjVwEnHONXNgh2-T7FtnCPcmkYg

2018-02-22 21_02_57-ImR Chart3 - Power BI Desktop.jpg

igor722

En respuesta a vicentekatoh

Hola. Soy muy nuevo en esto.

Pero, ¿es posible crear una fuente de datos para esta plantilla?

Saludos

greg_deckler

En respuesta a vicentekatoh

@vincentakatoh – ¡No soy un estadístico! Entonces, ¿es el único cambio que se requiere para el cálculo de sigma o hay otras cosas que son incorrectas? Si puede ayudarme a obtener las ecuaciones correctas, actualizaré la publicación o veré si puedo eliminarla y permitirle publicar las medidas rápidas correctas en la galería.

vicentekatoh

En respuesta a greg_deckler

@Greg_Deckler,

A continuación se muestra cómo calculo el Cpk. Los cálculos para Cpk son cuando Sample=1.

Step 1:
EarlierTime = CALCULATE ( MAX ( QLMS[TimeSPC] ); FILTER ( ALLSELECTED ( QLMS[TimeSPC] ); QLMS[TimeSPC] < SELECTEDVALUE ( QLMS[TimeSPC] ) ) ) 

Step 2: 
MovingRange = 
IF(ISBLANK(QLMS[EarlierTime]);blank();(
VAR EarlierTime = CALCULATE ( MAX ( QLMS[TimeSPC] ); FILTER ( ALLSELECTED ( QLMS[TimeSPC] ); QLMS[TimeSPC] < SELECTEDVALUE ( QLMS[TimeSPC] ) ) ) 
VAR EarlierMeasureValue = CALCULATE ( SUM ( QLMS[MeasureValue] ); QLMS[TimeSPC] = EarlierTime ) 
RETURN ABS ( EarlierMeasureValue - SUM ( QLMS[MeasureValue] ) ) ))

Step 3:
MRBar = AverageX(ALLSELECTED(QLMS[TimeSPC]);[MovingRange])

Step 4: (1.128 constant applies when sample size=1)
Sigma = [MRBar]/1.128

Step 5: 
Cp = (MAX(QLMS[Limit_USL])-MIN(QLMS[Limit_LSL]))/(6*[Sigma])

Step 6:
Cpk = 
VAR CpU = (MAX([Limit_USL]) - [Mean])/(3*[Sigma])
VAR CpL = ([Mean] - MAX([Limit_LSL]))/(3*[sigma])
RETURN MIN(CpU;CpL)

Anónimo

En respuesta a vicentekatoh

Hola Vincent, estoy tratando de usar tus medidas, pero me quedo atascado en EarlierMeasureValue, obtengo el error

o ‘Se ha utilizado una función ‘CALCULAR’ en una expresión Verdadero/Falso que se utiliza como expresión de filtro de tabla. Esto no está permitido, por favor, ¿pueden ayudarme?

@vincentakatoh

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *