|
Vocero
|
Transcripción
|
| Joshua W. Lambert |
Hola. |
| ROBYN GODFREY |
Hola, soy Robin y Josh. |
| |
Sí. |
| ROBYN GODFREY |
El neo. |
| Joshua W. Lambert |
Sí, un placer conocerte también, lo siento, recién estoy abriendo el PowerPoint aquí. |
| ROBYN GODFREY |
Bueno. |
| |
¿Tiene algún co-presentador? |
| Joshua W. Lambert |
No. |
| ROBYN GODFREY |
Muy bien, simplemente vamos a repasar la lista aquí, así que estamos grabando esto, así que solo para que me des una afirmación verbal de que sabes que estás siendo grabado. |
| |
Sí. |
| ROBYN GODFREY |
Las notificaciones de Internet de los teléfonos móviles están silenciadas. |
| Joshua W. Lambert |
Sí. |
| ROBYN GODFREY |
Sí, creo que soy como la barra de tareas de Windows y todo eso y claro, es como si tu correo electrónico se apagara en el medio. |
| Joshua W. Lambert |
Y no creo que lo tengo todo apagado, nunca habían tenido que hacer eso antes. |
| ROBYN GODFREY |
Creo que está en la barra de tareas. |
| |
Veamos aquí. |
| |
Simplemente cierra tu correo electrónico y todo estará bien. |
| |
Bueno. |
| Joshua W. Lambert |
Conseguí los tacos. |
| ROBYN GODFREY |
Está bien, genial. Me esconderé aquí. |
| |
Para hacer esto, cada vez que hago esto, tengo que, tengo que decir Bueno, ¿qué hice? |
| Joshua W. Lambert |
Conque. |
| |
En cuanto a la presentación, supongo que la cortarán desde el momento en que comience. |
| |
Sí, ¿y qué tienes alguna pregunta que quieras hacer? |
| ROBYN GODFREY |
No, no, entonces harás tu presentación como lo harías normalmente. |
| |
Correcto y justo, ya sabes, traes tus diapositivas y todo. |
| |
Si quieres hablar primero y luego mostrar tus diapositivas, está bien, si necesitas comenzar de nuevo o algo así, házmelo saber y podemos hacerlo, no es gran problema. |
| |
Está bien, eres un pequeño clip, como si fueras la cámara, ¿hay alguna manera de retroceder un poco porque estás muy cerca? |
| |
Ni siquiera puedo ver tu cara completa, puedo verla. |
| Joshua W. Lambert |
Para saber lo olvidé. |
| ROBYN GODFREY |
Sí, sólo un poquito. |
| |
O quizás bájale un poquito la cámara. |
| |
eso es bueno. |
| |
Eso es bueno, sí, podemos ver más de tus hombros y esas cosas, ¿de acuerdo? |
| |
Entonces voy a ponerme en silencio, así que dame un par de segundos y luego podrás. |
| |
empieza cuando estés listo, ¿de acuerdo? |
| |
Excelente. |
| Joshua W. Lambert |
Hola a todos. Me llamo Josh Lambert. Soy profesor adjunto en la Universidad de Cincinnati y he sido usuario de JMP durante aproximadamente 10 años. |
| |
Y estoy emocionado de compartir con ustedes parte del trabajo que he estado haciendo sobre la exploración de interacciones en modelos de regresión usando un complemento que construí y que utiliza un algoritmo que desarrollé llamado algoritmo de solución factible. |
| |
Entonces |
| |
Algunos contenidos de los que vamos a hablar hoy. Voy a empezar con un pequeño ejemplo que motivará nuestra discusión, así como con lo que he estado trabajando, una visión general del problema. |
| |
Una posible solución. |
| |
Luego, hablaré sobre cómo implementé la solución en un paquete R y luego lo trasladé a un complemento JMP y el proceso que seguí para lograrlo. Luego, hablaré sobre algunos proyectos futuros y algunas cosas que aprendí en el camino. |
| |
Motivemos nuestro debate de hoy con un pequeño ejemplo. Voy a llamar a este científico de datos Tom. Conozcan a Tom. Es un científico de datos y realiza muchas actividades típicas de la ciencia de datos, en concreto, crea modelos de regresión multivariable en JMP. |
| |
Tom trabaja principalmente con datos tabulares que tienen muchas variables y se da cuenta de que estos modelos de regresión multivariable carecen de complejidad, específicamente carecen de términos de interacción y términos cuadráticos. |
| |
Y Tom...eso frustra a Tom, y Tom no quiere entrar directamente en el aprendizaje automático. |
| |
Por lo tanto, desearía tener una forma de explorar los efectos de interacción en sus modelos de regresión. |
| |
Tiene interacciones que le gustaría probar, pero tendría que confeccionarlas manualmente en la plataforma del modelo de ajuste en JMP. |
| |
Y, como sabéis, ejecutar todo esto va a llevar mucho tiempo. Por ejemplo, si Tom tiene 200 variables en su conjunto de datos y necesita buscar todas las interacciones bidireccionales, eso supone comprobar 19.900 interacciones bidireccionales. Son demasiadas. |
| |
Tom se pregunta entonces: ¿existe una forma algorítmica y basada en datos de explorar los efectos de interacción en los modelos de regresión sin necesidad de hacerlos todos a mano y de verificar todas estas combinaciones posibles? |
| |
Analicemos este problema de una forma un poco más rigurosa desde el punto de vista matemático y estadístico. Lo que tenemos en el problema es un problema de volumen y complejidad. |
| |
Así que volumen y complejidad |
| |
va a seguir creciendo a un ritmo muy rápido. Tenemos cada vez más datos disponibles todo el tiempo, y la complejidad de estos datos también está creciendo. |
| |
El problema con las interacciones es que hay demasiadas para verificarlas. |
| |
Por lo general, un científico de datos, un estadístico o un científico tendrá que ingresar al análisis con un conjunto conocido de interacciones para verificar. |
| |
y luego proceda a verificarlos. Esto es un problema por varias razones, |
| |
que es posible que no tenga una buena idea de qué interacciones pueden o no existir, y le gustaría poder explorarlas en sus datos |
| |
Sin tener que recurrir a modelos como el bosque aleatorio o incluso el análisis de componentes principales para realizar algún tipo de reducción de datos, lo que implicaría un poco más de complejidad. Realmente nos gustaría poder hacer cosas a medida que construimos un modelo de regresión. |
| |
Entonces, el otro problema con el bosque aleatorio y los componentes principales, así como otros tipos de tareas de aprendizaje automático, es que estas cosas a menudo son difíciles de interpretar y nos gustaría agregar... mantener la interpretabilidad de los modelos de regresión mientras exploramos las interacciones. |
| |
Por lo general, nuestro flujo de trabajo en regresión |
| |
Así que el estadístico pasa mucho tiempo construyendo un modelo base parsimonioso, lo que llamaré, con las variables necesarias y sin efectos de interacción añadidos. |
| |
En este modelo base, el estadístico dedicará mucho tiempo, muchos recursos, atención, tiempo a pensar si son interpretables o no y si tendrán un buen sentido contextual. |
| |
El problema con estos modelos base que no incluyen complejidad es que suponen que los efectos... que los efectos que están estimando son consistentes en todos los subgrupos posibles, como sexo, raza, edad, y eso normalmente no es cierto. |
| |
Esta falta de complejidad |
| |
Realmente impide que las personas puedan usarlo, en comparación con, por ejemplo, un modelo de aprendizaje automático, que hace un muy buen trabajo al modelar esta complejidad. Por lo tanto, el problema realmente se puede resumir de la siguiente manera. |
| |
¿Hay alguna manera de que no podamos llegar hasta los modelos de regresión multivariable tradicionales y tampoco hasta los modelos de aprendizaje automático? |
| |
Pero encontramos un buen punto intermedio, donde podemos aprovechar la buena interpretabilidad de nuestros modelos de regresión que agregan una interacción o dos. |
| |
que encontramos en estos grandes datos, de modo que podemos agregar matices interesantes a nuestros modelos y complejidad, que, nuevamente, agregan desempeño predictivo así como un buen sentido contextual. |
| |
Entonces, si hay una manera de hacerlo, lo que realmente nos gustaría hacer es desarrollar una herramienta para que los estadísticos, científicos de datos e investigadores puedan explorar las interacciones después de construir un modelo base. |
| |
El modelo base ocurre primero y luego, normalmente, ocurre la exploración de la complejidad. |
| |
Por lo tanto, tenemos algunas limitaciones y preferencias si tuviéramos que desarrollar una herramienta como esta. Nos gustaría que hubiera, basándonos en modelos estadísticos tradicionales, una regresión logística lineal, |
| |
Nos gustaría que siguieran siendo interpretables. Queremos comprobar menos modelos, si es posible, y preferimos los factibles a los óptimos. Más adelante explicaré un poco más lo que eso significa, pero, en esencia, lo que realmente significa es que |
| |
Nos gustaría que hubiera una gran cantidad de soluciones, en lugar de una sola, que sea buena y que podamos llamar factible. |
| |
Y también nos gustaría que fuera flexible. Podría adaptarse para poder trabajar con regresión lineal, regresión logística, regresión proporcional de Cox. Podríamos usarlo para regresión de Poisson, cualquier tipo de regresión para la que se pueda usar este marco o herramienta. |
| |
Y, una vez más, será una combinación entre los métodos estadísticos tradicionales y el aprendizaje automático. Los resultados que se obtendrán no serán necesariamente inferenciales, sino exploratorios y motivarán e influirán en lo que hagamos en el futuro. |
| |
Ahora hablemos de esta solución potencial, el algoritmo de solución factible. |
| |
El algoritmo... el algoritmo de solución factible a veces llamado FSA, o así es como me gusta llamarlo, |
| |
se discutió por primera vez en este artículo... realmente se discutió por primera vez en detalle en este artículo que escribí en 2018. |
| |
Y |
| |
Voy a resumir lo que hace el algoritmo aquí. |
| |
Por lo tanto, el objetivo del algoritmo es identificar interacciones de orden m (es decir, si m fuera 2, sería una interacción bidireccional; si m fuera 3, sería una interacción tridireccional). |
| |
con un criterio factible, por lo que es un criterio que no es necesariamente el mejor criterio, pero es un |
| |
criterio que es |
| |
Quizás se considere semi-óptimo de alguna manera. |
| |
Para ello, seguiremos los siguientes pasos. Lo primero que haremos será empezar con una interacción aleatoria de orden m. En nuestro caso, supongamos que se trata de una interacción bidireccional, es decir, m es 2. |
| |
Vamos a considerar todos los intercambios de una de las variables y la interacción de todas las demás variables. Por ejemplo, supongamos que lo iniciamos aleatoriamente. |
| |
Tenemos cinco variables, así que este es solo un pequeño ejemplo, solo para motivar los pasos aquí, pero digamos que tenemos cinco variables y comenzamos aleatoriamente en X3, X5 y nuestro criterio, que es R al cuadrado para ese lugar de inicio aleatorio, es 0,5. |
| |
Y digamos que la forma en que funciona el algoritmo es que consideraría intercambiar una de las variables, X3 o X5, por cualquiera de las otras. Entonces, nuestras opciones son: |
| |
X3 X1, X3 X2, X3 X4, X5 X1, X5 X2 y X5 X4. Observe que, de todos los posibles, lo que llamaré, intercambios, tienen al menos una de las variables del lugar de partida, ¿de acuerdo? |
| |
Y luego, lo que vamos a hacer es ajustar todos estos modelos y determinar cuáles son los criterios para esos modelos. Entonces, lo que podemos ver aquí es que |
| |
para el modelo X3 X5, tenemos .5; X3 X1, el criterio es .4. |
| |
Y con R al cuadrado, obviamente no queremos ir a un lugar peor, queremos ir a un lugar mejor, un R al cuadrado más alto, así que descubriríamos de todas las opciones posibles, cuál es el mejor lugar al que ir. |
| |
En este ejemplo, el mejor lugar al que ir es el intercambio número tres, que es X3 X4. Entonces, lo que haríamos sería pasar al paso tres y realizar el mejor intercambio del paso número dos. |
| |
En ese caso nos moveríamos al lugar X3, X4 y luego volveríamos al número dos y repetiríamos hasta que no se puedan hacer mejoras. |
| |
Entonces repetiríamos este proceso, moviéndonos de lugar, empezando por ahí, considerando todos los cambios, hasta que finalmente no podamos hacer ninguna mejora. |
| |
Y vamos a llamar a eso... ese lugar donde terminemos siendo una solución factible. |
| |
Y vamos a repetir los pasos uno a cuatro para encontrar otras soluciones factibles. Podemos hacer esto una y otra vez, y este proceso, este algoritmo de solución factible, no garantiza que le proporcione la solución óptima, aunque puede dársela algunas veces. |
| |
Hablemos de algunos de los subproductos del uso de este algoritmo, el algoritmo de solución factible. Estos se describen en un artículo que |
| |
Elliott, una colega mía, escribió en 2021, donde describe que no se garantiza, como acabo de decir antes, que las soluciones factibles sean óptimas para un criterio elegido. |
| |
Y eso quiere decir que todas las soluciones óptimas son factibles, pero no todas las soluciones factibles son óptimas. Por lo tanto, las soluciones factibles son un tipo de solución semióptima, te dan un buen criterio, criterios factibles, pero no necesariamente óptimos. |
| |
Estos criterios de solución factible suelen ser muy cercanos a los óptimos, por lo que tienden a ser bastante buenos, aunque tal vez no tanto como el mejor. |
| |
Muchas... si repites el proceso, este... estos cuatro pasos, obtendrás potencialmente muchas soluciones factibles, así que si haces este algoritmo 10 veces, podrías obtener cuatro soluciones factibles. |
| |
Puede obtener 10 soluciones factibles. Depende de los datos que esté utilizando, así como de la varianza en la covarianza de ese conjunto de datos, por lo que es un poco |
| |
sin saber cuántas soluciones vas a obtener. |
| |
Y es por eso que generalmente alentamos a los usuarios a repetir el algoritmo de solución factible muchas veces, porque eso aumentará sus posibilidades de obtener las óptimas, así como las factibles, y garantizará que |
| |
He buscado adecuadamente en el espacio. Y tenemos otro artículo que describe eso (si alguien está interesado, puede comunicarse conmigo) en cuanto a cuántas clasificaciones aleatorias debo hacer para asegurarme de tener una probabilidad razonable de obtener la óptima. Tenemos un |
| |
También se ha publicado un artículo teórico sobre este tema. |
| |
Pero, en esencia, la forma en que esto funciona es que algunas de estas interacciones son más atractivas. El espacio beta las atrae más que a otras, y lo que terminas obteniendo algunas veces es que, aunque |
| |
Una interacción no es la óptima, a veces puede llevar... los datos a menudo pueden llevarla. |
| |
A través del algoritmo de solución factible...factible muchas veces se puede llegar a ese lugar con más frecuencia que el óptimo, y eso solo tiene que ver con cómo se correlacionan los datos y demás. |
| |
Ahora hablemos del paquete R y luego de cómo lo moví al complemento JMP. |
| |
Entonces |
| |
El paquete R se llama rFSA y sé que es posible que tengamos algunas personas que hayan usado R bastante y otras que no. |
| |
Entonces, R es un lenguaje de programación realmente bueno y a menudo se enseña en programas de estadística, por lo que fue el primer lugar al que recurrí inmediatamente cuando estaba trabajando en mi tesis. |
| |
para, ya sabes, escribir este algoritmo y realmente proporcionar una herramienta a la comunidad para que pueda identificar y explorar interacciones en sus propios conjuntos de datos. |
| |
Y entonces el paquete rFSA implementa este algoritmo de solución factible del que acabo de hablar. |
| |
para interacciones en grandes conjuntos de datos, y este paquete admite la optimización de muchos criterios diferentes como R cuadrado, R cuadrado ajustado, AIC |
| |
interacción, valor P, etcétera. Además, admite diferentes estrategias de modelado, como modelos lineales y modelos lineales generalizados, y se puede adaptar fácilmente para que funcione con otros tipos de modelos, como los modelos de riesgos proporcionales de Cox. |
| |
Y también da múltiples soluciones ya que repite el algoritmo tantas veces como usted especifique. |
| |
Entonces, ¿por qué...? Quiero hablar un poco sobre mi motivación para trasladar este paquete a JMP, y voy a hablar sobre el por qué, el cuándo y el cómo iba a hacerlo. |
| |
Entonces, la primera pregunta es, ¿por qué hacer esto? Lo primero es que es divertido hacerlo. Me gusta escribir en diferentes lenguajes de programación. No tenía mucha experiencia escribiendo en el lenguaje de programación JMP, que es la versión de JMP de |
| |
lenguaje de programación estadística, y por eso quise aprenderlo y pensé que sería divertido trasladar este paquete R en el que pasé la mayor parte de cuatro años e intentar trasladarlo a JMP, porque |
| |
Me gusta mucho JMP. Creo que JMP es genial. Es una herramienta realmente excelente para mí y mis datos. |
| |
Análisis de flujo de trabajo. Normalmente empiezo todos mis proyectos en JMP y exploro los datos, los grafico, miro cosas y eso me da una buena intuición sobre esos datos. Y descubrí que muchos de mis |
| |
colegas, específicamente uno de mis asesores, él trabaja principalmente en JMP y siempre me estaba pidiendo el paquete FSA en JMP. |
| |
Entonces pensé, ¿sabes por qué no dárselo? Seguramente se lo merece, así que decidí que sería una buena herramienta y que, con suerte, otras personas lo harían. |
| |
Sacarle algún provecho. Y eso me lleva al otro punto sobre por qué hacer esto, y he recibido muchos comentarios excelentes sobre rFSA. |
| |
En concreto, he estado haciendo un seguimiento de cuántas personas han descargado mi paquete R y hay más de 16.000 personas que lo han descargado desde que lo publicamos en 2019. |
| |
He recibido innumerables correos electrónicos de personas de todo el mundo y quiero que lo mismo sea accesible para las personas en JMP, y espero que a través de este complemento, las personas puedan encontrar interacciones realmente interesantes que cambien la forma en que interpretan los datos y cómo los entienden. |
| |
Y entonces te preguntarás, bueno, ¿cuándo iba a hacer esto? Esto no es exactamente algo por lo que alguien me esté pagando. Ya sabes, JMP no me está pagando por hacerlo. |
| |
Mi puesto actual, si bien creo que les parecería interesante, probablemente no estén muy entusiasmados con que yo dedique mucho tiempo extra a esto. |
| |
Pero, por suerte, una cosa que sí tengo incorporada en mi puesto es algo de tiempo libre los viernes. Intento dejar las tardes o las mañanas de los viernes libres para divertirme. |
| |
Cosas divertidas que tienen que ver con mi trabajo. Y lo llamo Viernes de diversión y tiempo libre, y eso es lo que decidí hacer durante los últimos meses: aprovechar mi Viernes de diversión y tiempo libre para desarrollar un complemento de JMP. |
| |
Quizás te preguntes, bueno, ¿cómo iba a hacer esto? Ya sabes, no conocía el lenguaje de programación JMP. ¿Cómo iba a hacer esto? |
| |
Lo primero que quiero decir es que quería aprenderlo. Hay muchos recursos muy buenos sobre cómo aprender JSL. |
| |
Entonces, existe compatibilidad con código JSL de JMP que se encuentra dentro del software JMP en sí. Solo tienes que ir a Ayuda y podrás ir directamente a... |
| |
El índice de scripts que hay allí. Hay innumerables cosas que están en línea. |
| |
sobre cómo entender el lenguaje de programación JMP y por dónde empezar. Y luego está community.jmp.com, |
| |
Lo cual es realmente genial para empezar, ya que puedes hacer preguntas o ver otras preguntas que han hecho otras personas y tomar prestado el código que han publicado allí para que la gente pueda disfrutarlo. Lo hice varias veces aquí y fue realmente genial. |
| |
Entonces, voy a repasar cada uno de estos con un poco más de profundidad, por lo que si estás interesado en trasladar un paquete R o escribir tu propio algoritmo o tu propio código JSL, |
| |
Tendrás una idea de por dónde empezar. Y luego, cuando termine con esto, voy a hablar sobre mi complemento y, específicamente, sobre qué hace y cómo usarlo. |
| |
Entonces, ¿cómo se aprende JSL? Bueno, puedes hacerlo de nuevo... |
| |
Puedes aprenderlo a través de varios recursos JSL de JMP que tienen. Tienen una guía de programación de 864 páginas, cuyo enlace está aquí. |
| |
que puedes buscar en Google, o quizás puedas conseguir estas diapositivas después de que esto termine, y podrás conseguir estos enlaces. Hay un índice de secuencias de comandos dentro de JMP, al que puedes ir a Ayuda y luego a Índices de secuencias de comandos. Lo puse aquí para ustedes, es muy fácil de usar y comenzar. |
| |
Puedes ponerte en contacto con JMP. Lo primero que hice fue buscar un contacto en JMP. Su nombre es Ruth Hummel y le dije: "Oye, quiero hacer esto, ¿por dónde empiezo?". |
| |
Ella me dio su apoyo y aliento con la idea. Le pareció genial y luego me conectó con un experto en código JSL. |
| |
cuyo nombre es Mark Bailey. Y Mark fue fantástico durante todo este proceso. Mark me ayudó con el soporte general sobre el lenguaje de programación, revisando mi código, ayudándome a escribir partes de él, |
| |
Comenzamos con parte de ello. Y nos enviamos... intercambiamos correos electrónicos unas 22 veces diferentes durante los últimos meses. |
| |
Los recursos que me brindó JMP, en cuanto a empleados directos que estuvieron dispuestos a ayudarme con mi proyecto. |
| |
Fueron tremendos. Quiero decir, no podría haber pedido nada mejor. Quiero decir, nunca antes había recibido este tipo de apoyo cuando intentaba crear algo para otra plataforma. Así que felicitaciones a JMP por |
| |
Proporcionando esto, y son la razón principal por la que esto existe; es porque proporcionaron recursos fantásticos. |
| |
En community.jmp.com, puedes hacer preguntas allí, obtener respuestas, tomar prestado código y obtener la certificación allí. |
| |
Lenguaje de programación JMP. Puedes buscar en la Comunidad lo que quieras, es como Google, pero solo para JMP. |
| |
Puedes buscar lo que quieras, escribir JSL y hacer lo que quieras. Probablemente ya haya alguien que haya publicado algo al respecto. Si no lo hay, puedes agregarlo al foro de discusión. |
| |
Y luego está el préstamo de código, y una de las cosas que Mark me transmitió fue: "Oye, pide prestado código". Hay mucho código disponible en el sitio web de la Comunidad. |
| |
Y la gente lo ha compartido por una razón. Entonces, a la derecha, hay algo que tomé prestado para el complemento que desarrollé. Quería que los usuarios supieran dónde estaban. |
| |
en términos de ejecutar el algoritmo y cuánto tiempo más tomaría o cuánto progreso ya se había producido. |
| |
Y entonces no quería escribir mi propia barra de progreso en JMP, así que tomé prestada una que estaba en el tablero de la Comunidad y la agregué directamente a mi complemento, así que sí. |
| |
Esta persona, Craige Hales, que es miembro jubilado del personal de JMP, escribió este código y yo lo tomé prestado. Así que gracias, Craige. Gracias, Mark, por recomendarme que tomara prestado el código. Me ahorró mucho tiempo, así que lo agradezco mucho y mejoró mucho el complemento. |
| |
Ahora hablemos finalmente del complemento. Ya les he contado por qué es necesario este complemento. Otros han aprovechado el paquete R y por qué creo que los usuarios de JMP se beneficiarán de él, y les he contado cómo lo hice. |
| |
Y ahora quiero mostrarles cómo funciona, que espero que sea la parte más divertida de todo esto. Así que moví todo este paquete, el paquete R, a JMP en unos meses durante mi tiempo libre de viernes divertido que tengo, así que son solo unas pocas horas el viernes. Y el complemento JMP |
| |
Actualmente, solo funciona para modelos de regresión lineal y logística. Espero poder ampliarlo a otros modelos más adelante, pero por ahora, funciona para modelos de regresión lineal y logística. La otra cosa es que el complemento, |
| |
No tiene muchas de las funciones sofisticadas que tienen todos los demás módulos JMP integrados. Por ejemplo, cuando se coloca una variable categórica en la variable de respuesta, el tipo de personalidad no cambia automáticamente a regresión logística. |
| |
No he podido hacer eso. Hay muchas otras cosas que no he podido hacer y que espero mejorar con este paquete a medida que la gente lo use y les guste y me den su opinión al respecto. |
| |
Por lo tanto, le faltan algunas funciones. Y lo bueno del administrador de complementos es que puedes tomar tu código JSL y hay un complemento... un administrador de complementos, un complemento JMP, |
| |
que le permite crear su propio complemento a partir de su código JSL, por lo que realmente es solo un par de clics de botón, puede tomar su código JSL y convertirlo en un complemento que puede compartir con toda la comunidad JMP. |
| |
Y he publicado esto en el sitio web community.jmp.com para que todos puedan acceder a ese complemento que estoy a punto de mostrarles. |
| |
y acceder al conjunto de datos que voy a utilizar también. Pero esto funcionará con cualquiera de los conjuntos de datos que tengas, no solo con mi ejemplo. |
| |
Entonces, les voy a dar un tutorial en vivo muy rápido de este complemento, llamado... el complemento, lo llamé simplemente explorar interacciones y |
| |
Todo esto se hará mediante el algoritmo de solución factible del que hablé antes. El ejemplo es un modelo lineal. |
| |
donde voy a fijar dos variables, por lo que ese sería mi modelo base. Mi modelo base tendrá una variable de respuesta continua y dos covariantes que quiero poder ajustar. |
| |
Y luego, lo que me gustaría hacer es considerar interacciones de segundo orden para agregar a ese modelo entre cualquiera de las 10 variables que tengo en mi conjunto de datos. |
| |
Y me gustaría hacer cinco inicios aleatorios y quiero asegurarme de que mi criterio, y este actualmente es el único criterio que está integrado en el |
| |
El complemento JMP es que queremos minimizar el valor P de la interacción. Por lo tanto, cada una de estas interacciones que verificamos |
| |
producir un valor P y lo que quiero hacer es que mis soluciones sean las que tengan |
| |
Valores P muy pequeños. Por lo tanto, buscará en el espacio, en función de cuál sea el valor P de la interacción, y buscará los que tengan el mejor. Por lo tanto, nuestros resultados tendrán muchas interacciones que tienen valores P pequeños. |
| |
Generalmente lo que recomiendo después de realizar este tipo de procedimiento es el algoritmo de solución factible. |
| |
Lo que sigue es trazar los datos, observar esas interacciones en su modelo y pensar críticamente sobre ellas en sentido contextual, porque al final del día, estamos explorando los datos aquí. |
| |
Esto no es de ninguna manera una inferencia. Simplemente estamos usando la señal de los datos para indicar qué interacciones pueden existir en ellos. |
| |
Y nuevamente, los datos y el complemento se publican en el sitio web de la Comunidad. |
| |
Muy bien, entonces voy a parar, salir de esto muy rápido y voy a levantar el... |
| |
Conjunto de datos JMP que tengo. Espero que puedan verlo. |
| |
Como pueden ver, a modo de resumen rápido, todo esto es en realidad un conjunto de datos aleatorios que he generado. No hay ninguna estructura real en esto. No son datos reales, sino datos generados aleatoriamente en JMP. |
| |
Aquí hay 20 observaciones. Tengo 10 variables continuas, variables explicativas. |
| |
Tengo una variable de respuesta continua y también he categorizado la variable de respuesta como mayor que cero o menor que cero. |
| |
Entonces, si desea poder ver los resultados de la regresión logística, también podría hacer un ejemplo de regresión logística con los datos. |
| |
Una vez que obtengas el complemento, ve al sitio web, descárgalo, haz doble clic en él y se instalará directamente en JMP. Es muy fácil. |
| |
Y luego puedes ir aquí, ir al complemento, ir... una vez que tengas abierto tu conjunto de datos, ir al complemento para explorar las interacciones. |
| |
Aparecerá esto aquí. Tenemos un par de cosas. Veremos todas nuestras variables aquí a la izquierda, como lo harías con cualquier otro módulo en JMP. |
| |
Así que voy a elegir mi variable de respuesta, que será Y, y luego voy a fijarla, así que aquí es donde estoy construyendo mi modelo base. Así que estos son todos los efectos principales lineales que estoy agregando a mi modelo. Así que en este, tengo dos variables, |
| |
X1 y X2, que voy a agregar aquí. Ahora, una de las cosas que debes hacer es especificar el tipo de modelado, por lo que hay dos tipos en mi |
| |
Puede elegir entre varios complementos: uno es el modelo de mínimos cuadrados estándar y el otro es el de regresión logística. |
| |
Y esto no se va a elegir automáticamente, como dije antes, en función de lo que hayas puesto aquí, así que puedes poner una variable de respuesta categórica y no va a cambiar. Tienes que cambiarla tú mismo. Esa es una de esas elegantes funciones, espero poder hablar de ella más adelante. |
| |
Deshazte de eso. Vuelve a poner esto aquí. |
| |
Bien, esta es nuestra configuración y esto ajustará el modelo y es igual a beta cero más beta uno X uno más beta dos X dos. Y ahora aquí abajo es donde voy a poner las variables que estoy dispuesto a |
| |
...o bien, quiero buscar interacciones entre ellas, así que voy a seleccionar todas las X1 a X10 y las voy a agregar. |
| |
Y luego le digo, ¿cuántas veces quiero ejecutar el algoritmo? Entonces, aquí lo voy a hacer cinco veces, por una cuestión de tiempo. |
| |
y el orden de las interacciones a considerar, así que solo voy a hacer dos. |
| |
Recomiendo quedarse con tres o menos, generalmente se vuelve mucho más difícil interpretar interacciones que son interacciones de cuatro vías, de cinco vías, pero |
| |
El algoritmo... o la forma en que lo he configurado es que puedes llegar a ese nivel si quieres. En realidad, no he puesto un límite, pero debes saber que cuanto más alto llegues, más tiempo te llevará ejecutarlo. |
| |
Entonces voy a hacer clic en Aceptar. Esto llevará un segundo. |
| |
Así que podéis ver el código que tomé prestado. |
| |
Puedes ver que apareció aquí y me dice que estoy en un 20% del camino hecho, 40%. |
| |
Estas son las soluciones. Cada vez que se realiza la verificación, se encuentra una solución factible y, al final, lo que aparece es una tabla de datos. |
| |
Sabes, de nuevo, esta no es una de esas características... Me gustaría que hubiera un cuadro de selección, donde pudieras seleccionar la interacción y luego presionar |
| |
Crear un modelo y lo hará todo por ti, tal como lo hace JMP para muchas cosas diferentes, pero aún no he llegado a ese punto. Esto solo te indica cuáles fueron las soluciones. |
| |
Así que te da una especie de resumen de lo que hizo. Hizo cinco arranques aleatorios. Te dice cuál fue la variable de respuesta, las variables fijas, |
| |
Las variables de interacción que encontró, bien, y el R cuadrado, el R cuadrado ajustado para ese modelo, el error cuadrático medio y luego el valor P de interacción. Bien, entonces lo que podemos ver aquí es que |
| |
(si hago clic aquí me mostrará) solo hay dos soluciones, entonces... X2 X3 fue una interacción y X10 X7 fue otra. |
| |
Y ahora, lo que puedo hacer, no lo voy a hacer ahora, es ir y construir este modelo y reproducir estos resultados y mirar los resultados para ver, bien, ¿es este un buen dato estadístico? |
| |
Algoritmo... o una buena interacción estadística que encontré aquí. ¿Sabes cómo se ven mis gráficos de apalancamiento? ¿Cuáles son todos mis diferentes criterios? |
| |
¿Cómo se ven mis gráficos de diagnóstico? Ese tipo de cosas. Y luego puedo comenzar a hacer preguntas, como ¿tiene sentido esta interacción en términos de las estimaciones de los parámetros y demás? |
| |
Es exploratorio, por lo que le brindará soluciones potenciales, pero debe realizar un seguimiento con la debida diligencia y pensar realmente en los resultados que ha obtenido. |
| |
Y hacer preguntas a quienes son expertos contextuales en este campo. Así es como lo usamos generalmente en las ciencias de la salud. Lo usamos con datos de salud, generamos interacciones, luego vamos a los médicos y les decimos: ¿tiene sentido este efecto? |
| |
Ya sabes, no sería consistente en función de la edad o el sexo o lo que sea. Y normalmente nos hablarán de eso, ya sabes, pensemos en ello. La idea es que esto, con suerte, influya en estudios futuros, donde podamos impulsar los estudios para buscar estos efectos de interacción de una manera más |
| |
camino bien potenciado |
| |
Bien, ahora voy a volver a mi PowerPoint. Así fue este tutorial. Puedes ver que es bastante fácil de usar. Ese fue un ejemplo muy pequeño. Puedes ampliarlo, |
| |
Solo debes saber que, cuanto más grandes sean los conjuntos de datos que tengas, más tiempo llevará todo el proceso que acabo de realizar. No durará 10 segundos, sino que durará... |
| |
Ya sabes, potencialmente, ya sabes, de 5 a 10 minutos de duración, dependiendo de qué tan grande sea tu conjunto de datos. He utilizado el algoritmo, he utilizado el complemento para hacer conjuntos de datos con 100 variables, |
| |
variables explicativas, y tomó aproximadamente esa cantidad de tiempo, alrededor de siete minutos, ejecutarlo para hacer alrededor de cinco o diez inicios aleatorios. |
| |
Las cosas son más rápidas en el paquete R que en el complemento JMP, pero eso se debe a que, ya sabes, nuevamente, este es mi primer intento y, con suerte, a través de iteraciones se volverá aún más rápido y mejor. |
| |
Hablemos de mejoras futuras. Quiero permitir que los usuarios puedan optimizar o |
| |
Encontrar soluciones factibles basadas en cualquier criterio que quieran. Por lo tanto, si quieren encontrar soluciones factibles basadas en optimizar R cuadrado u optimizar AIC u optimizar la tasa de clasificación errónea, |
| |
Ya sabes, en los modelos de regresión logística, quiero permitirles que puedan hacer eso. Y realmente no es algo tan difícil de hacer, solo tengo que entrar y hacerlo. |
| |
Guarda o selecciona automáticamente personalidades de modelado en función de selecciones de variables. Es muy sencillo. Introduces una |
| |
Variable logística binaria. Ya sabes, seleccionará automáticamente la regresión logística. No creo que sea muy difícil, probablemente podría hacerlo bastante rápido. Me siento seguro de poder hacerlo después de haber pasado por este proceso de trasladar mi paquete R. |
| |
Quiero mejorar un poco la velocidad. Hay muchas cosas que podría hacer para mejorarla. |
| |
Me gustaría poder hacer eso. Sería bueno tener un botón de recuperación, pero ahora no lo tengo. Una de mis funciones favoritas de JMP es poder hacer clic en ese botón. |
| |
Y luego me gustaría poder simplificar el proceso de pasar de los resultados obtenidos con FSA a la construcción de un modelo. |
| |
ya puedes hacer eso, como cuando haces selección hacia adelante en JMP o Lasso o cualquiera de esas cosas, puedes simplemente hacer clic en crear modelo y trae todas las variables muy fácilmente. |
| |
Me gustaría poder hacer eso con este algoritmo de solución factible, simplemente obtener ese tipo de resultados y hacer clic en el modelo de creación y automáticamente hace todo por usted. |
| |
para que puedas explorarlas y, nuevamente, con suerte, puedas entender bien las interacciones que encontraste. |
| |
Entonces, me gustaría agradecerles a todos. Primero a Mark Bailey. No podría haberlo hecho sin ti. Muchas gracias por tu apoyo con el código JSL. Gracias a Ruth |
| |
por ponerme en contacto con Mark, además de ser un general, ya sabes, |
| |
persona de apoyo para este proyecto y que simplemente proporciona buenos comentarios. Anne y Larry, simplemente agradezco |
| |
Gracias por ayudarme con todo lo relacionado con JMP y con nuestras relaciones pasadas y por animarme a participar en esta Discovery Summit. Ha sido realmente genial y estoy entusiasmado por conocer a más personas en la comunidad de JMP. |
| |
Gracias por ello. Puedes ponerte en contacto conmigo de varias maneras. Puedes enviarme un correo electrónico a mi correo electrónico de la universidad o puedes contactarme por Twitter si así es como te gusta hacer las cosas. |
| |
También estoy planeando publicar este complemento JMP en Github, así como en el sitio web de la Comunidad, así que no dudes en consultar cualquiera de esos lugares para obtener futuras actualizaciones del complemento. |
| |
Así que sí, gracias por invitarme y estoy emocionado de responder sus preguntas durante nuestro tiempo asignado, gracias. |