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
        Carlos Mazzaroli

        Carlos Mazzaroli

        student•
        hace 3 años

        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

          Alberto Bernaola

          Alberto Bernaola

          student•
          hace 3 años

          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.

          Alberto Bernaola

          Alberto Bernaola

          student•
          hace 3 años

          que curso recomiendas.

        Carlos Enrique Cervantes Aguilar

        Carlos Enrique Cervantes Aguilar

        student•
        hace 3 años

        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
          Pablo Alejandro Figueroa

          Pablo Alejandro Figueroa

          student•
          hace 2 años

          muchas gracias..!!

        Yonatan Efraín Jara Boza

        Yonatan Efraín Jara Boza

        student•
        hace 3 años

        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á.

        Carlos Enrique Cervantes Aguilar

        Carlos Enrique Cervantes Aguilar

        student•
        hace 3 años

        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.

          Julián Cárdenas

          Julián Cárdenas

          student•
          hace 3 años

          Gracias!

        Roger Christian Cansaya Olazabal

        Roger Christian Cansaya Olazabal

        student•
        hace 3 años

        Para complementar el manejo de Datos, excelente.

        Manuel Juarez

        Manuel Juarez

        student•
        hace 3 años

        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

          Jesús David Barraza Guzmán

          Jesús David Barraza Guzmán

          student•
          hace 3 años

          Google Colab me ha servido mucho

          María Eugenia Pereira Chévez

          María Eugenia Pereira Chévez

          student•
          hace 3 años

          Yo lo estoy corriendo en Jupyter

        José Fernando Aguilar Arredondo

        José Fernando Aguilar Arredondo

        student•
        hace 3 años
        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

          Manuel Juarez

          Manuel Juarez

          student•
          hace 3 años

          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

          Joaquin Romero Flores

          Joaquin Romero Flores

          student•
          hace 3 años

          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!

        jhon velasque

        jhon velasque

        student•
        hace 3 años

        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

          Sofía Salas

          Sofía Salas

          student•
          hace 3 años

          Hola, pudiste resolverlo? Yo tambien tengo el mismo problema

          Jeinfferson Bernal G

          Jeinfferson Bernal G

          student•
          hace 3 años

          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!

        Daniel Esponda

        Daniel Esponda

        student•
        hace 3 años

        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] )

        sebastián Giraldo Vargas

        sebastián Giraldo Vargas

        student•
        hace 3 años

        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

        Mauricio Escobar

        Mauricio Escobar

        student•
        hace 2 años

        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;
        Mario Alexander Vargas Celis

        Mario Alexander Vargas Celis

        student•
        hace 2 años

        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.

        Alfonso Andres Zapata Guzman

        Alfonso Andres Zapata Guzman

        student•
        hace 3 años

        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 .
          Alfonso Andres Zapata Guzman

          Alfonso Andres Zapata Guzman

          student•
          hace 3 años

          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 .
        Mario Chavez

        Mario Chavez

        student•
        hace 3 años
        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
        sebastián Giraldo Vargas

        sebastián Giraldo Vargas

        student•
        hace 3 años

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

        for_platzi.png
        Jeinfferson Bernal G

        Jeinfferson Bernal G

        student•
        hace 3 años

        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

        Jeinfferson Bernal G

        Jeinfferson Bernal G

        student•
        hace 3 años

        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.

        Luis Cesar Guadarrama Jimenez

        Luis Cesar Guadarrama Jimenez

        student•
        hace 2 meses

        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).

        Luis Cesar Guadarrama Jimenez

        Luis Cesar Guadarrama Jimenez

        student•
        hace 2 meses
        •
        editado

        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

        Jesús Alberto Romero Hernández

        Jesús Alberto Romero Hernández

        student•
        hace 9 meses

        Para los que estamos tomando este curso en 2025 usando Google Colab:

        El primer problema es con la Biblioteca statsmodels==0.13.2 la cual es es una versión de mediados de 2022. El entorno de Colab se actualiza (actualmente parece que usas Python 3.11 y NumPy 2.0.2). Las versiones más antiguas de los paquetes pueden no tener "ruedas" (wheels, que son paquetes precompilados) disponibles para las versiones más nuevas de Python o sus dependencias, o pueden tener problemas para compilarse en estos entornos más nuevos.

        Para resolver esto deben Modificar tu archivo requirements.txt:

        • Cambia la línea statsmodels==0.13.2 a simplemente statsmodels. Esto instalará la última versión estable disponible.
        • O especifica una versión más reciente que se sepa que es compatible, por ejemplo: statsmodels>=0.14.0 (o incluso statsmodels==0.14.2 o la que sea la última estable cuando leas esto).

        El segundo problema encontrado es con la Biblioeca scikit-learn. En el archivo requirements.txt aparece especifada como sklearn la cual en PyPI es un paquete "falso" o de transición y está obsoleto. No contiene la librería de machine learning que esperas. La librería real se llama scikit-learn por cual igualmente hay que modificar el archivo requirements.txt.

        El tercer problema es que Google Colab posee preinstaladas muchas Bibliotecas, incluyendo NumPy. Cuando intentas instalar Bibliotecas desde un requirements.txt, es posible que algunas de estas tengan dependencias específicas de NumPy que no coinciden con la versión preinstalada, o que la instalación de una nueva librería actualice NumPy a una versión que luego causa conflicto con otras librerías ya instaladas o viceversa. El error numpy.dtype size changed es el síntoma clásico de esta incompatibilidad binaria.

        Para solucionarlo sigue los siguientes pasos

        • Reinicia el entorno de ejecución (Runtime Restart): Esto es fundamental. Cada vez que tengas un problema de versiones, especialmente con NumPy, es lo primero que debes hacer.

          • Ve a Entorno de ejecución (Runtime) en el menú superior.
          • Selecciona Reiniciar entorno de ejecución (Restart runtime).
          • Confirma el reinicio. Esto borra la memoria del entorno y te permite empezar de nuevo.
        • Forzar la reinstalación de NumPy y las librerías dependientes: El problema no es que numpy no se instaló, sino que la versión que se está usando en el momento de la importación es incompatible con alguna librería compilada con otra versión de numpy. El orden es crucial:

        • Primero debemos desinstalar NumPy (y cualquier librería que pueda haberlo instalado o depender fuertemente de una versión específica) # El -y es para confirmar automáticamente la desinstalación. !pip uninstall numpy -y !pip uninstall scipy -y # SciPy es otra librería que a menudo causa conflictos si no coincide con NumPy. !pip uninstall scikit-learn -y # scikit-learn también tiene una fuerte dependencia de NumPy y SciPy. !pip uninstall pandas -y # Pandas también depende fuertemente de NumPy.

          Instalar una versión específica y compatible de NumPy. # A menudo, una versión un poco más antigua que la última puede ser más estable para la compatibilidad. # numpy==1.23.5 es una buena apuesta, o 1.24.4, o incluso la última si no hay problemas. # Si la 1.23.5 falla, intenta con 1.24.4 o solo !pip install numpy (la última estable). !pip install numpy==1.23.5

          Reinstalar el resto de las dependencias desde tu requirements.txt. # Es importante reinstalar todo para asegurar que se compilen/enlacen con la versión de NumPy recién instalada. !pip install -r requirements.txt

        • Reiniciar el entorno de ejecución nuevamente (Altamente recomendado): Después de todas las instalaciones, un segundo reinicio asegura que Python cargue todas las librerías con las versiones correctas desde el disco y no desde alguna caché de memoria.

          • Entorno de ejecución (Runtime) -> Reiniciar entorno de ejecución (Restart runtime).
        • Ejecutar tu código de importación: Después de los reinicios y reinstalaciones, ahora deberías poder importar tus librerías sin el error de NumPy.

          Bryan Castano

          Bryan Castano

          student•
          hace 4 meses

          Hey, Gracias pro vuestro amable comentario, si es cierto, Yo he seguido vuestras recomendaciones y se ha solucionado, ahora puedo trabajar bien en mi DeeepNote. esperemos que todo salga bien por el rresto del curso, tambien me habia creado un conda env en mi localhost para segurilo desde local, DP puede ser muy pesado aveces, incluso toma mas recursoso desde el navegador que trabajar con Jupyter Notebooks.