| Vocero |
Transcripción |
| Mia Stephens |
Bienvenidos a JMP Discovery Summit. Soy Mia Stephens, gerente de producto de JMP. Me acompaña Jordan Hiller, ingeniero de sistemas. Hoy hablaremos sobre la automatización del flujo de trabajo de curación de datos. |
| |
Y este es el resumen sólo como referencia; no voy a hablar de ello. |
| |
Dividiremos esta charla en dos partes. Comenzaré hablando del flujo de trabajo analítico. |
| |
Hablaremos sobre la creación de datos y lo que entendemos por curación de datos. Veremos cómo identificar posibles problemas de calidad en sus datos. |
| |
Y luego le daré la palabra a Jordan, y Jordan hablará sobre la necesidad de reproducibilidad. |
| |
Él compartirá con nosotros una hoja de trucos para la curación de datos y nos mostrará cómo curar sus datos en JMP. |
| |
El grabador de acciones y el registro mejorado. |
| |
Ahora hablemos del flujo de trabajo analítico. |
| |
Todo comienza con algún problema de negocio que estamos tratando de resolver. |
| |
Y, por supuesto, necesitamos compilar datos, y podemos compilarlos desde distintas fuentes y traerlos a un JMP. |
| |
Y al final, necesitamos poder compartir los resultados y comunicar nuestros hallazgos a otros. A veces, este es un proyecto único, |
| |
Pero a menudo tenemos análisis que vamos a repetir. Por lo tanto, una pregunta clave de esta charla es: ¿se pueden reproducir fácilmente los resultados? |
| |
¿Pueden otros reproducir sus resultados? O, si dispone de datos nuevos o actualizados, ¿puede repetir fácilmente su análisis y, en particular, los pasos de curación de datos con estos nuevos datos? De esto se trata en esta charla. |
| |
Pero ¿qué es exactamente la curación de datos? |
| |
¿Y por qué debemos preocuparnos por ello? |
| |
Bueno, la curación de datos consiste en garantizar que nuestros datos sean útiles para impulsar descubrimientos analíticos. Fundamentalmente, necesitamos ser capaces de resolver los problemas que intentamos abordar. |
| |
Y se trata en gran medida de la organización de datos, la estructura de datos y también la limpieza de datos. |
| |
Si pensamos en los problemas que podríamos encontrar con los datos, tienden a clasificarse en cuatro categorías generales: |
| |
Es posible que tenga un formato incorrecto, datos incompletos, datos faltantes o datos sucios o desordenados. |
| |
Para abordar estos temas, vamos a usar contenido de STIPS. Si no lo conoces, STIPS es nuestro curso gratuito: Pensamiento Estadístico para la Resolución de Problemas Industriales. |
| |
Y este es un curso basado en siete módulos independientes, y el segundo módulo es el análisis exploratorio de datos. |
| |
Y debido a la naturaleza iterativa e interactiva del análisis exploratorio de datos y la curación de datos, la última lección de este modelo... en este módulo se llama Preparación de datos para el análisis, por lo que tomaremos prestado mucho de esta lección a lo largo de esta charla. |
| |
Analicemos cada uno de estos problemas. Formato incorrecto. ¿Qué significa formato incorrecto? Bueno, esto ocurre cuando los datos tienen un formato incorrecto o no son adecuados para el análisis. Esto puede aplicarse a la tabla de datos en su conjunto. Por ejemplo, podría tener... |
| |
llamados...datos almacenados en columnas separadas, pero en realidad necesitas tener los datos almacenados en una sola columna. |
| |
O podría suceder que tenga sus datos en tablas de datos separadas y necesite concatenar, actualizar o unir las tablas de datos. |
| |
Puede estar relacionado con variables individuales. Por ejemplo, podría tener un tipo de modelado incorrecto. O podría tener fechas en su tabla de datos, por lo que podría tener columnas de fechas que no tengan el formato de días, por lo que el análisis podría no reconocer que se trata de datos de fecha. |
| |
El formato también puede ser superficial. Por ejemplo, si trabajas con una tabla de datos grande, podrías tener muchas columnas... |
| |
Es posible que tenga nombres... nombres de columnas que no sean realmente reconocibles y que quizás desee cambiar. |
| |
Es posible que tenga muchas columnas que desee agrupar para que sea un poco más manejable. |
| |
Es posible que su columna de respuestas esté al final de la tabla de datos y quiera moverla hacia arriba. Por lo tanto, los problemas estéticos no necesariamente obstaculizarán su análisis, pero si puede solucionar algunos de ellos, podrá facilitarlo un poco. |
| |
Los datos incompletos se dan cuando faltan datos. Esto puede deberse a la falta de datos sobre variables importantes. Por ejemplo, es posible que no se hayan recopilado datos sobre variables fundamentales para resolver el problema. También podría deberse a la falta de datos sobre una combinación de variables. |
| |
Por ejemplo, es posible que no tengas suficiente información para estimar una interacción. |
| |
O quizás tenga una variable objetivo que le interese y que esté desequilibrada, por lo que podría estar estudiando algo como defectos. Puede que solo represente el 5% de sus observaciones. |
| |
son para defectos y es posible que no tenga suficientes datos, ya que es posible que solo tenga un subconjunto muy pequeño de sus datos |
| |
Dónde está presente el defecto. Es posible que no disponga de suficientes datos para comprender las posibles causas de los defectos. También es posible que no disponga de una muestra lo suficientemente grande, por lo que simplemente no dispondrá de suficientes datos para obtener estimaciones fiables. |
| |
Los datos faltantes se producen cuando faltan valores para las variables y esto puede adoptar varias formas diferentes. |
| |
Si faltan datos, y la falta de datos no es aleatoria, puede causar un problema grave y es posible que tenga estimaciones sesgadas. |
| |
Si faltan datos completamente al azar, esto podría no ser un problema si solo faltan unas pocas observaciones, pero si faltan muchos datos, esto puede ser problemático. |
| |
Los datos sucios y desordenados se producen cuando existen problemas con las observaciones o las variables. Por lo tanto, es posible que se tengan valores incorrectos, o simplemente valores erróneos. |
| |
Podría haber inconsistencias. Por ejemplo, podría haber errores tipográficos o de ortografía cuando las personas introducen datos de forma diferente. |
| |
Los valores podrían ser inexactos. Por ejemplo, podría tener problemas con su sistema de medición. Puede haber errores, erratas o que los datos estén obsoletos. |
| |
Los datos obsoletos son aquellos que contienen datos, por ejemplo, de una instalación o máquina que ya no está en servicio. |
| |
Los datos pueden estar desactualizados, por lo que es posible que tenga datos que se remonten a un período de dos o tres años, pero el proceso puede haber cambiado en algún momento de ese período de tiempo. |
| |
Esto significa que esos datos históricos podrían no ser relevantes para el proceso actual. Sus datos podrían estar censurados o truncados. |
| |
Puede tener columnas redundantes, que contienen básicamente la misma información, o puede tener observaciones duplicadas. |
| |
Por eso, los datos sucios o desordenados pueden adoptar muchas formas diferentes. |
| |
¿Y entonces cómo identificar posibles problemas? |
| |
Bueno, un buen punto de partida es explorar los datos. De hecho, identificar problemas lleva a la exploración y posterior análisis de datos. A medida que se exploran los datos, se empiezan a identificar elementos que podrían causar problemas en el análisis. |
| |
Un buen punto de partida es escanear la tabla de datos para detectar problemas obvios. |
| |
Entonces, vamos a utilizar un ejemplo a lo largo del resto de esta charla llamado Componentes, y este es un ejemplo del curso STIPS. |
| |
Una empresa produce componentes pequeños y tiene un problema de rendimiento. Se recopilaron los datos de 369 lotes. Se registraron 15 características, y queremos usar estos datos para comprender las posibles causas del bajo rendimiento. |
| |
Así que, si analizamos la tabla de datos, encontramos algunas pistas sobre los posibles problemas de calidad de los datos. Y un excelente punto de partida (añadido en JMP 15). |
| |
Son gráficos de encabezado. Me encantan. Si tienes una variable continua, te muestran un histograma para que puedas ver el centrado, la forma y la dispersión de la distribución. |
| |
También se muestra el rango de valores. Si se tienen datos categóricos, se mostrará un gráfico de barras con los valores de las barras más pobladas. Veamos algunos de ellos. Empezaré con el número de lote. Este número muestra un histograma, que tiene una forma uniforme. |
| |
Los números de lote son algo que probablemente sea un identificador, por lo que desde el principio puedo ver que estos datos probablemente estén codificados incorrectamente. |
| |
Puedo ver que esta distribución está muy sesgada y también puedo ver que el valor más bajo es -6, y esto puede hacer que me pregunte sobre la viabilidad de tener un número de descarte negativo. |
| |
El proceso es otro. Tengo básicamente dos barras y me muestra un histograma con solo dos valores. |
| |
Y mientras miro estos gráficos de columnas, estos gráficos de encabezado, puedo mirar el panel de columnas, |
| |
Es bastante fácil ver que, por ejemplo, el número de lote, el número de pieza y el proceso se codifican como continuos. Al importar datos a JMP, si JMP detecta números, codificará automáticamente estas columnas como numéricas continuas. Por lo tanto, es posible que queramos cambiar estos aspectos. |
| |
También podemos analizar los datos en sí. Por ejemplo, cuando analizo la humedad (y el contexto es fundamental al analizar los datos), la humedad es algo que consideraríamos datos continuos. |
| |
Pero tengo un par de campos aquí donde tengo N/D. |
| |
Si tiene datos alfanuméricos o datos de texto en una columna numérica, esta se codificará como nominal al importar los datos a JMP. Por lo tanto, esto es algo que, de entrada, debemos corregir. |
| |
También puedo revisar las demás columnas. Por ejemplo, en Proveedor, veo que me faltan algunos valores. Al importar datos a JMP, si hay... |
| |
En las celdas vacías de datos categóricos, sabemos que faltan valores. Veo que hay algunas entradas donde no hay coherencia... la forma en que se ingresaron los datos no es coherente. |
| |
Así que estoy obteniendo algunas pistas importantes sobre algunos problemas potenciales con mis datos. |
| |
Fíjate en todos los puntos. La temperatura es una variable continua, y donde veo puntos, indica que me faltan valores. Por lo tanto, la temperatura es muy importante para mi análisis; esto podría ser problemático. |
| |
Una extensión natural de esto es empezar a explorar los datos, una variable a la vez. Una de mis herramientas favoritas para empezar a analizar datos es el visor de columnas. Este visor nos ofrece resúmenes numéricos de las variables seleccionadas. |
| |
Si faltan valores, habrá una columna "N faltantes". Aquí veo que faltan 265 de los 369 valores de temperatura, así que esto representa una brecha importante si consideramos que la temperatura será importante en el análisis. |
| |
También puedo ver si tengo valores extraños. Por ejemplo, al consultar valores mínimos y máximos de la cantidad de piezas desechadas y la tasa de descarte, obtengo valores negativos. Si esto no es factible, entonces tengo un problema con los datos o con el sistema de recopilación de datos. |
| |
También es bastante fácil detectar errores de codificación en las variables. Por ejemplo, el centro y el número de lote, que probablemente deberían codificarse como nominales, informaban la media y la desviación estándar. |
| |
Y una buena manera de pensar en esto es que, si no es físicamente posible tener un número de lote promedio (el número de pieza era la otra variable) o un número de pieza, entonces estos deberían cambiarse a variables nominales, en lugar de continuas. |
| |
Distribuciones es el siguiente lugar al que recurro cuando me estoy familiarizando con mis datos. |
| |
Y las distribuciones, si tienes datos continuos, te permiten entender la forma, el centrado y la dispersión de tus datos, pero también puedes ver si tienes algunos valores inusuales. |
| |
Para datos categóricos, también puede ver cuántos niveles tiene. Por ejemplo, el número de cliente. Si el número de cliente es una variable importante o potencialmente importante, |
| |
Tengo muchos niveles o valores para el número de cliente. Al preparar los datos, podría combinarlos en cuatro o cinco categorías con otra categoría para aquellos clientes de los que no dispongo de muchos datos. |
| |
Humedad. Vemos el problema de tener N/D en la columna. Vemos un gráfico de barras en lugar de un histograma. |
| |
Podemos ver fácilmente lo que buscábamos en los datos del proveedor. Por ejemplo, Cox Inc. y Cox. Anderson se escribe de tres maneras diferentes, Hersh se escribe de tres maneras diferentes. |
| |
Para la velocidad, observe que tenemos una distribución amontonada que va desde aproximadamente 60 a 140, pero en la parte inferior, vemos que hay uno o dos valores. |
| |
Eso está bastante cerca de cero, y esto podría ser... podría haber sido un error de entrada de datos, pero definitivamente es algo que nos gustaría investigar. |
| |
Una extensión de esto es comenzar a analizar los datos con dos variables a la vez. Por ejemplo, usando el Constructor de Gráficos o diagramas de dispersión. |
| |
Y cuando miras las variables de dos en dos, puedes ver patrones y puedes ver más fácilmente patrones inusuales que cruzan más de una variable. |
| |
Por ejemplo, si miro la tasa de descarte y la cantidad de productos desechados, veo que tengo algunas bandas. Y es posible que tenga algo en su tabla de datos que explique este patrón. |
| |
Y en este caso, las bandas se atribuyen a diferentes tamaños de lote, por lo que esta banda violeta es donde tengo un tamaño de lote de 5000. |
| |
Y tengo muchas más posibilidades de obtener desperdicios con un lote mayor que con uno menor. Así que esto podría tener sentido, pero también veo algo que no lo tiene: estos dos valores están en el rango negativo. |
| |
Así que es bastante fácil verlos cuando miro los datos en dos dimensiones. |
| |
Puedo agregar dimensionalidad adicional a mis gráficos mediante el uso de conmutadores de columnas y filtros de datos. |
| |
Esto también me lleva a un análisis potencial, por lo que podría interesarme entender cuáles son las x que podrían ser importantes y que podrían estar relacionadas con la tasa de desperdicio. |
| |
Y, al mismo tiempo, analice los problemas de calidad de los datos o los posibles problemas. En cuanto a la tasa de rechazo, parece que existe una relación positiva entre la presión y la tasa de rechazo. |
| |
No parece haber mucha relación. La tasa de desecho frente a la temperatura es bastante plana, así que no hay mucha variación. |
| |
Pero fíjense en la velocidad. Hay una relación negativa, pero en la parte superior veo esos dos valores: el valor que vi en el histograma, pero hay un segundo valor que parece destacar. |
| |
Así que podría ser que este valor alrededor de 60 sea simplemente un valor atípico, pero podría ser un punto válido. Probablemente me preguntaría si este punto aquí abajo, cerca de 0, es válido o no. |
| |
Hemos examinado la tabla de datos. Hemos analizado los datos variable por variable. Hemos examinado los datos de dos en dos, y todo esto encaja perfectamente con la exploración de datos y nos lleva al análisis. |
| |
Hay herramientas más avanzadas que podríamos utilizar (por ejemplo, explorar valores atípicos, explorar valores faltantes) que están más allá del alcance de este curso o de esta charla. |
| |
Y cuando comiences a analizar tus datos, probablemente identificarás problemas adicionales. Por ejemplo, si tienes muchas categorías de variables categóricas... |
| |
Si intentas ajustar una interacción en un modelo de regresión, sabes que JMP te advertirá que no puedes hacerlo. Por lo tanto, al comenzar a analizar los datos, todo este proceso es iterativo e identificarás posibles problemas a lo largo del proceso. |
| |
Una clave es tomar nota de los problemas que encuentre al revisar sus datos. Algunos de ellos pueden ser... |
| |
Se corrigen a medida que avanza, lo que permite ocultar y excluir valores, remodelar y limpiar los datos sobre la marcha, pero podría decidir que necesita recopilar nuevos datos. Quizás le convenga realizar una evaluación de errores para tener más confianza en los datos. |
| |
Si sabe que va a repetir este análisis o que alguien más querrá repetirlo, |
| |
Entonces querrás asegurarte de registrar los pasos que estás siguiendo para que haya reproducibilidad. Alguien más puede reproducir tus resultados, o puedes repetir tu análisis más tarde. Así que aquí es donde le voy a dar la palabra a Jordan, y Jordan va a... |
| |
Hablemos de la curación de datos reproducibles. |
| Jordan Hiller |
Está bien, gracias, Mia. |
| |
Hola, soy Jordan Hiller. Soy ingeniero de sistemas en JMP. Profundicemos un poco en la reproducibilidad. |
| |
para la curación de sus datos. |
| |
Mia presentó esta idea muy bien, pero demos algunos detalles más. La idea es que podamos repetirla fácilmente. |
| |
Todos los pasos de curación que utilizamos para preparar nuestros datos para el análisis, y veo tres beneficios principales al hacerlo. El primero es la eficiencia. Si sus datos cambian y necesita repetir estos pasos de curación con nuevos datos en el futuro, |
| |
Es mucho más eficiente ejecutarlo una vez con un script de un solo clic que repetir todas las actividades de apuntar y hacer clic. La precisión es la segunda ventaja. Apuntar y hacer clic puede ser propenso a errores, y al convertirlo en un script, se garantiza una reproducción precisa. |
| |
Y por último, está la documentación, y esto quizás no se valore lo suficiente. Si tienes un script, documenta los pasos que... |
| |
Tomó. Es un rastro de migas de pan que puedes revisar más adelante cuando, inevitablemente, tengas que retomar este proyecto y recordar: ¿qué hice para preparar estos datos? |
| |
Tener ese script es de gran ayuda. Hoy analizaremos un caso práctico. Les mostraré cómo generar uno de estos scripts de curación de datos reproducibles. |
| |
Usando solo apuntar y hacer clic. La tecnología que la habilita es nueva en JMP 16: el registro mejorado y la grabación de acciones que se encuentran en el registro mejorado. |
| |
Así que esto es lo que haremos: realizaremos nuestras actividades de curación de datos como de costumbre, simplemente apuntando y haciendo clic. Mientras lo hacemos, |
| |
El script que necesitamos, el código de computadora (se llama código JSL, JSL para lenguaje de scripting JMP) será capturado automáticamente para nosotros. |
| |
En el nuevo registro mejorado. Y cuando terminemos con nuestra selección de código, solo tenemos que guardar ese código. Quizás queramos hacer algunos ajustes o modificaciones para hacerlo un poco más robusto, pero esa parte es opcional. |
| |
Bien, esta es una hoja de referencia que puedes usar. Estas son algunas de las actividades de limpieza de datos más comunes. |
| |
y cómo hacerlo en JMP 16 de forma que se deje un rastro de migas de pan, de forma que el script JSL quede en el registro mejorado. Abarca aspectos como operar en filas y columnas, |
| |
formas de modificar la tabla de datos, todas nuestras operaciones de limpieza de datos y cómo hacerlo mediante apuntar y hacer clic. |
| |
Por lo tanto, no es una lista exhaustiva de todo lo que puede necesitar hacer para limpiar los datos, y tampoco es una lista exhaustiva de todo lo que se captura en el registro mejorado, pero esta es la información más importante a su alcance. |
| |
Muy bien, entonces vayamos a nuestro estudio de caso usando ese archivo de componentes que presentó Mia y hagamos nuestro script de curación de datos en JMP 16 usando el registro mejorado. |
| |
Estamos en JMP 16. Cabe mencionar que esta es la última versión del programa de adopción temprana de JMP 16, por lo que es una versión preliminar. Sin embargo, estoy seguro de que será muy similar a la versión de lanzamiento de JMP 16. |
| |
Entonces, para llegar al registro, |
| |
Se lo mostraré aquí. Se ve diferente si está acostumbrado al registro de versiones anteriores de JMP. Está dividido en estos dos paneles: |
| |
Bien, un panel de mensajes arriba y un panel de código abajo. Nos detendremos un rato aquí. Les mostraré cómo es, pero les daré una vista previa rápida, si tuviera que realizar algunas acciones rápidas como importar un archivo y quizás eliminar esta columna. |
| |
Puedes ver que esos dos pasos que realicé (la importación de datos y la eliminación de la columna) están enumerados aquí en este panel de mensajes. |
| |
Y el código, el código JSL que necesitamos para el script de curación de datos reproducible, está aquí abajo, en este panel inferior. Bien, entonces... |
| |
Eso es realmente muy emocionante, la capacidad de tener este código y tomarlo cuando lo necesites simplemente apuntando y haciendo clic es un gran beneficio en JMP 16. |
| |
En JMP 16, esta nueva vista de registro mejorada está activada por defecto. Si desea volver a la versión anterior del registro, ese registro de texto simple, puede hacerlo aquí, en la sección de preferencias de JMP. Hay una nueva... |
| |
Sección del registro y, si lo prefiere, puede volver a la vista de texto anterior. Al instalar JMP 16, la opción predeterminada es el registro mejorado. Hablaremos de algunas de estas funciones más adelante, en nuestro caso práctico. |
| |
Está bien, entonces voy a limpiar. |
| |
Por ahora, el registro del triángulo rojo. Borre el registro y comencemos con nuestro caso práctico. Importemos los datos de componentes que Mia compartió con ustedes. Comenzaremos con este archivo CSV. |
| |
Entonces |
| |
Voy a realizar la importación más sencilla, simplemente arrastrándolo. Ah, ya tenía una versión abierta. Disculpen, empiezo cerrando la versión anterior. |
| |
y borre el registro una vez más. |
| |
Bien, importación simple |
| |
arrastrándolo a la ventana de JMP. Y ahora tenemos ese archivo, Componentes A, con 369 lotes, y procedamos con nuestras actividades de limpieza de datos. Activaré |
| |
Los gráficos del encabezado. Lo primero que vemos es que la columna de instalaciones solo tiene una entrada, un valor: FabTech, así que no hay variación ni nada interesante. Voy a eliminarla con un clic derecho. |
| |
Y nuevamente, esto se captura a medida que avanzamos en el registro mejorado. |
| |
Bien, ¿qué más? Imaginemos que esta columna de tasa de desperdicio, casi al final de la tabla, es muy importante para nosotros y me gustaría verla antes. La voy a mover a la cuarta posición. |
| |
Arrastrándolo del panel de columnas hasta justo después del número de cliente. Listo. |
| |
Mia mencionó que esta columna de humedad está representada incorrectamente en la importación, principalmente debido a esos N/A |
| |
Caracteres alfabéticos que hacen que aparezca como variable de carácter. Vamos a solucionarlo. Accederemos a la información de la columna haciendo clic derecho aquí. |
| |
Y cambie el tipo de datos de carácter a numérico, y el tipo de modelado de nominal a continuo. Haga clic en Aceptar. Haga clic en el registro aquí. Como pueden ver, ya hemos capturado cuatro pasos y continuaremos. |
| |
Bien, ¿qué sigue? Tenemos varias variables que deben cambiarse de continuas a nominales. Estas son el número de lote, el número de pieza y el proceso. Con las tres seleccionadas, haré clic derecho y cambiaré de continuas a nominales. |
| |
Y todo eso ha sido corregido. |
| |
Y nuevamente podemos ver que esos tres pasos se registran aquí en el registro. |
| |
Bien, ¿qué más? Algo más, un poco estético: esta columna, Presión. A mis ingenieros les gusta que el nombre de la columna sea PSI, así que la cambiaremos simplemente seleccionando la columna y escribiendo PSI. Sal de ahí para ir a otro lugar. Esto también se registrará en el registro. |
| |
El proveedor. Mia nos mostró que hay algunas incoherencias ortográficas. Probablemente hay demasiados valores aquí. Necesitamos corregir los valores de los caracteres. Si encuentra valores de caracteres incorrectos o incoherentes en una columna, piense en la herramienta de recodificación. |
| |
La herramienta de recodificación es una forma muy eficiente de solucionar este problema. Al hacer clic derecho en el proveedor, accederemos a la herramienta de recodificación. |
| |
Agrupémoslos adecuadamente. Empezaré con algunas opciones de triángulo rojo. Convirtamos todos los valores a mayúsculas y minúsculas. |
| |
También recortaremos ese espacio en blanco para corregir el espaciado inconsistente. Esto ya ha corregido un par de problemas. Corrijamos todo lo demás manualmente. Voy a agrupar a los Anderson. Voy a agrupar a los Cox. |
| |
Agrupa los Hershey. Trutna y Worley ya están en lo cierto con una sola categoría. Y la última corrección que haré es para las cosas que están, ya sabes, simplemente en blanco o faltantes; les daré una explicación explícita. |
| |
Falta etiqueta aquí. |
| |
Muy bien, y cuando hacemos clic en recodificar, |
| |
Hemos realizado esas correcciones en una nueva columna llamada Proveedor 2. |
| |
Eso sólo tiene 1, 2, 3, 4, 5, 6 categorías corregidas y colapsadas. |
| |
Bien. |
| |
Bien, hagamos un cálculo. Calcularemos el rendimiento usando el tamaño del lote y la cantidad de desechos. |
| |
Correcto. Y sí, sé que esto es un poco redundante. Ya tenemos la tasa de desperdicio y el rendimiento es solo uno menos la tasa de desperdicio, pero solo por el bien del argumento, realizaremos... |
| |
El cálculo. Quiero que la columna de rendimiento se inserte justo después del número descartado. Resaltaré el número descartado y luego iré al menú de columnas y seleccionaré "Nueva columna". |
| |
A esto lo llamaremos rendimiento. |
| |
Y vamos a insertar nuestra nueva columna después de la columna seleccionada, después del número descartado, y le daremos una fórmula para calcular el rendimiento. |
| |
Necesitamos la cantidad de unidades en buen estado. Esto será el tamaño del lote menos la cantidad de unidades desechadas. |
| |
Entonces ese es el número de unidades buenas y vamos a dividir todo ese total por |
| |
el tamaño del lote. |
| |
Número de unidades buenas dividido por el tamaño del lote, ese es nuestro cálculo de rendimiento. |
| |
Y haga clic en Aceptar. |
| |
Ahí está nuestro nuevo |
| |
Columna de rendimiento. Vemos que la tasa de desperdicio es de uno menos. Eso está bien, e ignoraremos, por ahora, que tenemos algunos rendimientos superiores al 100 %. |
| |
Bueno, casi terminamos. Solo unos cambios más. He notado que tenemos dos procesos, y por ahora están etiquetados como proceso 1 y proceso 2. |
| |
Eso no es muy descriptivo ni muy útil. Vamos a darles etiquetas más descriptivas. Al proceso 1 lo llamaremos proceso de producción; y al proceso 2, lo llamaremos proceso experimental. Así que lo haremos con etiquetas de valor, en lugar de recodificar. Revisaré la información de la columna. |
| |
y asignaremos etiquetas de valores a uno y dos. |
| |
Uno en esta columna representará la producción. |
| |
Añade esto. |
| |
Y dos representa experimental. |
| |
Añade esto. |
| |
Haga clic en Aceptar. Listo. Se muestran los datos uno y dos en los gráficos del encabezado, pero los datos de producción y experimentales aparecen aquí en la tabla de datos. |
| |
Bien, un último paso antes de guardar el script. Digamos, por ejemplo, que solo me interesan los datos... Quiero continuar con el análisis solo cuando el vacío esté desactivado. |
| |
Bien, voy a crear un subconjunto de los datos y una nueva tabla de datos que contenga solo las filas con el vacío desactivado. Lo haré haciendo clic derecho en una de estas celdas con el vacío desactivado. |
| |
y seleccionar celdas coincidentes. |
| |
Esto selecciona las 313 filas donde el vacío está desactivado. Ahora, iremos al subconjunto de la tabla. |
| |
Crea una nueva tabla de datos, que llamaremos vac_off. |
| |
Haga clic en Aceptar. |
| |
Muy bien, y esa es nuestra nueva tabla de datos con 313 filas que muestran solamente datos donde el vacío está desactivado. |
| |
Así que eso es todo. Hemos realizado toda la curación de datos y ahora revisemos el registro para conocer un poco más sobre lo que tenemos. |
| |
Bien, todos esos pasos, y algunos más que no tenía intención de hacer, se han capturado aquí en el registro. |
| |
Mira aquí, tenemos...cada línea es uno de los pasos que realizamos. |
| |
También hay cosas superfluas, como que en un momento borré la selección de filas. Realmente no necesitaba... Realmente no necesito incluir esa parte en mi script. |
| |
Se están borrando las filas seleccionadas, así que vamos a eliminarla. Simplemente haré clic derecho sobre ella y la borraré. Listo. |
| |
Bien, los mensajes están aquí arriba, el código JSL aquí abajo. Me gustaría que prestaran atención al origen y al resultado. Esto es bastante ingenioso. |
| |
Cada vez que realizamos un paso, cada vez que realizamos una acción con solo apuntar y hacer clic, hay algo sobre lo que realizamos esa acción y hay algo que resulta. Ese es el origen y el resultado. Por ejemplo, cuando eliminamos la columna de instalaciones... |
| |
Bueno, quizás ese sea un mal ejemplo... En lugar de eso, optemos por cambiar la información de la columna de humedad. El origen, lo que hicimos... |
| |
Era la tabla Componentes A, y la vemos aquí como la tabla de datos. Al pasar el cursor sobre ella, dice "Traer componentes A al frente". Al hacer clic ahí, nos lleva a la tabla Componentes A. ¡Genial! |
| |
El resultado es algo que hicimos en la columna de humedad. Cambiamos la humedad a tipo de dato numérico y a tipo de modelado continuo. Vean eso aquí abajo. |
| |
Puedo hacer clic aquí, ir a la columna de humedad, y... se resalta y selecciona automáticamente. JMP selecciona automáticamente la columna de humedad. |
| |
Verde para todos, excepto este último resultado en azul. Esto nos ayuda a llevar un registro de nuestras actividades en diferentes tablas de datos. Realizamos todas estas actividades en la tabla de datos del componente A. |
| |
En nuestra última actividad, realizamos un subconjunto de la tabla de datos Componentes A. El resultado fue una nueva tabla de datos llamada vac_off. Vac_off está en azul. Así que podemos usar esos colores para facilitar el seguimiento. |
| |
Muy bien, la última característica que quiero mostrarles aquí en el registro es...eso es... |
| |
Resulta útil si tienes una serie muy larga de pasos y necesitas encontrar solo uno. Este filtro te permite buscar. Supongamos que quiero encontrar el subconjunto. Ahí está. Hemos encontrado la tabla de datos del subconjunto y puedo acceder directamente al código que necesito. |
| |
Bien, esto es todo lo que necesitamos. Hemos capturado los pasos de curación de datos. Para crear un script de curación de datos reproducible, solo tenemos que ir al triángulo rojo y guardarlo en una nueva ventana. |
| |
El paso de importación, el paso de eliminación de columna y el paso de mover la tasa de desperdicio. Todos estos pasos se encuentran aquí en el script. |
| |
Contamos con el coloreado de sintaxis para facilitar la lectura del script. Contamos con todos estos comentarios útiles que nos indican exactamente qué estábamos haciendo en cada paso. |
| |
Bien, esto es todo. Esto es todo lo que necesitamos y voy a guardarlo. Lo guardaré en mi escritorio como "Importar y limpiar"... llamémoslo "Importar y curar componentes". |
| |
Bien, ese es nuestro script de curación de datos reproducible. Así que, si volviera a la ventana de inicio de JMP y cerrara todo excepto nuestro nuevo script, |
| |
Esto es lo que hacemos si necesito repetir los pasos de curación de datos. Acabo de abrir el archivo de script y podemos ejecutarlo haciendo clic en el botón "Ejecutar script". Abre los datos, realiza toda la limpieza, crea los subconjuntos y crea ese nuevo archivo de datos con 313 filas. |
| |
Imaginemos ahora que necesitamos reproducir esto con nuevos datos. |
| |
Tengo otra versión del archivo de componentes. Se llama Componentes B. Tiene 50 filas más; en lugar de 369, tiene 419. Imaginemos que hemos ejecutado el proceso para otros 50 lotes y tenemos más datos. |
| |
Se llama "Componentes B" y quiero ejecutar este script en el componente B. Pero notarán que a lo largo del script se llama al componente A varias veces. Así que solo tendremos que buscar y reemplazar el componente A y cambiarlo a "Componentes B". Listo. Editar. |
| |
Buscar. |
| |
Encontraremos los componentes A, los reemplazaremos con los componentes B. Reemplazaremos todos. Se han reemplazado 15 ocurrencias. |
| |
Puedes verlo aquí y aquí. |
| |
Ahora simplemente volvemos a ejecutar el script y ahí está, con la nueva versión de los datos. Pueden ver que tiene más filas; de hecho, estaba desfasado. Antes era 313, ahora es 358. |
| |
Muy bien, entonces un script de curación de datos reproducible que puede ejecutarse con datos nuevos. |
| |
Bien, aquí está la hoja de trucos de nuevo. Estará en los materiales que guardemos con la charla, así que pueden acceder a ella. Les explica cómo usar el puntero y hacer clic para la curación de datos y crear un script de curación de datos reproducible y fácil de usar. |
| |
Ese script que hicimos no requirió que hiciéramos ningún tipo de codificación, pero te voy a dar solo un puñado de consejos, cuatro consejos que puedes usar. |
| |
Para mejorar un poco los scripts, el primer consejo es insertar esta línea al principio. Es recomendable hacerlo en todos los scripts. Simplemente inserte aquí los nombres de línea predeterminados. |
| |
Esto es para evitar que tu script interactúe con otros. Se llama colisión de espacio de nombres y no es necesario que entiendas su función, simplemente hazla. Es recomendable. Es una buena práctica de programación. |
| |
El segundo consejo es asegurarse de que haya punto y coma entre las expresiones JSL. |
| |
El registro mejorado lo hace automáticamente. Coloca el punto y coma requerido entre cada paso. Sin embargo, si realiza alguna modificación usted mismo, deberá asegurarse de colocar los puntos y comas correctamente. Un consejo. |
| |
Añadir comentarios. |
| |
Los comentarios son una forma de dejar notas en el programa y dejarlas de forma que no lo estropees, ¿verdad? Es una forma de... |
| |
Deja algo en el programa que no será interpretado por el intérprete de JSL. Además, el registro mejorado te ha dejado notas... la grabación de acciones en el registro mejorado te ha dejado notas, pero puedes modificarlas y añadirles contenido si lo deseas. Aquí tienes los puntos principales sobre los comentarios. |
| |
El formato típico consiste en dos barras diagonales, y todo lo que sigue a ellas es un comentario. Esto se puede hacer al principio o al final de una línea. El intérprete ejecutará esta expresión JSL X = 9, pero ignorará todo lo que esté después de las barras diagonales. |
| |
Si tienes un comentario más largo, también puedes usar este formato: un /* al principio y un */ al final. Esto encierra un comentario. Por lo tanto, los comentarios son útiles para dejar notas, pero también para depurar tu script JSL. |
| |
Si quieres eliminar una línea de código y evitar que se ejecute, puedes simplemente añadir esas dos barras diagonales antes de ejecutarla. Si quieres hacerlo para un fragmento más grande, puedes usar este formato. Es útil saber cómo usar los comentarios. |
| |
El último consejo que les daré es generalizar las referencias a las tablas de datos. ¿Recuerdan cómo tuvimos que buscar y reemplazar para que ese script se ejecutara en un nuevo nombre de archivo, Componentes B? |
| |
Tuvimos que cambiar 15 instancias en la tabla de datos del script. ¿No sería mejor si solo tuviéramos que cambiarlo una vez, en lugar de 15? Así podrás hacer tus scripts más robustos. |
| |
Generalizando las referencias de las tablas de datos. En lugar de usar los nombres, usaremos una variable JSL para guardar los nombres de las tablas. A continuación, les mostraré un ejemplo. |
| |
A la izquierda hay un código que se generó mediante la grabación de acciones en el registro mejorado. |
| |
Abrimos la tabla de datos Big Class. Operamos en la columna de edad, cambiándola a un tipo de modelado continuo y luego creamos una nueva columna calculada. |
| |
al abrirlo lo usamos para realizar el cambio en la columna de edad, y lo usamos aquí. |
| |
Muy simple, lo que debes hacer para que esto sea más robusto y generalizado. |
| |
Necesitas hacer tres cambios. |
| |
En este primer cambio, le estamos asignando un nombre. Elegí BC; puedes elegir el que quieras. Verás DT con frecuencia. |
| |
Entonces, BC es el nombre con el que nos referiremos a esa tabla de datos de Big Class en el resto del script. Y cuando queramos cambiar la edad... |
| |
edad significa la tabla de datos de BC y la columna de edad en esa tabla de datos. |
| |
Aquí abajo, enviamos un mensaje a la tabla de datos Big Class, y eso es lo que significa la sintaxis de doble flecha. Así que simplemente lo generalizamos para usar el nuevo nombre para enviar ese mensaje. |
| |
A la tabla de datos. Si necesitamos ejecutar este script en una nueva tabla de datos con un nombre distinto a Big Class, solo necesitamos modificar una parte del script. No necesitamos buscar ni reemplazar. |
| |
Bien, después de estos cuatro consejos, si estás listo para llevar tu script de curación al siguiente nivel, aquí tienes algunos pasos a seguir. Podrías añadir un selector de archivos. No requiere mucha programación. |
| |
para cambiarlo de modo que cuando alguien ejecute este script, pueda simplemente navegar hasta el archivo en el que desea que se ejecute en lugar de tener que editar el script manualmente. |
| |
Esa es una buena idea. Si desea distribuir el script a otros usuarios de su organización, puede integrarlo en un complemento de JMP, de modo que los usuarios puedan ejecutarlo simplemente seleccionándolo en un menú dentro de JMP. |
| |
Muy práctico. Y por último, si necesitas ejecutar este script de curación de forma programada para actualizar una tabla maestra de datos JMP que guardas en la red, puedes usar el programador de tareas de Windows o el automatizador de Mac OS para hacerlo. |
| |
En resumen, Mia habló sobre cómo realizar la curación de datos explorando los datos e iterando para identificar problemas. |
| |
Si automatiza esos pasos, obtendrá los beneficios de la reproducibilidad, que son la eficiencia, la precisión y la documentación de su trabajo. |
| |
Para hacer esto en JMP 16, simplemente señale y haga clic como de costumbre y sus pasos de curación de datos serán capturados por la grabación de acciones que ocurre en el registro mejorado. |
| |
Y por último, puedes exportar y modificar ese código JSL desde el registro mejorado para crear tu script de curación de datos reproducible. Con esto concluimos nuestra charla. Muchas gracias por su tiempo y atención. |