Para cualquiera que esté haciendo análisis de datos, es común dedicar una gran parte del tiempo a la limpieza de datos. Los datos reales son datos sucios. Incluso si utiliza herramientas de recopilación automatizadas, los errores, las anomalías y las incoherencias seguirán llegando a sus datos.
En las siguientes publicaciones del blog, me gustaría mostrarle algunas técnicas simples para mejorar la integridad de los datos. Hablaré sobre qué buscar y cómo hacerlo usando JMP . En muchos casos, JMP tiene todas las capacidades que necesita para realizar la tarea. En algunos casos, he reunido guiones para ayudar con la limpieza. Voy a hacer estos scripts disponibles en el Comunidad de usuarios de JMP .
Para poner en contexto la limpieza de datos, considere tres lugares generales donde pueden ocurrir problemas. El primer lugar en el que puede encontrar problemas es al crear su conjunto de datos. Los delimitadores que faltan, los nombres de las columnas que no coinciden y las marcas de tiempo no sincronizadas dificultarán el acceso, la concatenación y la unión de datos. Una vez que los datos están en un conjunto de datos JMP, se encontrará con un conjunto diferente de problemas: los datos o tipos de modelado incorrectos, las columnas sin valores, los códigos de error y los valores mal escritos son comunes. Finalmente, en el proceso de análisis, es posible que necesite eliminar valores atípicos, transformar columnas o agregar niveles de variables.
Comencemos en el medio, la segunda área mencionada arriba. Ha creado su conjunto de datos, pero necesita limpiarlo antes del análisis. Sospecho que aquí es donde encontrarás la mayoría de tus problemas. Para comenzar, nos centraremos en eliminar columnas innecesarias y en corregir los datos y los tipos de modelos. Gran parte de esto se puede lograr solo con el Visor de columnas.
Para ilustrar, usaré los datos que descargué del sitio web de la Agencia de Protección Ambiental de EE. UU. Para economía de combustible del automóvil . Se descargaron y concatenaron siete hojas de trabajo de Excel separadas (una para cada año en el conjunto de datos). Puedes encontrar los datos en la comunidad de usuarios JMP.
Lo primero que podemos hacer es eliminar las variables con poca o ninguna información. Las columnas donde todos los valores son iguales (o faltan) son candidatos ideales. Usando el Visor de Columnas (Bajo el menú Cols):
Filtra solo los valores categóricos desmarcando Continuo . (Este es el mismo editor de columnas que se puede encontrar en todos los cuadros de diálogo de la plataforma).Seleccione todas las columnas y haga clic en Mostrar resumen .Haga clic derecho en la tabla debajo de Resumen estadístico y elige Ordenar por columna ... Seleccionar N Categorías y compruebe el Ascendente Todas las columnas que seleccione en la tabla de resumen se seleccionarán simultáneamente en la tabla de datos principal. Esto facilita muchas operaciones de columna, al permitirle preseleccionar columnas con propiedades particulares antes de realizar las operaciones.

Figura 1. El filtro del Visor de columnas se puede usar para identificar rápidamente las columnas de la tabla de datos con propiedades específicas.

