Tengo un conjunto de datos Hay muchos valores faltantes. Para algunas columnas, el valor faltante se reemplazó con -999, pero en otras columnas, el valor faltante se marcó como 'NA'.
¿Por qué usaríamos -999 para reemplazar el valor faltante?
Tengo un conjunto de datos Hay muchos valores faltantes. Para algunas columnas, el valor faltante se reemplazó con -999, pero en otras columnas, el valor faltante se marcó como 'NA'.
¿Por qué usaríamos -999 para reemplazar el valor faltante?
Respuestas:
Esta es una reserva de tiempos anteriores, cuando el software de la computadora almacenaba vectores numéricos como vectores numéricos. Ningún número real tiene la semántica "Me estoy perdiendo". Entonces, cuando el software estadístico temprano tuvo que diferenciar entre números "verdaderos" y valores perdidos, pusieron algo que "obviamente" no era un número válido, como -999 o -9999.
Por supuesto, que -999 o -9999 representaba un valor perdido no es "obvio" en absoluto. Muy a menudo, ciertamente puede ser un valor válido. A menos que verifique explícitamente dichos valores, puede tener todo tipo de errores "interesantes" en sus análisis.
Hoy en día, los vectores numéricos que pueden contener valores perdidos se representan internamente como vectores numéricos "enriquecidos", es decir, vectores numéricos con información adicional sobre qué valores faltan. Por supuesto, esto es mucho mejor, porque los valores perdidos se tratarán como tales y no se tratarán erróneamente como válidos.
Desafortunadamente, algunos softwares todavía usan tal convención, tal vez por compatibilidad. Y algunos usuarios han absorbido esta convención a través de la ósmosis informal e ingresan -999 en lugar de NA, incluso si su software admite el ingreso limpio de valores perdidos.
Moraleja: no codifique valores perdidos como -999.
Dichos valores son para bases de datos. La mayoría de las bases de datos hace mucho tiempo, y muchas en la actualidad, asignaron un número fijo de dígitos para datos con valores enteros. Un número como -999 es el más pequeño que se puede almacenar en cuatro caracteres, -9999 en cinco caracteres, etc.
(No debería decirse que, por definición, un campo numérico no puede almacenar caracteres alfanuméricos como "NA". Se debe usar algún código numérico para representar datos faltantes o no válidos).
¿Por qué usar el número más negativo que se puede almacenar para indicar un valor perdido? Porque si lo trata por error como un número válido, desea que los resultados sean dramáticamente incorrectos. Cuanto más se alejen sus códigos de valores perdidos de ser realistas, más seguro estará, porque la entrada muy incorrecta generalmente arruina la salida. (¡Los métodos estadísticos robustos son excepciones notables!)
¿Cómo podría suceder tal error? Esto ocurre todo el tiempo cuando los datos se intercambian entre sistemas. Un sistema que asume que -9999 representa un valor faltante generará ese valor alegremente cuando escriba los datos en la mayoría de los formatos, como CSV. Es posible que el sistema que lee ese archivo CSV no "sepa" (o no se le "diga") para tratar esos valores como faltantes.
Otra razón es que los buenos datos estadísticos y las plataformas informáticas reconocen muchos tipos diferentes de valores faltantes: NaN, valores verdaderamente faltantes, desbordamientos, desbordamientos, no respuestas, etc., etc. Al dedicar los valores más negativos posibles (como -9999, - 9998, -9997, etc.) a estos, facilita la consulta de todos los valores faltantes de cualquier tabla o matriz.
Otro más es que tales valores generalmente aparecen en pantallas gráficas como valores extremos. De todos los valores que puede elegir para destacar en un gráfico, el más negativo posible tiene la mayor probabilidad de estar lejos de sus datos.
Hay implicaciones y generalizaciones útiles:
Adopte una regla estándar de este tipo para facilitar la invención de códigos NoData en nuevas circunstancias (cuando diseña su propio software de base de datos).
Diseñe su software y sistemas para fallar dramáticamente si fallan en absoluto. Los peores errores son aquellos que son intermitentes, aleatorios o pequeños, porque pueden pasar desapercibidos y ser difíciles de cazar.
Puede usar cualquier cosa para codificar valores perdidos. Algunos programas, como R, usan valores especiales para codificar datos faltantes, pero también hay paquetes de software, por ejemplo, SPSS, que no tienen ningún código especial para datos faltantes. En el segundo caso, debe elegir arbitrariamente dichos valores. Puede elegir cualquier cosa , pero generalmente es una buena idea elegir un valor que difiera visiblemente de sus datos (por ejemplo, sus datos son porcentajes en el rango 0-100, por lo que elige 999 para codificar datos faltantes, o sus datos son la edad humana y usa valores negativos para las observaciones faltantes). La idea detrás de esto es que al hacerlo, debería ser capaz de notar si algo salió mal y los números no suman.
Sin embargo, el problema con dicha codificación es que en realidad no puede notar la codificación especial y terminar con resultados de basura.
¿Hay variables calculadas en el conjunto de datos? ¿O es este un conjunto de datos analíticos que viene de datos combinados / ordenados? Algunos programas utilizan valores negativos muy grandes para denotar datos faltantes. Pero otro software crea valores perdidos con NA o .
. Cuando son discrepantes, por lo general, algún procesamiento posterior ha llevado a un desacuerdo.
Por supuesto, en SPSS, el (los) valor (es) que falta (s) 999 o lo que sea está etiquetado como un código especial que falta y se maneja por separado de otros valores. Puede tabularse por separado o excluirse por completo. Se hace una distinción del resultado de cosas como división cero o log (0).