CursosEmpresasBlogLiveConfPrecios

Visualización de valores faltantes en dos variables

Clase 15 de 21 • Curso de Manejo de Datos Faltantes: Detección y Exploración

Clase anteriorSiguiente clase

Contenido del curso

Introducción a los valores faltantes

  • 1
    ¿Por qué explorar y lidiar con valores faltantes?

    ¿Por qué explorar y lidiar con valores faltantes?

    06:59 min
  • 2
    Operaciones con valores faltantes

    Operaciones con valores faltantes

    13:52 min
  • 3
    Conociendo datasets para manejo de datos faltantes

    Conociendo datasets para manejo de datos faltantes

    09:01 min
  • 4

    Ejecución de Notebooks en Deepnote con %run

    01:07 min
  • 5
    Extendiendo la API de Pandas

    Extendiendo la API de Pandas

    14:03 min
  • 6
    Tabulación de valores faltantes

    Tabulación de valores faltantes

    16:58 min
  • 7
    Visualización de valores faltantes

    Visualización de valores faltantes

    12:04 min

Manipulación inicial de valores faltantes

  • 8
    Codificación de valores faltantes

    Codificación de valores faltantes

    13:10 min
  • 9
    Conversión de valores faltantes implícitos en explícitos

    Conversión de valores faltantes implícitos en explícitos

    08:57 min
  • 10
    Exponer filas faltantes implícitas en explícitas

    Exponer filas faltantes implícitas en explícitas

    07:59 min
  • 11
    Tipos de valores faltantes

    Tipos de valores faltantes

    05:51 min
  • 12
    MCAR, MAR, MNAR en Python

    MCAR, MAR, MNAR en Python

    08:51 min

Búsqueda de relaciones de valores faltantes

  • 13
    Matriz de sombras: shadow matrix

    Matriz de sombras: shadow matrix

    14:34 min
  • 14
    Visualización de valores faltantes en una variable

    Visualización de valores faltantes en una variable

    10:06 min
  • 15
    Visualización de valores faltantes en dos variables

    Visualización de valores faltantes en dos variables

    Viendo ahora
  • 16
    Scatterplot con valores faltantes

    Scatterplot con valores faltantes

    09:42 min
  • 17
    Correlación de nulidad

    Correlación de nulidad

    07:00 min

Tratamiento de valores faltantes

  • 18
    Eliminación de valores faltantes: pairwise y listwise

    Eliminación de valores faltantes: pairwise y listwise

    14:28 min
  • 19
    Imputación básica de datos

    Imputación básica de datos

    10:53 min
  • 20
    Bonus: visualización múltiple de imputaciones

    Bonus: visualización múltiple de imputaciones

    07:50 min

