Gracias por acompañarme. Esto es «Detectando Errores Tipográficos con Datos de Prueba». Mi nombre es Nathan Gambles y soy Ingeniero Principal de Producto en Frontgrade Technologies. Mi función en Frontgrade consiste en colaborar en la fabricación y prueba de circuitos integrados de alta fiabilidad, dirigidos a clientes de los sectores médico, aeroespacial, militar y cualquier otra situación que requiera electrónica que ofrezca un alto nivel de seguridad.
Hoy les voy a contar la historia de una investigación de análisis de causa raíz en la que participé. Detectamos algunas anomalías interesantes en los datos y resultó que teníamos errores tipográficos que causaban problemas en los resultados de nuestras pruebas. Les voy a explicar el proceso que utilizamos para identificar e investigar estas situaciones.
Voy a empezar con un poco de contexto sobre lo que hacía exactamente. Como ya dije, fabricaba circuitos integrados. Aquí tengo un ejemplo en pantalla. Mucha gente los llama chips. Los circuitos integrados vienen en distintas formas, tamaños y con diferente número de pines. Muchos tienen muchísimos pines que realizan diversas funciones. Al probar estos componentes, tenemos que repetir la misma prueba en muchísimos pines. Esto es algo que veremos en los datos de las pruebas en un momento.
Otro aspecto que quiero destacar de los circuitos integrados es la marca que llevan en la parte superior. Generalmente, estas marcas indican el fabricante, el tipo de producto y el número de lote, o quizás un código de fecha de lote. A veces también tienen números de serie. La mayoría de los productos con los que trabajo tienen números de serie, y así es como realizamos el seguimiento de los mismos a lo largo de nuestro proceso de fabricación. El número de serie será importante a medida que avancemos en este análisis.
Cuando fabricamos las piezas, la planta donde trabajo tiene una alta variedad de productos y un bajo volumen de producción. No fabricamos muchas piezas a la vez, pero en un día cualquiera podemos estar fabricando muchos productos diferentes.
Cuando fabricamos en serie, las organizamos. Voy a describir lo que hacemos durante una prueba. En una prueba, cargamos el programa de prueba en nuestro equipo automatizado y un operario, una vez cargado el programa, toma una pieza, la examina, lee la marca, la coloca en el dispositivo de prueba, introduce el número de serie y pulsa "Probar". La prueba se ejecuta y se recopilan los datos. Al finalizar, el operario retira la pieza del dispositivo, la vuelve a colocar en la bandeja y repite el proceso con todas las piezas del lote.
Para recapitular, acabo de describir el procedimiento general que podríamos seguir en una prueba. El flujo principal consiste en probar las piezas a temperatura ambiente. Luego, las sometemos a esfuerzos. Posteriormente, las volvemos a probar a temperatura ambiente, y finalmente, las probamos en frío y en caliente. Estas serán las temperaturas mínima y máxima de operación según las especificaciones.
Tras estas pruebas, repetimos el proceso con las piezas a temperatura ambiente y luego en frío y en caliente. Esta segunda ronda de pruebas forma parte de nuestros controles de calidad para asegurar que no se produzca un número excesivo de fallos que superen la primera fase de control en las operaciones dos y tres. La investigación de la causa raíz en la que participé surgió al observar una tasa de fallos superior a la deseada en las operaciones de prueba cuatro y cinco, donde no esperábamos tantos fallos.
La investigación tomó varios rumbos distintos. Me centraré en una de esas ramas: tomamos los datos de algunos fallos detectados en las pruebas y los analizamos en detalle. Normalmente, para un parámetro medido dado, si analizábamos los datos en frío, veíamos que un dispositivo determinado, si su valor se encontraba en el extremo superior de la distribución en frío, también lo estaría a temperatura ambiente y en caliente. Del mismo modo, ocurría lo mismo si el valor se encontraba en el extremo inferior o en el punto medio.
Algunos de los dispositivos que fallaron más adelante en el proceso no siguieron ese patrón. Presentaban un patrón en el que, a veces, algunos datos indicaban valores altos, otros valores bajos, y luego otros nuevos valores altos. Esto no tenía mucho sentido. Desde el punto de vista de la física de dispositivos semiconductores, esto no tiene sentido.
Tras una lluvia de ideas, se decidió que la causa principal más probable de los datos que estábamos viendo era que tal vez no estábamos viendo los datos de los dispositivos que esperábamos, y que tal vez se estaban mezclando algunos errores tipográficos con nuestros datos, lo que causaba esta confusión.
A medida que avanzábamos en esta investigación, buscábamos una técnica de análisis que nos permitiera obtener datos de cualquiera de nuestras partes. Nuevamente, nos encontramos ante un entorno con una alta heterogeneidad de datos. Queríamos asegurarnos de que el proceso no requiriera demasiados conocimientos especializados. Buscábamos un procedimiento sencillo y que permitiera revisar los resultados con claridad. Ese fue nuestro objetivo durante toda la investigación.
Ese es el contexto de lo que hacemos y por qué lo hacemos. Los datos de ejemplo que voy a usar están disponibles en el diario de JMP aquí. Si haces clic en ese botón, se generará un conjunto de datos. Ya tengo este conjunto de datos abierto. Primero me gustaría explicar brevemente qué son los datos; ya los entendemos.
Estos son datos. Esta tabla contiene 441 filas. Cada fila representa una prueba realizada. Esto coincide con la presentación de PowerPoint que acabamos de revisar. Se registra la temperatura de la prueba y el número de serie introducido por el operador durante la misma. Este conjunto de datos también incluye 300 columnas con valores medidos. Cada fila de la tabla corresponde a una ejecución del programa de prueba. Como podemos observar, tenemos un gran número de pruebas: 300.
Mencioné que tenemos varios pines diferentes. Podemos ver que tenemos mediciones para la prueba A realizadas en el pin uno. La prueba A también obtuvo mediciones para el pin dos. Si me desplazo rápidamente, podemos ver que realizamos muchas pruebas en muchos pines diferentes. Tenemos otras pruebas que no se realizan pin por pin. Algunas de las pruebas no se comportan de esa manera, pero muchas sí. Básicamente, tenemos un conjunto completo de pruebas, lo que nos da 300 columnas de valores medidos.
Un punto importante que quiero destacar es que tenemos la tabla de datos y los datos están apilados. Algunas filas contienen datos de temperatura ambiente, otras de temperatura ambiente (frío) y otras de temperatura ambiente (calor). Al preparar los datos, usaré la función GROUP BY de JMP para asegurar que las estadísticas que calculemos no se vean afectadas por las diferencias de temperatura.
Hagamos un repaso rápido de algunos datos. Si abro el Generador de Gráficos, podemos ver la operación en curso, la temperatura de recopilación de datos y todos los números de serie de las pruebas. En el eje Y, tenemos los valores medidos, y observamos que los datos a temperatura ambiente se encuentran aproximadamente aquí. A bajas temperaturas, el valor baja. A altas temperaturas, vuelve a bajar. Y así sucesivamente. Volvemos a la temperatura ambiente, luego a bajas temperaturas y finalmente a altas temperaturas.
Las variaciones en los valores medidos son bastante comunes en semiconductores. Disculpen. Las variaciones son bastante comunes en la recopilación de datos de semiconductores. Si revisamos muchas de estas pruebas, podemos ver que estamos realizando la misma prueba en muchos de estos dispositivos. Terminamos con muchos parámetros altamente correlacionados. Si continuamos, muchas de estas pruebas se ven muy similares entre sí. Si pasamos a otras pruebas que podrían verse diferentes, encontramos otras con datos que difieren. Algunas de las pruebas tienen respuestas diferentes a la temperatura.
Aquí tenemos un ejemplo. Algunos de los valores medidos presentan valores atípicos bastante extremos. En semiconductores, es frecuente que si un dispositivo tiene un defecto y falla, la falla sea grave. Sin duda, debemos controlar los valores atípicos en nuestro proceso. Observamos que hay variaciones en los valores medidos debido a la temperatura. De nuevo, tendremos que usar la función de agrupación de JMP para gestionar esto, ya que nuestros datos están agrupados en columnas.
Un vistazo rápido a la distribución de nuestros números de serie revela que tenemos 65 entradas únicas en este conjunto de datos. En total, tenemos 65 números de serie en esta muestra. Ya hemos explorado los datos y tenemos una idea general de lo que estamos viendo. A continuación, comenzaremos a implementar el proceso que resultó eficaz para detectar errores tipográficos en nuestros datos.
Nuestro primer paso consiste en preparar los datos para eliminar los valores atípicos mediante la herramienta Explorar valores atípicos. También calcularemos una puntuación Z estandarizada utilizando la función Columnas de fórmula. Para ello, utilizaremos las opciones Analizar > Detección > Explorar valores atípicos. Seleccionaremos los 300 valores medidos y realizaremos este análisis por temperatura.
Me interesa usar la función de valores atípicos del rango de cuantiles para esto. Cabe mencionar que, a lo largo de esta presentación, usaré la configuración predeterminada de JMP en todas las plataformas. Usaré la función de valores atípicos del rango de cuantiles con la configuración predeterminada. Al principio, para eliminar los valores atípicos de la tabla, usaré la opción "Crear columna de fórmula".
Voy a dejar la configuración predeterminada. Ahora voy a pasar a la habitación. Para la habitación, haré lo mismo: columna de fórmula. Para la temperatura, haré lo mismo: columna de fórmula. Ahora, hemos generado varias columnas de fórmula en nuestra tabla. Si realizo una pequeña limpieza, tendremos 300 columnas nuevas de datos donde se han eliminado los valores atípicos.
Lo siguiente que quiero hacer es configurar la operación y la temperatura para que se utilicen como criterio de agrupación… Porque voy a usar la nueva función de columna de fórmula, pero quiero obtener la funcionalidad de agrupación que podemos obtener configurando esto para que las estadísticas se calculen por temperatura y por operación para nuestros 300 parámetros atípicos.
Con las 300 columnas a las que les hemos eliminado los valores atípicos, si hago clic derecho aquí, debajo de la nueva columna de fórmula, en Distribución, tenemos Estandarizar, que calculará la puntuación Z estandarizada para todos nuestros parámetros. Esto crea un nuevo grupo de columnas. Si realizo una pequeña limpieza, ahora tenemos 300 columnas de datos estandarizados.
Para visualizar rápidamente lo que hemos logrado, si abro el Generador de Gráficos y observo la prueba E8, veremos que antes teníamos un valor atípico extremo que dificultaba la visualización de los datos. Tras eliminar los valores atípicos, pudimos ver los datos, pero seguían observándose saltos entre los valores medidos en las diferentes operaciones y temperaturas. Después de estandarizar los datos por operación y temperatura, hemos centrado cada una de las distribuciones en cero y les hemos asignado una desviación estándar de uno, lo que significa que prácticamente todos los datos se encuentran dentro del rango de ±3.
Nos equivocamos de lugar en esta escala. Ahora podemos hacernos preguntas como: ¿se encontraban estos puntos en el extremo superior de la distribución para esa operación y temperatura? ¿Estaban en el extremo inferior de la distribución para esa operación y temperatura? ¿O estaban en el punto medio de la distribución para esa operación y temperatura? Eso es lo que hicimos en la etapa de preparación de datos.
El siguiente paso es identificar cuáles de estos 300 parámetros predicen mejor el número de serie. Para ello, utilizaremos la selección de predictores. Sé, a partir de los datos, que tengo varios parámetros altamente correlacionados entre sí. Sé que los resultados de la selección de predictores también mostrarán algunos parámetros altamente correlacionados. Tras realizar la selección de predictores, utilizaremos variables de clúster para eliminar muchos de los parámetros altamente correlacionados y conservar únicamente los más representativos de las pruebas que buscamos.
Para ello, utilizaremos el cribado predictivo. Incluiremos todas nuestras columnas estandarizadas y le pediremos que determine el número de serie. Como se puede ver a continuación, aquí abajo encontrará algunas opciones. En esta presentación, he utilizado la configuración predeterminada. JMP procesará estos datos y generará un informe donde ordenará los parámetros que mejor describen el número de serie del dispositivo.
Echando un vistazo rápido, parece que el primer parámetro es muy bueno, seguido de varios que también parecen bastante buenos. Si seguimos bajando, después de unos 20 parámetros, añadir nuevos no aporta mucho beneficio. Voy a seleccionar los 20 mejores. Estos ya están seleccionados en la tabla de datos. Ahora, en Analizar agrupamiento, usaré variables de agrupamiento para identificar las variables con mayor correlación en esta lista de 20.
Si coloco esos 20 en las columnas Y, obtenemos este informe donde suelo buscar rojo y azul brillantes. Juego a contar los cuadrados. Parece que hay 1, 2, 3, 4, 5, 6. Tras este análisis, espero obtener unos seis parámetros que podremos usar para la detección de errores tipográficos.
Antes de continuar, me aseguraré de que no haya ninguna columna seleccionada en la selección de columnas para que, al seleccionarlas en este informe, se seleccionen automáticamente. En este resumen de clústeres, parece que se tomaron nuestros 20 parámetros y se indicó: "Puedo dividirlos en cuatro grupos, y aquí están los más representativos de cada grupo".
Eso está genial. Pero he notado que esta plataforma tiende a agrupar los datos. Parece que tengo dos parámetros que no se correlacionan bien con ninguno de los otros 20. Estos se añadieron a algunos de estos otros grupos, y no quiero que eso ocurra. No solo me fijo en cuál es el más representativo, sino que también reviso esta columna y me aseguro de que, si un parámetro termina en ese grupo, tenga una buena correlación dentro del mismo.
Si observamos aquí abajo, vemos que muchos de estos valores son muy cercanos a uno, lo que significa que tienen una alta correlación. Pero luego tenemos este otro valor, muy cercano a cero. No se correlaciona bien con el grupo en el que se agrupó, ni tampoco con el siguiente grupo más cercano. De hecho, no se agrupa bien con ningún otro. Quiero mantener este parámetro en el análisis. Al mirar más abajo, parece que hay otro valor que tampoco se correlaciona bien con su grupo. Con estos cuatro, más estos dos, obtengo los seis que esperaba según la imagen.
Esto nos da seis columnas seleccionadas en nuestra tabla de datos. Si las reorganizo un poco, desagrupándolas y agrupándolas, obtenemos una lista de lo que considero nuestros mejores predictores para intentar comprender los números de serie a partir de los datos disponibles.
Ahora que hemos identificado nuestros parámetros importantes, estamos listos para realizar el análisis que nos indicará si existen errores tipográficos en los números de serie. Para ello, utilizaremos la plataforma de clustering jerárquico. En la sección de clustering jerárquico, utilizaremos los seis mejores predictores que acabamos de identificar y los etiquetaremos con el número de serie.
De nuevo, hay más opciones. Simplemente mantuve la configuración predeterminada de JMP para todo. Esto nos proporciona el informe de la agrupación jerárquica. Me gustaría hacer algunos cambios aquí, donde configurar los clústeres por color facilita un poco la visualización de los diferentes grupos. Me gusta controlar cuántos clústeres se crean. Cuando revisamos los datos inicialmente, había 65 números de serie diferentes en este lote. He descubierto que este procedimiento funciona mejor si no se establece exactamente en 65, sino un poco menos que el número total de dispositivos que se esperan en el lote. Para este ejemplo, lo voy a establecer en algo… no lo voy a establecer en 65. Lo voy a establecer en 58.
Lo último que necesito para comenzar este análisis es aplicar un filtro a la tabla de datos, configurándolo para que se muestre por número de serie. Esto me permitirá seleccionar todas las filas donde el número de serie sea, por ejemplo, uno. Al hacerlo, podemos ver en el dendrograma que las filas de datos relacionadas con el número de serie uno se agrupan. Todas son del mismo color y están alineadas verticalmente.
Esto sugiere que nuestro algoritmo de agrupamiento ha funcionado correctamente con los seis parámetros que le proporcionamos. Si analizamos los datos, vemos que el número de serie dos también se agrupó bien. Si seguimos analizando los datos, número de serie por número, observando la eficacia de estos grupos… Llegamos al número de serie 17, donde parece que la mayor parte de los datos se concentra en la parte inferior, y al menos uno de los datos, al parecer, se encuentra en la parte superior.
Existe una distancia vertical considerable entre estos puntos. Sin embargo, más importante que la distancia vertical es trazar una línea que los conecte. Parece que tendría que trazar esta línea. Entonces, la pregunta es: ¿cuánto hay que desplazarse hacia la derecha? Tuvimos que desplazarnos bastante hacia la derecha para establecer esta conexión. Cuanto más a la derecha haya que desplazarse, más probable es que estos datos no se correspondan con los demás.
Según mi interpretación de este dendrograma, diría que estos datos son bastante diferentes. Si me fijo en este punto que parece aislado, se observa que, según los seis parámetros que teníamos, al realizar las pruebas, en la mayoría de los dispositivos que presentaban estas características en sus datos de prueba eléctrica, el número de serie introducido era el 12, salvo en una ocasión en la que el número de serie introducido durante la prueba fue el 17.
Es probable que se trate de un caso de lectura errónea de la marca en la pieza. Parece bastante probable que, dependiendo de la fuente y el tamaño de la marca, un dos pueda parecer un siete. Esta es una de las formas comunes en que hemos visto errores tipográficos en nuestros datos. Este método acaba de identificarlos. Sí, hemos podido identificar errores tipográficos en este conjunto de datos utilizando este método.
A continuación, seleccionamos todos los puntos donde coincide el número de serie del dispositivo 18. Parece que hay cierta distancia entre algunos de ellos. Al ampliar los datos, si repetimos el proceso y trazamos una línea entre los puntos, parece que puedo conectarlos.
Entonces, la pregunta es: ¿cuánto tenía que ir hacia la derecha? No tuve que ir muy lejos. Parece probable que todos estos datos sean muy similares. Parece que los dispositivos 18 y 29 son prácticamente iguales, lo que ha provocado una ligera separación en las entradas del dispositivo 18. No me parece un error tipográfico. Simplemente parece que dos partes se parecen. Definitivamente, no es algo que merezca más investigación.
Si continuamos con algunos números de serie más, vemos que se agrupan bien y llegamos al 25. Parece que hay una separación. Si seguimos analizando, parece que tuvimos que desplazarnos bastante hacia la derecha, por lo que estos datos no son muy similares. Si ampliamos el punto seleccionado, mejor aún, parece que, en la mayoría de los casos, las piezas con este aspecto al ser probadas obtienen un número de serie de 26, pero tenemos un caso con un 25.
Si ampliamos los demás puntos de datos seleccionados, el 25 suele tener este aspecto, excepto… Parece que tenemos un caso en el que se registró el número 26. Si observamos la selección en el dendrograma y alternamos entre los números de serie 25 y 26, vemos que… Se trata de un caso en el que teníamos dos dispositivos, el 25 y el 26. Ambos se probaron. Sin embargo, cuando se probó el dispositivo 25, se utilizó el número de serie 26. Cuando se probó el dispositivo 26, el número de serie registrado fue el 25.
Algo en estos números, se desordenaron o algo similar, causó este tipo de error tipográfico en nuestros datos de prueba. Este es otro tipo de error tipográfico que hemos identificado con esta metodología. Podríamos seguir revisando el resto de estos números de serie. Eso es lo que haríamos si estuviéramos haciendo todo el proceso. Pero por cuestiones de tiempo, solo voy a revisar estos.
Como parte del proceso, nos preguntamos si podíamos encontrar una forma sencilla, que no requiriera demasiados conocimientos especializados para analizar los datos y detectar posibles errores tipográficos. Considero que, tras este análisis, logramos identificar un proceso fácil de seguir. Si bien no contamos con un amplio conocimiento sobre los parámetros de prueba, pudimos seguir el proceso y obtener una breve lista de posibles errores tipográficos para discutir con los expertos en la materia.
El proceso es tan sencillo que hemos tenido buenas experiencias tanto con ingenieros experimentados como con nuevos. Utilizamos únicamente las funciones integradas de JMP, e incluso usamos todos los parámetros predeterminados, lo que facilita la automatización y la creación de scripts. Eso fue lo que hicimos en nuestro entorno. No tienen que hacerlo manualmente, pero todos los ingenieros siguen y comprenden el proceso que les acabo de explicar hoy.
Fue un éxito. Obtuvimos información valiosa. Pudimos identificar errores tipográficos en nuestros datos de prueba y, gracias a ello, detectamos un patrón sistemático: este tipo de error se repite con frecuencia. ¿Cuál es la causa? Este otro error ocurre bastante a menudo. ¿Cuál es la causa? Hemos podido mejorar algunos procesos y sistemas. También nos ha ayudado a mejorar la capacitación y ha sido una herramienta muy útil para dialogar y brindar retroalimentación a los operadores de prueba sobre lo que observamos y los problemas que tenemos. Al estar mejor informados, pueden supervisar mejor estos aspectos y aportar ideas para realizar cambios y seguir mejorando, continuando así con la producción de un producto de mayor calidad en nuestras instalaciones.
Ese es el proceso que hemos desarrollado y utilizado. Si dispone de datos longitudinales, es decir, si ha probado un dispositivo o producto varias veces en las mismas condiciones o en condiciones similares, quizás algunos de estos métodos también le ayuden a identificar posibles problemas en sus datos. Gracias por acompañarme. Espero que le haya resultado útil. Que tenga un buen día.