Imputación de datos perdidos con bosques de decisión. missForest. [Chupitos de R]

Sdílet
Vložit
  • čas přidán 7. 09. 2024
  • #missForest #Rstudio #R
    Si te gusta mi contenido y quieres, puedes pagarme un café en: ko-fi.com/chup... así no me dormiré mientras hago los chupitos.
    En este Chupito de R, os explico cómo imputar datos perdidos ordinales, categóricos o cuantitativos empleando múltiples árboles de decisión o bosques de decisión. Para ello emplearemos esencialmente el paquete de R missForest que nos va a dar una forma sencilla y flexible de imputar estos datos.
    Como siempre toda la sintaxis en:
    github.com/pableres/Imputaciondatos

Komentáře • 35

  • @SamirRicardoNemeChaves

    Tremenda herramienta, con bases de datos grandes es de mucha ayuda, tus contenidos siempre aportan un montón a los entusiastas de R, gracias por el esfuerzo !!!

    • @PabloVallejoMedina
      @PabloVallejoMedina  Před 3 lety +1

      Muchas gracias como siempre Samir, ya estamos en proceso de monetización. Así que empezaréis a ver algún que otro anuncio.

  • @wladimirgonzalez3667
    @wladimirgonzalez3667 Před 3 lety

    Excelente explicación. Gracias!!!!

  • @adriangarrudo
    @adriangarrudo Před 3 lety

    Una explicación perfecta !!!! Muchas gracias por todo

    • @PabloVallejoMedina
      @PabloVallejoMedina  Před 3 lety

      Un placer!!!

    • @adriangarrudo
      @adriangarrudo Před 3 lety

      @@PabloVallejoMedina Una cosilla, comentas en el vídeo que también funciona con variables categóricas ?
      Me reporta un error y creo que es debido a eso.
      missForest iteration 1 in progress...done!
      Error in FUN(left, right) : argumento no-numérico para operador binario
      Además: Warning messages:
      1: In mean.default(xmis[, t.co], na.rm = TRUE) :
      argument is not numeric or logical: returning NA
      2: In mean.default(xmis[, t.co], na.rm = TRUE) :
      argument is not numeric or logical: returning NA
      3: In mean.default(xmis[, t.co], na.rm = TRUE) :
      argument is not numeric or logical: returning NA
      A ver si te ha pasado alguna vez, gracias de antemano, un saludo

  • @demigod4504
    @demigod4504 Před rokem +1

    Este video vale ORO!. Que grande Maestro. +1 Sub aquí. Solo una pregunta, el % de error estimado tanto para las variables continuas como para factores, depende de la cantidad de variables que se incluyan en el data frame? o sólo de la cantidad de observaciones registradas vs los N/A por columna.

    • @PabloVallejoMedina
      @PabloVallejoMedina  Před rokem

      Hola, no conozco los pormenores de la estimación. Al final es un machine learning sin testar. Entiendo que el % dependerá del poder predictivo de las variables entre sí, el número de omisiones... pero ya te digo está fuera de mi campo e incluso de mi nivel de abstracción.

  • @juancampos9693
    @juancampos9693 Před 3 lety

    Genial y muy útil como siempre, apenas tenga tiempo haré una maratón de tus videos jaja, Saludos!!

  • @nubiazoelara438
    @nubiazoelara438 Před 2 lety

    Excelente explicación, gracias. Tengo duda si hay algún número mínimo de observaciones para trabajar esta técnica. Saludos!

    • @PabloVallejoMedina
      @PabloVallejoMedina  Před 2 lety

      Hola Nubia, muy buena pregunta. Es un procedimiento de machine learning. En realidad, cuantas más observaciones más aprenderá. En teoría con 3 ya funcionaría, pero sería 0 fiable. También depende del número de datos perdido, prefiero tener 100 observaciones para estimar un dato perdido, que 1000 para estimar 500. No sé si me he explicado.

  • @omarllanescardenas2498
    @omarllanescardenas2498 Před měsícem

    Bien

  • @freddycful
    @freddycful Před 3 lety +1

    Buena maestro

  • @paulaamado7281
    @paulaamado7281 Před 2 lety

    Hola!! Excelente video. Tengo una pregunta. En qué se diferencia con el paquete de "missRanger"? Corre de forma similar?

  • @GuisseppeVasquezV
    @GuisseppeVasquezV Před 3 lety

    Espectacular tu video, habia leido del missForest en un libro pero gracias por ponerlo en video. Una consulta una vez imputado los datos perdidos 1) Podrias comentar que prueba estadistica se usa para seleccionar que serie imputada es mejor en caso se hagan diferentes corridas con la misma data, escuche de la prueba de curtosis pero no se si es esa u otra que recomiendes. 2) La corrida lo hiciste con los valores por default pero cuantas iteraciones tu recomendarias si tuvieras series de tiempo largas.
    Muchas gracias.

    • @PabloVallejoMedina
      @PabloVallejoMedina  Před 3 lety

      Qué tal?
      1. pues la verdad no hay casi diferencias si la corres varias veces. Si no estoy mal itera en función de las diferencias y no del error. Por lo que si se detiene en la 4 iteración podría ser que la 3 tuviera menos error. Tu le puedes forzar a que termine en la 3, pero la verdad las diferencias son mínimas. Así que no creo que sea necesario. Tampoco se me ocurre un contraste realista entre varias imputaciones, pienso en una mediada de consistencia interna tipo alfa de Cronbach, pero las diferencias no serian significativas... yo no creo que merezca la pena meterse a hacer esas comparaciones. Más bien entre la matriz sin imputar y la imputada... eso depende de los análisis que quieras hacer, aquí hay más información: www.kaggle.com/lmorgan95/missforest-the-best-imputation-algorithm
      2. yo le dejo al programa que lo haga. No suelo trabajar con series temporales largas, pero sí con bases de datos grandes. Suele encontrar soluciones tras 1 o 2 min en unas 15 iteraciones, pero yo le fuerzo a un n fijo.

  • @billestrada2905
    @billestrada2905 Před 3 lety

    Hola!! Genial tu video! Un par de consultas,: 1.-¿El primer argumento de imputación muestra los errores estimados de todas las variables en conjunto y el segundo argumento lo hace por cada variable, verdad? 2.-¿Entre qué valor es recomendable que esté el error estimado? Éxitos! pdta: tienes un tutorial sobre minería de datos? no hay muchos en español con R :/

    • @PabloVallejoMedina
      @PabloVallejoMedina  Před 3 lety +1

      1. Sí correcto.
      2º. No hay consenso, depende del número de datos perdidos, el tipo de variables., el objetivo del estudio. Pero por darte un número, no tendría ningún sentido hacerlo si tiene más de un 50% de error.

  • @fersilvavia
    @fersilvavia Před 2 lety

    Muchas gracias, excelente vídeo!! Tienes alguna referencia de la parte matemática estadística detrás de todo esto?

  • @dr.jonssanchez1617
    @dr.jonssanchez1617 Před 3 lety

    bravo!

  • @xabierbarrutia4021
    @xabierbarrutia4021 Před 8 měsíci

    Y si los valores perdidos no están dispersos por la matriz? Por ejemplo, una encuesta pasada antes y después, si en el "después" hay personas que no han contestado, pero no quiero perder esos datos, se pueden imputar también? Saludos

    • @brunocandiotti5441
      @brunocandiotti5441 Před 2 měsíci

      No sé si te ayude porque ya pasaron 5 meses, pero no, no se debe imputar ya que son datos perdidos por un mecanismo no aleatorio (el encuestado no respondió). La imputación solo se usa para datos perdidos por mecanismos aleatorios o completamente aleatorios

  • @felixbaltazar3255
    @felixbaltazar3255 Před 3 lety

    Una consulta cuál es el umbral de los errores para considerable aceptable

    • @PabloVallejoMedina
      @PabloVallejoMedina  Před 3 lety +1

      No hay consenso, depende del número de datos perdidos, el tipo de variables., el objetivo del estudio. Pero por darte un número, no tendría ningún sentido hacerlo si tiene más de un 50% de error.

  • @claudialuna8156
    @claudialuna8156 Před 2 lety

    Hola amigo, gracias por el video, ya estoy suscrita y te di mi like :) Tengo una pregunta, estoy tratando de aplicar la función a mi data frame tal como tú lo haces, pero me arroja el siguiente error:
    > imp

  • @blancamartinez5211
    @blancamartinez5211 Před 11 měsíci

    Hola no se si aún veas los comentarios pero tengo un conjunto de datos grande y me genera el siguiente error: missForest iteration 1 in progress...Error in randomForest.default(x = obsX, y = obsY, ntree = ntree, mtry = mtry, :
    Can not handle categorical predictors with more than 53 categories. Parece que missforest no me funciona debido a que no puede manejar predictores categóricos con más de 53 categorías. Qué otro método puedo usar? Es posible contactarse contigo?

    • @PabloVallejoMedina
      @PabloVallejoMedina  Před 11 měsíci

      Hola Blanca, ¿qué estás evaluando con 53 categorías? No sé si tiene sentido imputar ese tipo de variables categóricas, imagino que el error del algoritmo será enorme.

  • @godoyfreddy
    @godoyfreddy Před 3 lety +1

    Excelente! Oye te coloco el like pero veo que youtube no te lo contabiliza.

    • @PabloVallejoMedina
      @PabloVallejoMedina  Před 3 lety

      CZcams no me quiere mucho ;). No no sé ni idea. No hay lio. Muchas gracias