Cierre de curso

  • 21
    Continúa aprendiendo sobre el manejo de valores faltantes

    Continúa aprendiendo sobre el manejo de valores faltantes

    03:21 min
  • Tomar el examen del curso
    • Jeinfferson Bernal G

      Jeinfferson Bernal G

      student•
      hace 3 años

      Codigo de la funcion que permite completar los datos faltante para poder graficar el scatterplot

      # funcion que añade valores aleatorios a las variables con valores faltantes # para visualizarlos en un eje def column_fill_with_dummies( column: pd.Series, proportion_below: float=0.10, #Proporcion de los datos en la grafica jitter: float=0.075, # evita el asolapamiento de los puntos en la grafica seed: int=42, #semilla para la aleatoriedad ) -> pd.Series: # la funcion retorna una serie #Copiar las columnas del dataframe column = column.copy(deep=True) #Extraer los valores de las variables missing_mask = column.isna() # matriz de booleanos number_missing_values = missing_mask.sum() #conteo de valores faltantes column_range = column.max() - column.min() #rango de las variables # shift data column_shift = column.min() - column.min() * proportion_below # crear un poco de ruido alrededor de los puntos np.random.seed(seed) column_jitter = (np.random.rand(number_missing_values) - 2) * column_range * jitter #Guardar los nuevos datos aleatorios column[missing_mask] = column_shift + column_jitter return column
        Ian Cristian Ariel Yané

        Ian Cristian Ariel Yané

        student•
        hace 3 años

        No se como aria sin tus resúmenes al final de cada vídeo

      Jeinfferson Bernal G

      Jeinfferson Bernal G

      student•
      hace 3 años

      Visualizacion de valores faltantes en dos variables

      Permite visualizar y comparar dos variables cuando a ambas le faltan valores. Un grafico muy util para este tipo de comparaciones son los scatterplot

      graph32.jpg

      Para este ejemplo, los puntos azules indican que existe valores tanto para la temperatura como para la humedad. Los puntos rojos indican que solo hay valores para una de las variables y no para la otra. Este tipo de grafica nos ayuda a conocer donde estan agrupados los valores faltantes respecto a otras variables y se grafican fuera de la presencia de los puntos reales para que no introduzcan ruido.

      Ademas podemos incluir otro tipo de graficos como los boxplot que nos ayudan a compara la distribucion de los datos de las variables con la distribucion de los datos faltantes y a visualizar si se estan acumulando en un espacio del scatterplot

      Este tipo de analisis es importante porque al realizar un EDA sobre los datos faltantes queremos saber si estos siguen una relacion, una tendencia, un comportamiento caracteristico que podamos rellenar segun su variabilidad.

      José Fernando Aguilar Arredondo

      José Fernando Aguilar Arredondo

      student•
      hace 3 años

      El sentido de la vida, el universo y todo lo demás: El número 42

        Juan Jose Sepulveda Calderon

        Juan Jose Sepulveda Calderon

        student•
        hace 3 años

        No había captado la referencia hasta que vi el artículo de Wikipedia 😄

        Ian Cristian Ariel Yané

        Ian Cristian Ariel Yané

        student•
        hace 3 años

        Claramente el profe tiene un IQ destacable!!, hace rato me aparece el libro de esa saga en los recomendados.. Sera que llego la hora de ver su resumen ?!!!

      Carlos Mazzaroli

      Carlos Mazzaroli

      student•
      hace 3 años

      la función column_fill_with dummies debería ir en la carpeta de los utils? 👀

      Juan Jose Sepulveda Calderon

      Juan Jose Sepulveda Calderon

      student•
      hace 3 años

      Referencia a la guía del autoestopista galáctico 👀

      Daniel Andres Rojas Paredes

      Daniel Andres Rojas Paredes

      student•
      hace 10 meses

      no me quedo claro el proposito y la naturaleza de la funcion missing _mask utilizada en la clase.?

      Nestor Colmenarez

      Nestor Colmenarez

      student•
      hace 2 años

      El concepto de semilla no me quedo claro? que es lo que estamos creando alli?

      Diego Cesar Lerma Torres

      Diego Cesar Lerma Torres

      student•
      hace 2 años

      Dejo mi solución al reto:  Función nullity_scatterplot```js def nullity_scatterplot( self, x:str, y:str, **kwargs ): """Recieves a DataFrame and 2 strings with the names of the columns to be used as x and y. Plots a nullity scatterplot"""

      return( self._obj.select_dtypes( exclude='category' ) .pipe( lambda df : df[df.columns[df.isna().any()]] ) .missing.bind_shadow_matrix(true_string=True, false_string=False) .apply( lambda column: column if "_NA" in column.name else column.missing.column_fill_with_dummies( proportion_below=0.05, jitter=0.075) ) .assign( nullity = lambda df:df[x+'_NA'] | df[y+'_NA'] ) .pipe( lambda df:( sns.scatterplot( data=df, x=x, y=y, hue='nullity' ) ) ) )
      Entonces la implementaríamos al final del archivo de la siguiente manera: ```js @pd.api.extensions.register_series_accessor("missing") class MissingSeriesMethods: def __init__(self, pandas_obj): self._obj = pandas_obj def column_fill_with_dummies( self, proportion_below: float = 0.10, jitter: float = 0.075, seed: int = 42 ) -> pd.Series: """Fills a column with missing values with dummies, to be used in a scatterplot""" # We don't need to copy the original series because we're not modifying it in place # We're going to create a new series for the dummy data # Extract values metadata missing_mask = self._obj.isna() number_missing_values = missing_mask.sum() column_range = self._obj.max() - self._obj.min() # Shift data column_shift = self._obj.min() - self._obj.min() * proportion_below # Create the "jitter" (noise) to be added around the points np.random.seed(seed) column_jitter = (np.random.rand(number_missing_values) - 2) * column_range * jitter # Create new series for dummy data with the same index as the missing values in the original series dummy_data = pd.Series(column_shift + column_jitter, index=self._obj[missing_mask].index) # Return a series combining original and dummy data return self._obj.fillna(dummy_data)
      Iván Roberto Rivas Celeita

      Iván Roberto Rivas Celeita

      student•
      hace 2 años

      la semilla de aleatoridad permite que el experimento se puede volver a reproducir bajo las mismas condiciones. Puede ser cualquier 42 o cualquier numero

      Julián Cárdenas

      Julián Cárdenas

      student•
      hace 3 años
      def column_fill_with_dummies( column: pd.Series, proportion_below: float=0.10, jitter: float=0.075, seed: int=42 ) -> pd.Series: column = column.copy(deep=True) # Extract values metadata. missing_mask = column.isna() number_missing_values = missing_mask.sum() column_range = column.max() - column.min() # Shift data column_shift = column.min() - column.min() * proportion_below # Create the "jitter" (noise) to be added around the points. np.random.seed(seed) column_jitter = (np.random.rand(number_missing_values) - 2) * column_range * jitter # Save new dummy data. column[missing_mask] = column_shift + column_jitter return column
      jhon velasque

      jhon velasque

      student•
      hace 3 años
      def colum_fill_dummies( column:pd.Series, # La columna que se debe procesar proportion_bellow:float =0.10, # Porcentaje para determinar el valor mínimo jitter:float=0.075, # Valor para crear "jitter" en los valores dummies seed:int=42 # Semilla para la función de números aleatorios ) -> pd.Series: # La función devuelve una columna "Series" de pandas # Copiar la columna de entrada column=column.copy(deep=True) # Obtener máscara de valores faltantes y número de valores faltantes missing_mask=column.isna() number_missing_values=missing_mask.sum() # Calcular el rango de valores de la columna column_range=column.max()-column.min() # Calcular el valor mínimo de la columna con el porcentaje especificado column_shift=column.min()-column.min()*proportion_bellow # Crear "jitter" utilizando números aleatorios y el rango de la columna np.random.seed(seed) column_jitter=(np.random.rand(number_missing_values)-2)*column_range*jitter # Reemplazar valores faltantes con valores dummies creados column[missing_mask]=column_shift+column_jitter # Devolver la columna modificada return column
      Mario Alexander Vargas Celis

      Mario Alexander Vargas Celis

      student•
      hace un año

      Para visualizar los valores faltantes en dos variables de un conjunto de datos, puedes usar varias técnicas que permiten comparar la relación entre las dos variables y cómo los valores faltantes están distribuidos entre ellas. A continuación te muestro algunas técnicas comunes para visualizar esta información.

      ### 1. Gráfico de Dispersión con Colores que Indiquen los Valores Faltantes

      Puedes crear un gráfico de dispersión para comparar dos variables, usando colores diferentes para mostrar si alguno de los puntos tiene valores faltantes en alguna de las variables.

      import pandas as pd import seaborn as sns import matplotlib.pyplot as plt \# Crear un DataFrame de ejemplo con valores faltantes data = {'Variable1': \[1, 2, None, 4, 5, 6, 7, None, 9, 10],   'Variable2': \[5, None, 7, None, 9, 10, None, 12, 13, 14]} df = pd.DataFrame(data) \# Crear una nueva columna que identifique si hay valores faltantes en alguna de las dos variables df\['Missing'] = df.isnull().any(axis=1) \# Visualizar con un gráfico de dispersión plt.figure(figsize=(8, 6)) sns.scatterplot(x='Variable1', y='Variable2', hue='Missing', data=df, palette='coolwarm') plt.title('Valores Faltantes en Dos Variables') plt.show()

      ### 2. Gráfico de Mapa de Calor para Mostrar Correlación de Faltantes

      Otra técnica es un mapa de calor que indica la correlación de valores faltantes entre dos o más variables, permitiendo ver si los valores faltantes en una variable coinciden con los faltantes en otra.

      import seaborn as sns import matplotlib.pyplot as plt import pandas as pd \# Crear un DataFrame de ejemplo con valores faltantes data = {'Variable1': \[1, None, 3, 4, 5, None, 7, 8, 9, None],   'Variable2': \[None, 2, 3, None, 5, 6, None, 8, None, 10]} df = pd.DataFrame(data) \# Visualización de valores faltantes con un mapa de calor plt.figure(figsize=(6, 4)) sns.heatmap(df.isnull(), cmap='coolwarm', cbar=False, yticklabels=False) plt.title('Mapa de Calor de Valores Faltantes en Dos Variables') plt.show()

      ### 3. Gráfico de Barras Apiladas

      Otra opción es usar un gráfico de barras apiladas para visualizar la proporción de valores faltantes en dos variables. Esto permite ver claramente qué porcentaje de los datos está presente o ausente.

      import pandas as pd import seaborn as sns import matplotlib.pyplot as plt \# Crear un DataFrame de ejemplo con valores faltantes data = {'Variable1': \[1, 2, None, 4, 5, None, 7, 8, 9, 10],   'Variable2': \[None, 2, 3, None, 5, None, 7, 8, None, 10]} df = pd.DataFrame(data) \# Contar valores faltantes y no faltantes missing\_counts = df.isnull().sum() present\_counts = len(df) - missing\_counts \# Crear DataFrame para el gráfico bar\_df = pd.DataFrame({'Missing': missing\_counts, 'Present': present\_counts}) \# Gráfico de barras apiladas bar\_df.T.plot(kind='bar', stacked=True, color=\['red', 'green']) plt.title('Valores Faltantes en Dos Variables') plt.xlabel('Variables') plt.ylabel('Conteo') plt.show()

      ### Descripción:

      1. **Gráfico de Dispersión**: Permite ver la relación entre dos variables, con los puntos coloreados según si tienen o no valores faltantes.

      2. **Mapa de Calor**: Muestra de manera visual qué celdas del DataFrame tienen valores faltantes, utilizando colores.

      3. **Gráfico de Barras Apiladas**: Da una vista general de cuántos valores faltantes y presentes hay para cada variable.

      Estas visualizaciones ayudan a entender mejor cómo se distribuyen los valores faltantes entre las dos variables, lo que es crucial antes de aplicar técnicas de imputación o limpieza.

      ¿Te gustaría más ejemplos o alguna ampliación sobre alguno de estos métodos?

    Escuelas

    • Desarrollo Web
      • Fundamentos del Desarrollo Web Profesional
      • Diseño y Desarrollo Frontend
      • Desarrollo Frontend con JavaScript
      • Desarrollo Frontend con Vue.js
      • Desarrollo Frontend con Angular
      • Desarrollo Frontend con React.js
      • Desarrollo Backend con Node.js
      • Desarrollo Backend con Python
      • Desarrollo Backend con Java
      • Desarrollo Backend con PHP
      • Desarrollo Backend con Ruby
      • Bases de Datos para Web
      • Seguridad Web & API
      • Testing Automatizado y QA para Web
      • Arquitecturas Web Modernas y Escalabilidad
      • DevOps y Cloud para Desarrolladores Web
    • English Academy
      • Inglés Básico A1
      • Inglés Básico A2
      • Inglés Intermedio B1
      • Inglés Intermedio Alto B2
      • Inglés Avanzado C1
      • Inglés para Propósitos Específicos
      • Inglés de Negocios
    • Marketing Digital
      • Fundamentos de Marketing Digital
      • Marketing de Contenidos y Redacción Persuasiva
      • SEO y Posicionamiento Web
      • Social Media Marketing y Community Management
      • Publicidad Digital y Paid Media
      • Analítica Digital y Optimización (CRO)
      • Estrategia de Marketing y Growth
      • Marketing de Marca y Comunicación Estratégica
      • Marketing para E-commerce
      • Marketing B2B
      • Inteligencia Artificial Aplicada al Marketing
      • Automatización del Marketing
      • Marca Personal y Marketing Freelance
      • Ventas y Experiencia del Cliente
      • Creación de Contenido para Redes Sociales
    • Inteligencia Artificial y Data Science
      • Fundamentos de Data Science y AI
      • Análisis y Visualización de Datos
      • Machine Learning y Deep Learning
      • Data Engineer
      • Inteligencia Artificial para la Productividad
      • Desarrollo de Aplicaciones con IA
      • AI Software Engineer
    • Ciberseguridad
      • Fundamentos de Ciberseguridad
      • Hacking Ético y Pentesting (Red Team)
      • Análisis de Malware e Ingeniería Forense
      • Seguridad Defensiva y Cumplimiento (Blue Team)
      • Ciberseguridad Estratégica
    • Liderazgo y Habilidades Blandas
      • Fundamentos de Habilidades Profesionales
      • Liderazgo y Gestión de Equipos
      • Comunicación Avanzada y Oratoria
      • Negociación y Resolución de Conflictos
      • Inteligencia Emocional y Autogestión
      • Productividad y Herramientas Digitales
      • Gestión de Proyectos y Metodologías Ágiles
      • Desarrollo de Carrera y Marca Personal
      • Diversidad, Inclusión y Entorno Laboral Saludable
      • Filosofía y Estrategia para Líderes
    • Diseño de Producto y UX
      • Fundamentos de Diseño UX/UI
      • Investigación de Usuarios (UX Research)
      • Arquitectura de Información y Usabilidad
      • Diseño de Interfaces y Prototipado (UI Design)
      • Sistemas de Diseño y DesignOps
      • Redacción UX (UX Writing)
      • Creatividad e Innovación en Diseño
      • Diseño Accesible e Inclusivo
      • Diseño Asistido por Inteligencia Artificial
      • Gestión de Producto y Liderazgo en Diseño
      • Diseño de Interacciones Emergentes (VUI/VR)
      • Desarrollo Web para Diseñadores
      • Diseño y Prototipado No-Code
    • Contenido Audiovisual
      • Fundamentos de Producción Audiovisual
      • Producción de Video para Plataformas Digitales
      • Producción de Audio y Podcast
      • Fotografía y Diseño Gráfico para Contenido Digital
      • Motion Graphics y Animación
      • Contenido Interactivo y Realidad Aumentada
      • Estrategia, Marketing y Monetización de Contenidos
    • Desarrollo Móvil
      • Fundamentos de Desarrollo Móvil
      • Desarrollo Nativo Android con Kotlin
      • Desarrollo Nativo iOS con Swift
      • Desarrollo Multiplataforma con React Native
      • Desarrollo Multiplataforma con Flutter
      • Arquitectura y Patrones de Diseño Móvil
      • Integración de APIs y Persistencia Móvil
      • Testing y Despliegue en Móvil
      • Diseño UX/UI para Móviles
    • Diseño Gráfico y Arte Digital
      • Fundamentos del Diseño Gráfico y Digital
      • Diseño de Identidad Visual y Branding
      • Ilustración Digital y Arte Conceptual
      • Diseño Editorial y de Empaques
      • Motion Graphics y Animación 3D
      • Diseño Gráfico Asistido por Inteligencia Artificial
      • Creatividad e Innovación en Diseño
    • Programación
      • Fundamentos de Programación e Ingeniería de Software
      • Herramientas de IA para el trabajo
      • Matemáticas para Programación
      • Programación con Python
      • Programación con JavaScript
      • Programación con TypeScript
      • Programación Orientada a Objetos con Java
      • Desarrollo con C# y .NET
      • Programación con PHP
      • Programación con Go y Rust
      • Programación Móvil con Swift y Kotlin
      • Programación con C y C++
      • Administración Básica de Servidores Linux
    • Negocios
      • Fundamentos de Negocios y Emprendimiento
      • Estrategia y Crecimiento Empresarial
      • Finanzas Personales y Corporativas
      • Inversión en Mercados Financieros
      • Ventas, CRM y Experiencia del Cliente
      • Operaciones, Logística y E-commerce
      • Gestión de Proyectos y Metodologías Ágiles
      • Aspectos Legales y Cumplimiento
      • Habilidades Directivas y Crecimiento Profesional
      • Diversidad e Inclusión en el Entorno Laboral
      • Herramientas Digitales y Automatización para Negocios
    • Blockchain y Web3
      • Fundamentos de Blockchain y Web3
      • Desarrollo de Smart Contracts y dApps
      • Finanzas Descentralizadas (DeFi)
      • NFTs y Economía de Creadores
      • Seguridad Blockchain
      • Ecosistemas Blockchain Alternativos (No-EVM)
      • Producto, Marketing y Legal en Web3
    • Recursos Humanos
      • Fundamentos y Cultura Organizacional en RRHH
      • Atracción y Selección de Talento
      • Cultura y Employee Experience
      • Gestión y Desarrollo de Talento
      • Desarrollo y Evaluación de Liderazgo
      • Diversidad, Equidad e Inclusión
      • AI y Automatización en Recursos Humanos
      • Tecnología y Automatización en RRHH
    • Finanzas e Inversiones
      • Fundamentos de Finanzas Personales y Corporativas
      • Análisis y Valoración Financiera
      • Inversión y Mercados de Capitales
      • Finanzas Descentralizadas (DeFi) y Criptoactivos
      • Finanzas y Estrategia para Startups
      • Inteligencia Artificial Aplicada a Finanzas
      • Domina Excel
      • Financial Analyst
      • Conseguir trabajo en Finanzas e Inversiones
    • Startups
      • Fundamentos y Validación de Ideas
      • Estrategia de Negocio y Product-Market Fit
      • Desarrollo de Producto y Operaciones Lean
      • Finanzas, Legal y Fundraising
      • Marketing, Ventas y Growth para Startups
      • Cultura, Talento y Liderazgo
      • Finanzas y Operaciones en Ecommerce
      • Startups Web3 y Blockchain
      • Startups con Impacto Social
      • Expansión y Ecosistema Startup
    • Cloud Computing y DevOps
      • Fundamentos de Cloud y DevOps
      • Administración de Servidores Linux
      • Contenerización y Orquestación
      • Infraestructura como Código (IaC) y CI/CD
      • Amazon Web Services
      • Microsoft Azure
      • Serverless y Observabilidad
      • Certificaciones Cloud (Preparación)
      • Plataforma Cloud GCP

    Platzi y comunidad

    • Platzi Business
    • Live Classes
    • Lanzamientos
    • Executive Program
    • Trabaja con nosotros
    • Podcast

    Recursos

    • Manual de Marca

    Soporte

    • Preguntas Frecuentes
    • Contáctanos

    Legal

    • Términos y Condiciones
    • Privacidad
    • Tyc promociones
    Reconocimientos
    Reconocimientos
    Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
    Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
    Logo reconocimientoPrimera Startup EdTech · 2018
    Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
    Logo reconocimientoCEO Mejor Emprendedor del año · 2024
    De LATAM conpara el mundo
    YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads