Saltar al contenido principal
LibreTexts Español

3.5: Datos faltantes

  • Page ID
    150018
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    No existe tal cosa como una observación perfecta, mucho menos un experimento perfecto. Cuanto más grandes son los datos, mayor es la probabilidad de irregularidades. Los datos faltantes surgen de casi todas las fuentes debido a métodos imperfectos, accidentes durante la grabación de datos, fallas de programas de computadora y muchas otras razones.

    Estrictamente hablando, hay varios tipos de datos faltantes. El más fácil de entender es “desconocido”, dato que o bien no se registró, o incluso se perdió. Otro tipo, “ambos” es un caso cuando la condición se ajusta a más de un nivel. Imagínese que observamos el clima y registramos días soleados como unos y días nublados con ceros. Las nubes intermitentes encajarían, en este esquema, en ambas categorías. Como ve, la presencia de “ambos” datos suelen indicar métodos mal construidos. Por último, “no aplicable”, un valor imposible o prohibido, surge cuando nos encontramos con algo lógicamente inconsistente con un marco de estudio. Imagina que estudiamos pajareras y medimos la longitud del pico en las aves que allí se encuentran, pero de repente encontramos una ardilla dentro de una de las cajas. No hay pico, por lo tanto no es posible la longitud del pico. La longitud del pico es “no aplicable” para la ardilla.

    En R, todo tipo de datos faltantes se denotan con dos letras mayúsculas NA.

    Imagínese, por ejemplo, que les preguntamos a los siete empleados sobre sus horas típicas de dormir. Cinco nombraron el promedio de horas que duermen, una persona se negó a responder, otra respondió “no sé” y otra no estaba en el trabajo en ese momento. Como resultado, tres NA aparecieron en los datos:

    Código\(\PageIndex{1}\) (R):

    (hh <- c(8, 10, NA, NA, 8, NA, 8))

    Ingresamos NA sin comillas y R lo reconoce correctamente entre los números. Tenga en cuenta que varios tipos de datos faltantes que teníamos fueron etiquetados de manera idéntica.

    Un intento de simplemente calcular un promedio (con una función mean ()), conducirá a esto:

    Código\(\PageIndex{2}\) (R):

    hh <- c(8, 10, NA, NA, 8, NA, 8)
    mean(hh)

    Filosóficamente, este es un resultado correcto porque no está claro sin más instrucciones cómo calcular el promedio de ocho valores si tres de ellos no están en su lugar. Si aún necesitamos el valor numérico, podemos proporcionar uno de los siguientes:

    Código\(\PageIndex{3}\) (R):

    hh <- c(8, 10, NA, NA, 8, NA, 8)
    mean(hh, na.rm=TRUE)
    mean(na.omit(hh))

    El primero permite que la función mean () acepte (y omita) valores faltantes, mientras que el segundo crea un vector temporal arrojando NA s lejos del vector original hh. La tercera forma es sustituir (imputar) los datos faltantes, por ejemplo con la media de la muestra:

    Código\(\PageIndex{4}\) (R):

    hh <- c(8, 10, NA, NA, 8, NA, 8)
    hh.old <- hh
    hh.old
    hh[is.na(hh)] <- mean(hh, na.rm=TRUE)
    hh

    Aquí seleccionamos valores hh que satisfacen la condición es.na () y los reemplazamos permanentemente con una media muestral. Para conservar los datos originales, los guardamos en un vector con el otro nombre (hh.old). Hay muchas otras formas de imputar datos faltantes, más complicadas se basan en bootstrap, regresión y/o análisis discriminante. Algunos se implementan en paquetes ratones y cat.

    La colección asmisc.r suministrada con este libro, tiene la función.map () que es útil para determinar la “falta” (volumen y ubicación relativa de los datos faltantes) en grandes conjuntos de datos.


    This page titled 3.5: Datos faltantes is shared under a Public Domain license and was authored, remixed, and/or curated by Alexey Shipunov via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.