Curvas ROC Curvas COR en R [Chupitos de R]

Поділитися
Вставка
  • Опубліковано 14 лип 2020
  • #COR #ROC #R
    Si te gusta mi contenido y quieres, puedes pagarme un café en: ko-fi.com/chupitosder así no me dormiré mientras hago los chupitos.
    En este nuevo chupito de R os explicaré cómo hacer curvas cor en R y Rstudio empleando el paquete proc. Se trata de un algoritmo sencillo que sobre la matriz de confusión optimiza un punto de corte para evaluar en función de un clasificador. En este vídeo os explico cómo obtener el punto de corte, el AUC o area bajo la curva y comparar una o más curvas. Toda la sintaxis así como la base de datos la tenéis en el siguiente link:
    github.com/pableres/Curvas-COR
    y el pdf del paquete:
    cran.r-project.org/web/packag...
    Para una introducción teórica más avanzada ver:
    • ROC and AUC, Clearly E...
    algunas imagenes de este video salen de ahí.
  • Наука та технологія

КОМЕНТАРІ • 82

  • @MrCigarro50
    @MrCigarro50 Рік тому

    Fantástica presentación. Muchas gracias.

  • @juancarlosvelezch.1035
    @juancarlosvelezch.1035 3 роки тому

    Gracias Pablo, que bueno tener vídeos de R en español

  • @astrofisica.parati3498
    @astrofisica.parati3498 3 роки тому

    Muchas gracias por tu contenido. De verdad me ayudó bastante.

  • @martorresubago1084
    @martorresubago1084 3 роки тому +2

    Realmente, se me hace difícil creer que alguien ponga que estos vídeos no le gustan. O es por error o es por envidia... Enhorabuena, Pablo Vallejo.

    • @PabloVallejoMedina
      @PabloVallejoMedina  3 роки тому

      O que no les gusta la técnica en particular ;). Hay gente que viene al canal pensando que son tutoriales de videojuegos... así que imagínate la decepción ;)

  • @josephvrz
    @josephvrz Рік тому

    Excelente, una clase magistral muchas gracias me ayudo bastante

  • @samirfernandes9
    @samirfernandes9 3 роки тому

    Professor, obrigado por sua aula. Me ajudou muito.

  • @gonzalosurribassayago4116
    @gonzalosurribassayago4116 Рік тому

    Excelente video programo en python y estoy ahora con R muy buen aporte saludos

  • @marcmontoro9773
    @marcmontoro9773 3 роки тому

    Moltes gracies per la teva feina.

    • @PabloVallejoMedina
      @PabloVallejoMedina  3 роки тому +1

      Un plaer noi, no se cuant de temps no escrivia en català crec que me olvidat ;)

  • @RaidellAvello
    @RaidellAvello 4 роки тому

    Muy buen videotutorial. Muy completo y didáctico.

    • @PabloVallejoMedina
      @PabloVallejoMedina  4 роки тому

      Muchas gracias ;)

    • @karen-sy7xn
      @karen-sy7xn 3 роки тому

      @@PabloVallejoMedina Professor, por que a Curva ROC começou no número 01?

    • @PabloVallejoMedina
      @PabloVallejoMedina  3 роки тому

      @@karen-sy7xn Por que se grafica 1-especificidad ;)

  • @williamballesteros3588
    @williamballesteros3588 3 роки тому

    Muchas gracias por toda la información. Esta ha sido de gran ayuda. Podrías hacer un chupito sobre modelos mixtos en R?, gracias de nuevo

  • @adriancalderon9336
    @adriancalderon9336 4 роки тому

    excelente y didactico como siempre; quiza se pueda aplicar a los resultados de los dos tipos de pruebas para detectar si existe contagio de COVID, las cuales han sido muy discutidas por los falsos negativos o falsos positivos....

  • @billestrada2905
    @billestrada2905 3 роки тому

    Excelente resumen, quizás puedas hacer otro para editar ya los gráficos para terminar con broche de oro. Éxitos! PDTA: NO TE PREOCUPES por lo tiempos, la cuestión es que tenga lo necesario ;)

    • @PabloVallejoMedina
      @PabloVallejoMedina  3 роки тому

      Creo que esto es lo que me pides ;) ua-cam.com/video/Cpxry_mMTcQ/v-deo.html

    • @billestrada2905
      @billestrada2905 3 роки тому

      @@PabloVallejoMedina genial! por cierto, se puede poner en lineas punteadas en vez de colores los intervalos de confianza de tu curva roc? te agradecería s compartes el comando. Sldos

    • @billestrada2905
      @billestrada2905 3 роки тому

      Por cierto, también se puede colocar el área de tus intervalos de confianza en la curva suavizada? xfa!

    • @PabloVallejoMedina
      @PabloVallejoMedina  3 роки тому

      @@billestrada2905 Hola, todos los comandos lo tienes en el pdf original. en tu caso a partir de la página 58. Pero no veo exactamente lo que pides. salvo que hagas type=c("bars") y el color lo pongas en gris o blanco.

    • @PabloVallejoMedina
      @PabloVallejoMedina  3 роки тому

      @@billestrada2905 Sí se puede, pero no sé porque no me salió en el video. Yo al final lo edito manual y me quito problemas.

  • @lizdahanigonzalezmendiola3190

    Excelente video, actualmente de donde podemos descargar el paquete pROC?

  • @David2Mor
    @David2Mor 4 роки тому +1

    Si se utiliza el material creado por otro colega (ua-cam.com/video/4jRBRDbJemM/v-deo.html), este debe ser citado/referenciado al momento de difundirse en un ejemplo propio.

    • @PabloVallejoMedina
      @PabloVallejoMedina  4 роки тому +1

      Yo no lo saqué de ahí directamente, pero creo que esa es la oficial. La subo a la descripción ;)

  • @haiverrodriguez4204
    @haiverrodriguez4204 2 роки тому

    Holaaa Maestraso Pablo, sus videos son geniales. Me podría ayudar con una cosita? Antes de establecer una curva ROC para un par de variables debo demostrar correlación entre las variables con una regresión lineal o establecer el peso de una variable sobre la otra con una regresión múltiple ? Como en su ejemplo, antes debo encontrar correlación entre el peso y el diagnostico de obesidad ? o esto no es necesario ? Muchas gracias

    • @PabloVallejoMedina
      @PabloVallejoMedina  2 роки тому

      Hola, qué buena pregunta!!!. A ver, las curvas COR son una extensión de la regresión logística binomial. Así que no, no sería necesario. El resultado de la COR es una interpretación de la clasificación de los casos a partir de una R Logística. Además piensa que tienes una variable binomial, si acaso podrías hacer una t-test... que bueno... también es una regresión ;)

  • @victorianomartin3627
    @victorianomartin3627 2 роки тому

    Hola! Enhorabuena por el vídeo, me ha parecido muy interesante. Una pregunta: ¿cómo se podrían comparar las curvas de dos modelos de predicción basados en una regresión logística binaria? Se me ha planteado en alguna ocasión tener dos modelos basados en regresiones logísticas y he podido crear las curvas ROC de cada modelo. Mi problema es cómo poder saber si las diferencias entre las curvas son signficativas. ¿me podrías orientar a cómo hacer esto?

    • @PabloVallejoMedina
      @PabloVallejoMedina  2 роки тому

      Hola. se le tiene ;). función roc.test
      This function compares the AUC or partial AUC of two correlated (or paired) or uncorrelated (un-
      paired) ROC curves. Several syntaxes are available: two object of class roc (which can be AUC or
      smoothed ROC), or either three vectors (response, predictor1, predictor2) or a response vector and
      a matrix or data.frame with two columns (predictors).

    • @victorianomartin3627
      @victorianomartin3627 2 роки тому

      @@PabloVallejoMedina Gracias por la ayuda

  • @reynaldosgt
    @reynaldosgt 3 роки тому

    Genial video, solo le faltó agregar el Gini..

    • @PabloVallejoMedina
      @PabloVallejoMedina  3 роки тому

      Es cierto, pero con la auc es muy fácil sacarlo: 2AUC - 1

  • @luisatorres7193
    @luisatorres7193 3 роки тому

    Pablo, está genial. Me chifla tu canal. Tengo una consulta: como puedo añadir los datos Auc de las dos curvas al grafico + la p value?

    • @PabloVallejoMedina
      @PabloVallejoMedina  3 роки тому

      Dos curvas simultaneas de dos estimadores más el p value....
      Con los datos aSAH, libres aquí tienes un ejemplo.
      library(pROC)
      data(aSAH)
      rocobj1

    • @luisatorres7193
      @luisatorres7193 3 роки тому

      @@PabloVallejoMedina gracias pero me falta proyectar auc e ic de line.roc sin que solape con la primera curva

    • @PabloVallejoMedina
      @PabloVallejoMedina  3 роки тому +1

      @@luisatorres7193 Mhh no acabo de entender qué sé solapa con qué? Como no me puedes enviar imágenes a este chat, si quieres escríbeme a pableres@gmail.com

  • @abrahamampuero40
    @abrahamampuero40 2 роки тому

    Muy buen video, una consulta sabes como el pROC determina los thresholds ? Veo que en tu caso son 140 thresholds. Gracias

    • @PabloVallejoMedina
      @PabloVallejoMedina  2 роки тому

      140 umbrales??? un umbral por cada puntuación supongo?

    • @abrahamampuero40
      @abrahamampuero40 2 роки тому

      @@PabloVallejoMedina Si claro, pROC orgina 139 puntos de corte o thresholds con su nivel de sensibilidad y especificidad para la curva ROC, pero tu data es de 185 observaciones. Por eso tenía la duda de cómo es que pROC determina el número de puntos de corte.

    • @PabloVallejoMedina
      @PabloVallejoMedina  2 роки тому +1

      @@abrahamampuero40 Sí, supongo que hay puntuaciones repetidas. Me estará dando un punto de corte para cada puntuación única que haya.

  • @enzocarbonell5975
    @enzocarbonell5975 2 роки тому

    > rocobj

  • @miguelangeldosantos8199
    @miguelangeldosantos8199 2 роки тому

    Buenos dias, como se haria para hallar el punto de corte con un logit multiple que tambien tiene variables continuas

    • @PabloVallejoMedina
      @PabloVallejoMedina  2 роки тому

      Hola, pues depende mucho de las variables. Si tienes múltiples variables yo no trabajaría con múltiples puntos de corte, sino con algo más integrado. Regresiones, Redes neuronales, bosques de decisión... Sería el camino que yo, personalmente elegiría.

  • @diegofernandoramosnaupari8582
    @diegofernandoramosnaupari8582 2 роки тому

    si quisiera escoger el punto de corte en el que la sensiilidad y especificidad son iguales que podría hacer ?

    • @PabloVallejoMedina
      @PabloVallejoMedina  2 роки тому

      Ese punto no tiene porqué existir. Si aparece bien, pero no siempre va a existir. En ese caso lo seleccionas del listado que te sale,.

  • @augustopenafuentes2752
    @augustopenafuentes2752 3 місяці тому

    Te agradezco un montón, pero encuentro un problema y es que al plotear se grafica el eje x desde 150 a 0, este eje que corresponde a la especificidad usualmente se grafica como 1-especificidad desde 0 a 1. Me pueden ayudar con esto?

    • @PabloVallejoMedina
      @PabloVallejoMedina  3 місяці тому

      Nunca pude corregir ese problema. Yo lo maquetaba por fuera de r a posteriori.

  • @johaoramos2457
    @johaoramos2457 4 роки тому

    Hola, estoy haciendo un trabajo para mi Universidad y quiero hacer la gráfica Roc. Pero es un modelo logit con varias variables independientes. ¿Como sería?

    • @PabloVallejoMedina
      @PabloVallejoMedina  4 роки тому +1

      Hasta donde yo sé es imposible con ROC. Tocaría una técnica más avanzada. Redes neuronales o por ahí.

  • @nadiajulianaproanosjurado7485
    @nadiajulianaproanosjurado7485 3 роки тому

    Hola Pablo gracias, puedo usar una variable continua discreta que tiene de 0-8 puntos?, cuando uso el código me rebota un error

    • @PabloVallejoMedina
      @PabloVallejoMedina  3 роки тому

      Hola. Sí, si se puede siempre y cuando no la utilices como variable de dicotómica de diagnóstico. Qué error te da exactamente?

    • @nadiajulianaproanosjurado7485
      @nadiajulianaproanosjurado7485 3 роки тому

      @@PabloVallejoMedina Hola Pablo Gracias, ya lo solucioné gracias. Ahora tengo una pregunta, tengo mi variable desenlace y el test, pero quiero estratificarlo por edad en menores de 50 y mayores. He leído que se puede incluir una covariable para estratificarlo. Tienes alguna info sobre eso Gracias

    • @PabloVallejoMedina
      @PabloVallejoMedina  3 роки тому

      @@nadiajulianaproanosjurado7485 Sí, se puede hacer una covariable dentro de unas curvas cor, pero no sé como se haría. Tocaría leer el pdf del paquete a ver si lo hace.

  • @diegocaicedovaldes4859
    @diegocaicedovaldes4859 2 роки тому

    Hola Pablo! Muchas gracias por tu vídeo explicativo. Es genial poder hacer estas curvas relativamente fácil con tus consejos. Nunca pensé que las podría hacer así de fácil. Tengo un problema y me gustaría que me ayudaras. Me sale todo bien hasta que llego a la órden rocobj >- plot.roc(Dataset..... a partir de la cual no me deja avanzar porque me da error con el mensaje:"el paquete "Rcpp_precious_remove" no ofrece la función "Rcpp". Sabes como puedo arreglar esto? porque asi no puedo dibujar los intervalos ni determinar el punto de corte en la gráfica de forma exacta. Muchas gracias

    • @PabloVallejoMedina
      @PabloVallejoMedina  2 роки тому

      Hola, es más fácil si te pones el r en inglés y buscas el error. Pero me suena extraño, porque Rcpp_precious_remove no es ningun paquete. El objeto crear objeto

    • @diegocaicedovaldes4859
      @diegocaicedovaldes4859 2 роки тому

      @@PabloVallejoMedina Gracias Pablo. No, la orden está bien, aunuqe esté mal expresada a rriba. No es problea de la orden. Busqué por internet y hay más gente que ha tenido elmismo problema y les decían que tenían que esactivar el Rcpp, pero no sé cómo se hace esto. Entiendo que me recomiendas descargar la versión en inglés como me dices para probar. Te cuento. Un saludo

    • @diegocaicedovaldes4859
      @diegocaicedovaldes4859 2 роки тому

      @@PabloVallejoMedina Pablo, acabo de ver que Rcpp sí que es un paquete de R. Esto es lo que pone en google: "The 'Rcpp' package provides R functions as well as C++ classes which offer a seamless integration of R and C++. Many R data types and objects can be mapped back and forth to C++ equivalents which facilitates both writing of new code as well as easier integration of third-party libraries"... Sí que parece que puede descargarse. Lo probaré también. Gracias

    • @PabloVallejoMedina
      @PabloVallejoMedina  2 роки тому

      @@diegocaicedovaldes4859 A ver. voy a investigar también.

  • @alondra6905
    @alondra6905 Рік тому

    HOLA PABLO disculpa yo intenté comparar 4 curvas ROC pero no me deja, únicamente 2 porque me aparece error, ¿Cómo podría resolver ese problema?

  • @jhonfanderhigidiocastro3634

    Como puedo hacer curvas ROC para varias clases en un mismo gráfico con un modelo de predicción de Machine Learning ? La mayoría hacen una sola curva binaria.

    • @PabloVallejoMedina
      @PabloVallejoMedina  Рік тому

      Hola, no entiendo muy bien tu pregunta. Un gráfico es una cosa, si luego tú quieres entrenar con el algoritmo para tener ML, ok. Tampoco sé a qué te refieres exactamente con clases.

  • @lizbethmendez5004
    @lizbethmendez5004 3 роки тому

    HOLA ESTOY HACIENDO UN TRABAJO PARA LA UNIVERSIDAD Y ME AYUDO MUCHO SU VIDEO. PERO ME GUSTARIA SABER DE DONDE FUERON EXTRAIDOS LOS DATOS Y EL CONTEXTO PARA SACAR UNA MEJOR INTERPRETACION DE LOS DATOS
    POR FIII

    • @PabloVallejoMedina
      @PabloVallejoMedina  3 роки тому +1

      Hola el articulo fue publicado aqui esta: www.google.com/url?sa=t&source=web&rct=j&url=blogs.konradlorenz.edu.co/files/10.108003630242.2020.18199401-2.pdf&ved=2ahUKEwjwuNGBocLtAhU0FlkFHfhoBwYQFjACegQIBBAJ&usg=AOvVaw0Fz0cUp8iJBS0yJT7-8E1u

    • @lizbethmendez5004
      @lizbethmendez5004 3 роки тому

      @@PabloVallejoMedina muchísimas gracias y éxito!! Muy buenos sus videos, le entendí mas que a mi maestra jaja

    • @PabloVallejoMedina
      @PabloVallejoMedina  3 роки тому +1

      @@lizbethmendez5004 Bueno, yo también soy profe así que competimos limpiamente ;)

    • @PabloVallejoMedina
      @PabloVallejoMedina  3 роки тому +1

      @@lizbethmendez5004 en este otro link? www.researchgate.net/publication/344213263_Temporal_stability_and_clinical_validation_of_the_Spanish_version_of_the_female_sexual_function_inventory_FSFI?enrichId=rgreq-bd929bf2e00bdb23d43aa3719586fa7e-XXX&enrichSource=Y292ZXJQYWdlOzM0NDIxMzI2MztBUzo5MzU2OTM1MDk0NjQwNjRAMTYwMDA5ODEyNTA2OQ==&el=1_x_3&_esc=publicationCoverPdf

    • @lizbethmendez5004
      @lizbethmendez5004 3 роки тому

      Siii, ya muchísimas gracias!!! se descargo el pdf en mi teléfono 😂😁

  • @rociogarciajimenez2078
    @rociogarciajimenez2078 3 роки тому

    necesito tu ayuda, no soy capaz de sacar la curva ROC a partir de la matriz de confusión..
    Me podrías ayudar?
    Parte del código
    xtab

    • @PabloVallejoMedina
      @PabloVallejoMedina  3 роки тому

      Que error te da?

    • @rociogarciajimenez2078
      @rociogarciajimenez2078 3 роки тому

      @@PabloVallejoMedina Gracias por responder tan pronto, no se como tengo q construir la tabla para que me muestre la curva ROC, tengo la matriz de confusión
      Te lo pego aqui , si necesitas más codigo me dices
      # ##############################
      # modeling: rf
      # ##############################
      # rpart
      mod_rf

    • @PabloVallejoMedina
      @PabloVallejoMedina  3 роки тому

      @@rociogarciajimenez2078 Mírate como tengo yo esttructyurado el data frame y trata de acercarte a algo así. En teoría deberías tener una matriz de confusión para cada punto de corte... pero yo parto de los datos raw.