Figura 2. Las columnas seleccionadas en la ventana de resumen del Visor de columnas también se seleccionan en la tabla de datos.
Observe que las tres columnas superiores tienen todos los valores perdidos y se pueden eliminar. Una vez que los hayas seleccionado, Cols> Delete Columns Los eliminará de la tabla de datos. Tenga en cuenta que las columnas eliminadas no se eliminarán de la tabla de resumen, por lo que puede tener sentido volver a ejecutar Mostrar resumen (recuerde volver a seleccionar todas las columnas). Puede ordenar el informe eliminando la tabla de resumen anterior (mire debajo de la zona activa al lado del Resumen estadístico título).
Las siguientes 10 columnas tienen un solo valor. La decisión de mantenerlos depende de la proporción de valores faltantes que tengan y si cree que su identificación proporciona información adicional. Dos de las columnas, ¿Suprimido? y Policía / Emerg? no tienen valores faltantes (es decir, todas las filas son idénticas), por lo que se pueden eliminar de forma segura. Siete de las ocho columnas restantes faltan en su mayoría (> 99.997%) y pueden ser buenos candidatos para la eliminación. La columna restante ¿Comilón? Tiene alrededor del 5% de no faltantes y podría valer la pena mantenerlos. (Supondré que ninguna de las columnas forma parte de una variable que se ha dividido en varias columnas. Hablaré sobre encontrar y arreglar esta situación en un post posterior.
En los ejemplos de categoría única anteriores, faltaba la mayoría de los datos. Sin embargo, si la mayoría de los datos no faltaban, se puede usar un argumento similar para justificar cuándo eliminar una columna. Si una columna se compone de un solo valor, pero tiene una proporción suficientemente grande de valores faltantes, puede considerar mantenerla. Donde están esos valores perdidos podría estar diciendo algo.
También podemos eliminar columnas de múltiples categorías con un alto grado de falta. Para hacer esto, haga clic derecho y ordene la tabla de resumen por N Missing . No compruebe el Ascendente cuadro esta vez, ya que solo desea considerar columnas cuyos valores faltan en gran parte. Debido a que estas columnas tienen más de una categoría, es posible que también desee examinarlas con más detalle. Para hacer esto, selecciónelos en la tabla de resumen y haga clic en Distribución botón. Como antes, tendrá que decidir qué proporción de valores no perdidos justifica retener la columna.
Cuando haya terminado con los datos categóricos, puede realizar las mismas operaciones con los datos continuos. En el cuadro de diálogo emergente del filtro, vuelva a seleccionar Continuo y deseleccionar Ordinal y Nominal (recuerda que sosteniendo la Alt antes de hacer clic en la zona activa, puede hacer varias selecciones). Después de mostrar el resumen, ordenar ascendente por Std Dev (Está en el extremo derecho). Las columnas donde Std Dev es igual a cero solo tiene un solo valor. Sólo debería haber uno ( Peine CO2 redondeado ajustado ). Ordenar por N Missing para encontrar aquellas columnas cuyos valores faltan en su mayoría.
Una vez que haya terminado de eliminar las columnas innecesarias, puede continuar con la verificación de los datos y los tipos de modelado. Cuando JMP lee inicialmente datos de otras fuentes, las columnas que contienen solo números reciben la Numérico tipo de datos y Continuo Tipo de modelado. De lo contrario, se les asigna la Personaje tipo de datos y Nominal Tipo de modelado. De vez en cuando, JMP establecerá una columna para Numérico incluso cuando tiene unos pocos valores de carácter. Si esto sucede, recibirá un mensaje de advertencia como el de la Figura 3.

Figura 3. Mensaje de advertencia cuando los valores de los caracteres están configurados como perdidos.
Si bien los valores predeterminados en JMP funcionan bien en la mayoría de los casos, hay algunas situaciones que debe conocer. Primero, si una columna numérica tiene texto extraño: “NA”, códigos de error, símbolos para marcar observaciones inusuales, etc. - la columna puede leerse como Personaje / Nominal . En segundo lugar, los valores numéricos pueden corresponder a codificado valores y no mesurado valores. En estas situaciones, querrá tratar el tipo de modelado como Nominal . Finalmente, en algunas situaciones, los valores categóricos medidos deben tratarse como ordinales. Afortunadamente, hay relativamente pocos casos en los que existe una diferencia entre modelar con Nominal datos, y modelado con Ordinal datos.
Así que podemos seguir trabajando con el Visor de columnas; Nuestra próxima tarea será encontrar columnas numéricas categóricas. (Nuestras otras tareas tendrán que esperar a la próxima publicación).
Para localizar estas columnas:
Cree un resumen de todas las columnas continuas en el Visor de columnas.Bajo la Resumen estadístico punto caliente, seleccione Vista de tabla de datos.Seleccione todos los Numérico columnas y cambiar su tipo de modelado a Ordinal . Me gusta usar Ordinal porque la mayoría de los datos inicialmente serán Continuo o Nominal . Haciéndolo Ordinal me deja saber que es Numérico , pero estoy considerando hacerlo categórico. Asegúrese de que todas las columnas en el Selector de vista de columnas están seleccionados, y haga clic en Mostrar resumen . Si tienes un vacio Selector de vista de columnas cuadro, vuelva a activar Ordinal en el filtro del Visor de columnas primero.Haga clic con el botón derecho dentro del resumen y elija Hacer en tabla de datos. Como ya tiene una vista de datos, no necesita crear otra.Actualice la tabla del Paso 2 con la tabla del Paso 4. Coincidir por la columna nombrada Columnas .Seleccione la tabla que creó en el Paso 2. Ir Tablas> Actualizar Seleccione la tabla que creó en el Paso 4 del cuadro de lista y marque Coincidir columnas Suponiendo que no haya cambiado ningún nombre de columna, seleccione las columnas Columnas De cada tabla y haga clic. Partido . Sus resultados serán similares a los de la Figura 4.Hacer clic DE ACUERDO .Ordenar por N Categorías .
Figura 4. Usando la actualización con columnas coincidentes.
Al igual que con la tabla de resumen en la ventana de informe, la tabla resultante está vinculada a la tabla de datos desde la que se creó. Debido a que está utilizando una vista de datos, es posible que deba anular la selección de las columnas que se hayan seleccionado previamente en la tabla de datos principal. Para encontrar variables categóricas, busque aquellas columnas que tengan un número pequeño de categorías y / o tengan un valor Mín cercano a 0.
Si bien este enfoque para encontrar datos numéricos categóricos está lejos de ser perfecto, es un comienzo rápido y fácil. Puede realizar una comprobación simple seleccionando filas en la tabla de datos de resumen, volviendo a la tabla principal y luego ejecutando Distribución en las columnas seleccionadas. Si haces esto con columnas que tienen N Categorías igual a 6 o menos, notará que algunas de las columnas contienen valores con decimales. Si bien hubiera sido bueno haber excluido estas columnas desde el principio, Columns Viewer no proporciona esto para esto, por lo que haremos esto con un poco de scripting.
Hablaremos de eso y más la próxima vez.