CursosEmpresasBlogLiveConfPrecios

El problema de trabajar con valores faltantes

Clase 1 de 17 • Curso de Manejo de Datos Faltantes: Imputación

Contenido del curso

Problemática de valores faltantes

  • 1
    El problema de trabajar con valores faltantes

    El problema de trabajar con valores faltantes

    Viendo ahora
  • 2
    Proceso de análisis y limpieza de datos

    Proceso de análisis y limpieza de datos

    13:19 min
  • 3
    Visualizar y eliminar valores faltantes

    Visualizar y eliminar valores faltantes

    08:19 min
  • 4
    Implicaciones de los distintos tipos de valores faltantes

    Implicaciones de los distintos tipos de valores faltantes

    09:43 min
  • 5
    Amplía tu conjunto de herramientas para explorar valores faltantes

    Amplía tu conjunto de herramientas para explorar valores faltantes

    11:55 min
  • 6
    Tratamiento de variables categóricas para imputación: codificación ordinal

    Tratamiento de variables categóricas para imputación: codificación ordinal

    15:59 min
  • 7
    Tratamiento de variables categóricas para imputación: one-hot encoding

    Tratamiento de variables categóricas para imputación: one-hot encoding

    12:51 min
  • 8
    Métodos de imputación de valores faltantes

    Métodos de imputación de valores faltantes

    04:41 min

Imputación basada en el donante

  • 9
    Imputación por media, mediana y moda

    Imputación por media, mediana y moda

    10:22 min
  • 10
    Imputación por llenado hacia atrás y hacia adelante

    Imputación por llenado hacia atrás y hacia adelante

    09:20 min
  • 11
    Imputación por interpolación

    Imputación por interpolación

    11:46 min
  • 12
    Imputación por KNN

    Imputación por KNN

    04:34 min
  • 13
    Imputación por KNN en Python

    Imputación por KNN en Python

    12:01 min

Imputación basada en modelos

  • 14
    Introducción a la imputación basada en modelos

    Introducción a la imputación basada en modelos

    13:27 min
  • 15
    Imputaciones Múltiples por Ecuaciones Encadenadas (MICE)

    Imputaciones Múltiples por Ecuaciones Encadenadas (MICE)

    13:05 min

Conclusión

  • 16
    Transformación inversa de los datos

    Transformación inversa de los datos

    07:07 min
  • 17
    ¿Cómo continuar practicando?

    ¿Cómo continuar practicando?

    03:09 min
Tomar examen

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
      Obtén respuestas inmediatasProfundiza lo que acabas de ver

      Comentarios

      Carlos Mazzaroli

      Carlos Mazzaroli

      student•
      hace 3 años
        Alberto Bernaola

        Alberto Bernaola

        student•
        hace 3 años
        Alberto Bernaola

        Alberto Bernaola

        student•
        hace 3 años
      Carlos Enrique Cervantes Aguilar

      Carlos Enrique Cervantes Aguilar

      student•
      hace 3 años
        Pablo Alejandro Figueroa

        Pablo Alejandro Figueroa

        student•
        hace 2 años
      Yonatan Efraín Jara Boza

      Yonatan Efraín Jara Boza

      student•
      hace 3 años
      Carlos Enrique Cervantes Aguilar

      Carlos Enrique Cervantes Aguilar

      student•
      hace 3 años
        Julián Cárdenas

        Julián Cárdenas

        student•
        hace 3 años
      Roger Christian Cansaya Olazabal

      Roger Christian Cansaya Olazabal

      student•
      hace 3 años
      Manuel Juarez

      Manuel Juarez

      student•
      hace 3 años
        Jesús David Barraza Guzmán

        Jesús David Barraza Guzmán

        student•
        hace 3 años
        María Eugenia Pereira Chévez

        María Eugenia Pereira Chévez

        student•
        hace 3 años
      José Fernando Aguilar Arredondo

      José Fernando Aguilar Arredondo

      student•
      hace 3 años
        Manuel Juarez

        Manuel Juarez

        student•
        hace 3 años
        Joaquin Romero Flores

        Joaquin Romero Flores

        student•
        hace 3 años
      jhon velasque

      jhon velasque

      student•
      hace 3 años
        Sofía Salas

        Sofía Salas

        student•
        hace 3 años
        Jeinfferson Bernal G

        Jeinfferson Bernal G

        student•
        hace 3 años
      Daniel Esponda

      Daniel Esponda

      student•
      hace 3 años
      sebastián Giraldo Vargas

      sebastián Giraldo Vargas

      student•
      hace 3 años
      Mauricio Escobar

      Mauricio Escobar

      student•
      hace 2 años
      Mario Alexander Vargas Celis

      Mario Alexander Vargas Celis

      student•
      hace 2 años
      Alfonso Andres Zapata Guzman

      Alfonso Andres Zapata Guzman

      student•
      hace 3 años
        Alfonso Andres Zapata Guzman

        Alfonso Andres Zapata Guzman

        student•
        hace 3 años
      Mario Chavez

      Mario Chavez

      student•
      hace 3 años
      sebastián Giraldo Vargas

      sebastián Giraldo Vargas

      student•
      hace 3 años
      Jeinfferson Bernal G

      Jeinfferson Bernal G

      student•
      hace 3 años
      Jeinfferson Bernal G

      Jeinfferson Bernal G

      student•
      hace 3 años
      Alejandro José Hugo Escalante Santos

      Alejandro José Hugo Escalante Santos

      student•
      hace un mes
      Luis Cesar Guadarrama Jimenez

      Luis Cesar Guadarrama Jimenez

      student•
      hace 4 meses
      Luis Cesar Guadarrama Jimenez

      Luis Cesar Guadarrama Jimenez

      student•
      hace 4 meses
      •
      editado

      Estoy tratando de aplicar lo aprendido en el curso de pro config en los proyectos/cursos que vamos haciendo, el environment.yml quedaria asi para este curso

      # conda env create --file environment.yml # mamba env create --file environment.yml name: handling_missing_data channels: - anaconda - conda-forge - defaults dependencies: - black - invoke - jupyter - jupyterlab - keras - lightgbm - matplotlib - missingno - nbdime - numpy - pandas - pandas-flavor - pandas-profiling - plotly - pyjanitor - pylint - pyprojroot - pyspark - scikit-learn - seaborn - statsmodels - tensorflow - pip - python=3.9 - python-dotenv - session-info - pyreadr - upsetplot - statsmodels==0.13.2 - fancyimpute - scipy - pip: - nhanes - nhanes==0.5.1 - ozon3

      O pueden hacer un pip install -r requirements tmb :p

      me sale ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

      que curso recomiendas.

      Al abrir la notebook en deepnote me daba un error diciendo que no se podía inicializar correctamente. Lo pude solucionar cambiando en el archivo requirements.txt la librería sklearn por scikit-learn.

      sklearn <------- Eliminar scikit-learn <----- Agregar

      muchas gracias..!!

      He estado haciendo los modelos logísticos para 'death' y también me ha fallado con 'chapter', al principio pensaba que podría ser porque tiene valores faltantes, cosa que no es cierto pues con 'creatinine' el modelo sí se crea.

      Leyendo por aquí buscando el error en internet (Perfect separation error) y revisando desde la tabla la relación entre 'chapter' y 'death' se observa que:

      Cada vez que 'death' es 1 hay una 'chapter' clasificado; y que cuando 'death' es 0, 'chapter' tiene registrado un valor faltante. Esto de alguna manera que desconozco -posiblemente induce a error en la funcion sigmoide o no encuentra un coeficiente- afecta a que el módelo se cree o similar. Si hay algun experto, agredeceré su aporte.

      PD: Usando el nombre 'lambda' (la variable) también manda a error del módelo pero si se cambia el nombre desde el comienzo funcionará.

      Con el siguiente código en el reto:

      ( smf.ols( formula="death ~ C(chapter)", data = survival_df ) .fit() .summary() .tables[0] )

      obtengo en R-squared un valor -inf. ¿Ese es el efecto que tienen los datos faltantes? Si voy agregando más variables, el valor no cambia, hasta que elimino chapter.

      Gracias!

      Para complementar el manejo de Datos, excelente.

      Hola, alguien sabe si se puede correr estos notebooks en otra plataforma? Deepnote se me hace muy lento en mi computadora y he intentado correrlo en vs code y Jupyter pero sin éxito. Tengo problemas principalmente tratando de incorporar pandas-misssing-extension en mi notebook

      Google Colab me ha servido mucho

      Yo lo estoy corriendo en Jupyter

      Screenshot 2022-11-23 at 15.42.39.png

      Me sale ese error, ¿Alguien sabe como solucionarlo? ¿Y cómo lo solucionaron? Me podrían ayudar por favor. Gracias

      Hay un instructivo en el curso anterior, es una de las primeras clases, por si quieres verlo. Básicamente, en deepnote tienes que descargar pandas-missing-extension.ipynb de la carpeta notebooks a tu computadora, y después volver a subir ese archivo a la carpeta files en deepnote. Luego de hacer eso vas a poder ejecutar esa linea sin problemas

      Hey, José.! debris exportar el archivo que esta en el notebook y luego importarlo a files como archivo .ipynb Hecho esto, deberas solo incluir entre comillas de la siguiente manera: ‘%run’ ‘pandas-missing-entension.ipynb' Con esto, resolveras el inconveniente o aquellos que vengan en camino. Saludos!

      tengo porblema con la libreria janitor no lo reconoce el entorno virtual que lo cree pero en conda si lo reconoce saben a que se debe o como solucionar el porblema de abajo

      problemas con janoitor.png

      Hola, pudiste resolverlo? Yo tambien tengo el mismo problema

      Me sucedia algo similar con la libreria nhanes. Lo solucione instalandolo en el entorno de conda con pip install nhanes. Para tu caso seria pip install pyjanitor. Intentalo!

      Esta combinación de variables me permitió obtener una correlación de 0.51.

      ( smf.ols( formula="death ~ futime + age", data = survival_df ) .fit() .summary() .tables[0] )

      Cuando creo un modelo logistico con la variable chapter siempre me sale este error, busqué en stack overflow pero la verdad... no entendí el porqué ocurría xD. alguien me explica el error?

      error.PNG

      como alternativa a janitor, podemos cargar el dataset de la siguiente forma:

      df_airquality = sm.datasets.get_rdataset("airquality").data # renombrar cols -> snake_case df_airquality.columns = (df_airquality.columns.str.lower() .str.replace(' ', '_') .str.replace('.', '_')) df_airquality['year'] = 1973 # nueva columna -> year df_airquality['date'] = pd.to_datetime(df_airquality[['year', # columna 'date' tipo datetime 'month', 'day']]) df_airquality = df_airquality.sort_values('date') # ordenar por fecha df_airquality = df_airquality.set_index('date') ```Nada en contra de janitor *versión 0.27*, sin embargo no he encontrado la forma de resolver los warnings (sin apagarlos) Si alguien ha podido resolverlo porfa avísenme. &#x20;

      El manejo de datos faltantes a través de la imputación es un proceso crucial en el análisis de datos para mejorar la calidad y la utilidad del conjunto de datos. La imputación implica estimar y reemplazar los valores faltantes con valores calculados o predichos para que el análisis y los modelos sean más precisos. Aquí tienes un resumen de técnicas comunes de imputación:

      ### 1. **Imputación con la Media, Mediana o Moda**

      - **Media**: Sustituye los valores faltantes por el promedio de los valores presentes en esa columna. Útil para datos numéricos que no tienen muchos valores atípicos.

      - **Mediana**: Sustituye los valores faltantes por el valor central cuando los datos están ordenados. Es menos sensible a los valores atípicos que la media.

      - **Moda**: Sustituye los valores faltantes por el valor más frecuente en la columna. Utilizado para datos categóricos.

      ```python

      import pandas as pd

      # Imputación con la media

      df['column_name'].fillna(df['column_name'].mean(), inplace=True)

      # Imputación con la mediana

      df['column_name'].fillna(df['column_name'].median(), inplace=True)

      # Imputación con la moda

      df['column_name'].fillna(df['column_name'].mode()[0], inplace=True)

      ```

      ### 2. **Imputación Basada en Modelos**

      - **Regresión**: Usa una variable dependiente para predecir el valor faltante basado en otras variables independientes.

      - **k-Nearest Neighbors (k-NN)**: Imputa valores basándose en la similitud entre los datos. Busca los k vecinos más cercanos y utiliza sus valores para la imputación.

      ```python

      from sklearn.impute import KNNImputer

      # Imputación con k-NN

      imputer = KNNImputer(n_neighbors=5)

      df_imputed = imputer.fit_transform(df)

      ```

      ### 3. **Imputación por Interpolación**

      - **Lineal**: Interpola los valores faltantes usando una función lineal entre los valores existentes.

      - **Polinómica**: Utiliza polinomios para la interpolación.

      ```python

      # Imputación lineal

      df['column_name'] = df['column_name'].interpolate(method='linear')

      ```

      ### 4. **Imputación por Valores Predeterminados**

      - Sustituye los valores faltantes con un valor específico que tenga sentido en el contexto del conjunto de datos (por ejemplo, 0, 'desconocido').

      ```python

      # Imputación con un valor específico

      df['column_name'].fillna('Unknown', inplace=True)

      ```

      ### 5. **Imputación con Datos de Vecinos**

      - Utiliza datos similares de otras observaciones para imputar los valores faltantes.

      ```python

      from sklearn.impute import SimpleImputer

      # Imputación con la mediana por defecto

      imputer = SimpleImputer(strategy='median')

      df_imputed = imputer.fit_transform(df)

      ```

      ### 6. **Múltiples Imputaciones**

      - **Multiple Imputation by Chained Equations (MICE)**: Imputa los valores faltantes múltiples veces y combina los resultados para tener en cuenta la incertidumbre en la imputación.

      ```python

      from miceforest import MultipleImputedData

      mice_data = MultipleImputedData(df)

      df_imputed = mice_data.complete_data()

      ```

      Cada técnica tiene sus ventajas y desventajas, y la elección del método adecuado dependerá de la naturaleza de los datos y del contexto del análisis. La imputación adecuada puede mejorar la precisión del análisis y la calidad de los modelos predictivos.

      Para Ubuntu con WSL2:

      # Tener varias versiones de python en WSL2 (https://levelup.gitconnected.com/install-multiple-python-versions-in-wsl2-ba81f21109d6) ## Con esta linea descargo la version pyenv install 3.9.15 ## Con esta linea coloca la version local en una carpeta pyenv local 3.9.15
      # crear una carpeta con mkdir # entrar a dicha carpeta con cd # Crear el entorno virtual alli con python3 -m venv env # Activar el entorno virtual source env/bin/activate # instalar archivo requirements.txt presente en el repositorio de github de esta clase pip3 install -r requirements.txt # abrir con windows code insiders (deberia instalar automaticamente) code-insiders .

      Tuve problemitas con el entorno virtual por lo cual procedi a usar:

      pyenv-virtualenv

      para gestionar los entornos virtuales con pyenv. Guia que segui: https://www.liquidweb.com/kb/how-to-install-pyenv-virtualenv-on-ubuntu-18-04/

      # Tener varias versiones de python en WSL2 (https://levelup.gitconnected.com/install-multiple-python-versions-in-wsl2-ba81f21109d6) ## Con esta linea descargo la version de python que requiera usar: pyenv install 3.9.15 ## clono el repositorio pyenv-virtualenv git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv ##Configuro echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc ## Actualizo exec $SHELL
      # crear una carpeta con mkdir # entrar a dicha carpeta con cd # Crear el entorno virtual alli con pyenv virtualenv 3.9.15 venv # Activar el entorno virtual Se activa directamente al entrar con cd a dicha carpeta y se desactiva al salir de ella con cd .. # instalar archivo requirements.txt presente en el repositorio de github de esta clase pip3 install -r requirements.txt # abrir con windows code insiders (deberia instalar automaticamente) code-insiders .
      airquality_df = ( sm.datasets.get_rdataset('airquality') .data .clean_names( case_type='snake' ) .add_column('year', 1973) .assign( date=lambda df: pd.to_datetime(df[['year', 'month', 'day']]) ) .sort_values(by='date') .set_index('date') ) airquality_df

      Al crear un modelo de regresión logística y entrenarlo con valores faltantes, simplemente me sale este error:

      for_platzi.png

      Muy buena aclaracion sobre la forma en que cometemos el error de no considerar los errores faltantes a pesar de que el algoritmo corra sin arrojar un warning

      Aunque se quisiera comparar ambos modelos mediante su valor de R cuadrado para saber cual de los dos se ajusto mejor, es un error hacerlo debido a que los modelos estan basados sobre diferentes numeros de observaciones.

      Interesante tema.

      Sobre el reto del final de la clase:

      En mi caso, encontré por qué fallaba el modelo al intentar predecir la columna Death usando las variables con faltantes.

      ( smf.logit( formula="death ~ creatinine + chapter", data = survival_df ) .fit() .summary() .tables[0] )

      El problema es que statsmodels elimina automáticamente toda la fila si encuentra aunque sea un solo valor NaN (nulo) en las variables seleccionadas. Para comprobar qué estaba pasando tras bambalinas, filtré los datos manualmente igual que lo hace el modelo:

      df_limpio = survival_df.dropna(subset=['death', 'sample.yr', 'kappa', 'chapter']) print("Filas restantes:", len(df_limpio)) print("Conteo de muertes en este subgrupo:") print(df_limpio['death'].value_counts())

      Al eliminar los nulos, eliminamos accidentalmente a todos los vivos. El modelo falló porque intentaba predecir muerte en un dataset donde el 100% de los sujetos ya tienen el mismo estado (varianza cero).

      Hola a todos. Tuve algunos errores al ejecutar el código del notebook de Deepnote en VS Code localmente (por falta de librerías).

      Les comparto la solución que me funcionó para configurar el ambiente correctamente. Solo hay que ejecutar lo siguiente para instalar todas las dependencias necesarias de una sola vez:

      pip install --upgrade pip pip install scikit-learn pyjanitor matplotlib missingno nhanes scipy seaborn session-info # Si estan en un ambiente virtual o no lo tienen instalado, tambien corran el siguiente codigo: %pip install statsmodels %pip install nbformat %pip install upsetplot

      Espero les sirva y puedan ejecutarlo sin problemas