Conférencier
|
Transcription
|
| Joshua W Lambert |
Bonjour. |
| ROBYN GODFREY |
salut, je m'appelle Robin et Josh. |
| |
Oui. |
| ROBYN GODFREY |
Le néo. |
| Joshua W Lambert |
ouais, ravi de vous rencontrer aussi désolé, je suis juste en train d'ouvrir le PowerPoint ici. |
| ROBYN GODFREY |
D'accord. |
| |
Avez-vous des co-présentateurs. |
| Joshua W Lambert |
Non. |
| ROBYN GODFREY |
Très bien, je vais juste parcourir la liste ici, donc nous enregistrons cela juste pour que vous me donniez verbalement une affirmation verbale que vous savez que vous êtes enregistré. |
| |
Oui. |
| ROBYN GODFREY |
les notifications Internet des téléphones portables sont réduites au silence. |
| Joshua W Lambert |
Oui. |
| ROBYN GODFREY |
ouais, je pense que je suis comme la barre des tâches de Windows et tout ça et bien sûr, c'est comme si votre courrier électronique sonnait au milieu. |
| Joshua W Lambert |
Et je ne pense pas que j'ai tout éteint, ils n'ont jamais eu à faire ça auparavant, alors. |
| ROBYN GODFREY |
Je pense que c'est dans la barre des tâches, euh. |
| |
voyons ici. |
| |
Fermez simplement votre e-mail et tout ira bien. |
| |
D'accord. |
| Joshua W Lambert |
J'ai eu les tacos. |
| ROBYN GODFREY |
Okay, super, je vais me cacher ici. |
| |
Pour faire ça, chaque fois que je fais ça, je dois, je dois aimer. Ok, qu'est-ce que j'ai fait. |
| Joshua W Lambert |
Donc alors. |
| |
En ce qui concerne la présentation, je suppose que vous allez couper dès que je commence. |
| |
ouais et qu'est-ce que tu as des questions que tu vas poser ou. |
| ROBYN GODFREY |
Non, non, vous allez donc simplement faire votre présentation comme vous le feriez normalement. |
| |
c'est vrai et vous savez juste que vous affichez vos diapositives et tout. |
| |
Si vous voulez parler d'abord, puis afficher vos diapositives, ce n'est pas un problème si vous devez recommencer ou quelque chose comme ça, faites-le-moi savoir et nous pourrons le faire, ce n'est pas grave. |
| |
D'accord, vous êtes un petit clip comme si vous étiez la caméra, y a-t-il un moyen de reculer un peu parce que vous êtes vraiment proche. |
| |
Je n'arrive même pas à voir tout ton visage, je peux voir. |
| Joshua W Lambert |
savoir que j'ai oublié. |
| ROBYN GODFREY |
ouais, juste un petit peu. |
| |
Ou peut-être abaissez-le un peu votre appareil photo. |
| |
c'est bien. |
| |
c'est bien ouais, on peut voir davantage tes épaules et tout ça, d'accord. |
| |
Alors je vais rester muet et donnez-moi juste quelques secondes, et ensuite vous pourrez. |
| |
commence quand tu es prêt, d'accord. |
| |
Super. |
| Joshua W Lambert |
Bonjour à tous. Je m'appelle Josh Lambert. Je suis professeur adjoint à l'Université de Cincinnati et j'utilise JMP depuis environ 10 ans maintenant. |
| |
Et je suis ravi de partager avec vous certains travaux que j'ai effectués sur l'exploration des interactions dans les modèles de régression à l'aide d'un complément que j'ai créé et qui utilise un algorithme que j'ai développé appelé algorithme de solution réalisable. |
| |
Donc |
| |
quelques contenus dont nous allons parler aujourd'hui. Je vais donc commencer par un petit exemple, qui motivera notre discussion, ainsi que par ce sur quoi j'ai travaillé, un aperçu du problème. |
| |
Une solution potentielle. |
| |
Ensuite, discutez de la façon dont j'ai implémenté la solution dans un package R, puis de la déplacer vers un complément JMP et du processus que j'ai suivi pour y parvenir. Et puis je parlerai de quelques projets futurs et de certaines choses que j'ai apprises en cours de route. |
| |
Alors motivons notre discussion d’aujourd’hui avec un petit exemple. Je vais appeler cela Tom le Data Scientist. Alors rencontrez Tom. Il est data scientist et Tom mène de nombreuses activités typiques de science des données, en particulier Tom crée des modèles de régression multivariables dans JMP. |
| |
Il traite principalement des données tabulaires comportant de nombreuses variables, et Tom se rend compte que ces modèles de régression multivariables manquent de complexité, en particulier de termes d'interaction et de termes quadratiques. |
| |
Et Tom... cela frustre Tom, et Tom ne veut pas se lancer directement dans l'apprentissage automatique. |
| |
Il souhaite donc disposer d’un moyen d’explorer les effets d’interaction dans ses modèles de régression. |
| |
il a des interactions qu'il aimerait tester, mais il devrait les intégrer à la plate-forme de modèles d'ajustement dans JMP. |
| |
Et vous savez, gérer tout cela va prendre beaucoup de temps. Ainsi, par exemple, si Tom a 200 variables dans son ensemble de données et qu'il doit rechercher toutes les interactions bidirectionnelles, cela représente 19 900 interactions bidirectionnelles à vérifier. C'est un peu trop. |
| |
Alors Tom se demande s'il existe un moyen algorithmique et basé sur les données d'explorer les effets d'interaction dans les modèles de régression sans avoir besoin de tous les fabriquer à la main et de vérifier toutes ces combinaisons possibles ? |
| |
Examinons donc ce problème d'une manière un peu plus rigoureuse mathématiquement et statistiquement. Le problème est donc un problème de volume et de complexité. |
| |
Donc volume et complexité |
| |
va continuer à croître à un rythme très rapide. Nous disposons de plus en plus de données à tout moment, et la complexité de ces données augmente également. |
| |
Le problème avec les interactions est qu’elles sont tout simplement trop nombreuses pour être vérifiées. |
| |
Habituellement, un data scientist, un statisticien ou un scientifique devra se lancer dans l'analyse avec un ensemble connu d'interactions pour vérifier |
| |
puis procédez à leur vérification. C'est un problème pour plusieurs raisons... pour plusieurs raisons, |
| |
c'est-à-dire que vous n'avez peut-être pas une bonne idée des interactions qui peuvent exister ou non, et vous aimeriez pouvoir les explorer dans vos données |
| |
sans avoir à recourir à des modèles, tels que la forêt aléatoire ou même à l'analyse en composantes principales pour effectuer une sorte de réduction des données, en y apportant un peu plus de complexité. Vous aimeriez vraiment pouvoir faire des choses tout au long du processus de construction d'un modèle de régression. |
| |
Ainsi, l'autre problème avec la forêt aléatoire et les composants principaux, ainsi que d'autres types de tâches d'apprentissage automatique, est que ces éléments sont souvent difficiles à interpréter et nous aimerions ajouter... gardez l'interprétabilité des modèles de régression pendant que nous sommes explorer les interactions. |
| |
Donc typiquement notre workflow en régression |
| |
le statisticien passe donc beaucoup de temps à construire un modèle de base parcimonieux, ce que j'appellerai, avec les variables nécessaires et aucun effet d'interaction ajouté. |
| |
Ce modèle de base, le statisticien passera beaucoup... beaucoup de temps sur ce modèle de base, beaucoup de ressources, de soins, passera du temps à réfléchir à savoir s'ils sont interprétables ou non et s'ils auront un bon sens contextuel. |
| |
Le problème avec ces modèles de base qui n'incluent pas la complexité est qu'ils supposent que les effets... que les effets qu'ils estiment sont cohérents dans tous les sous-groupes possibles comme le sexe, la race, l'âge, et ce n'est généralement pas le cas. vrai. |
| |
Ce manque de complexité |
| |
empêche vraiment les gens de pouvoir l'utiliser, par rapport, par exemple, à un modèle d'apprentissage automatique, qui fait un très bon travail de modélisation de cette complexité. Le problème peut donc vraiment être résumé de la manière suivante. |
| |
Existe-t-il un moyen pour que nous ne puissions pas aller jusqu'au bout des modèles de régression multivariables traditionnels et pas jusqu'au bout des modèles d'apprentissage automatique, |
| |
mais trouvez un bon point idéal au milieu, où nous pouvons profiter de la belle interprétabilité de nos modèles de régression qui ajoutent une interaction ou deux |
| |
que nous avons trouvé dans ce big data, afin que nous puissions ajouter des nuances intéressantes à nos modèles et à leur complexité, ce qui, encore une fois, ajoute des performances prédictives ainsi qu'un bon sens contextuel. |
| |
Donc, s'il existe un moyen d'y parvenir, ce que nous aimerions vraiment faire, c'est développer un outil permettant aux statisticiens, aux data scientists et aux enquêteurs de pouvoir explorer les interactions après avoir construit un modèle de base. |
| |
le modèle de base se produit en premier, puis l'exploration de la complexité se produit généralement en second. |
| |
Nous avons donc certaines contraintes et préférences si nous devions développer un outil comme celui-ci. Nous aimerions qu'il y ait, à partir des modèles statistiques traditionnels de régression logistique linéaire, |
| |
nous aimerions qu'ils restent interprétables. Nous voulons vérifier moins de modèles, si possible, et nous préférons le réalisable à l'optimal. J'aborderai un peu plus ce que cela signifie plus tard, mais en substance, ce que cela signifie réellement, c'est que |
| |
nous aimerions qu'il y ait une multitude de solutions plutôt qu'une seule qui soit bonne et que nous qualifierons de réalisable. |
| |
Et nous aimerions également qu'il soit flexible. Il pourrait être adapté pour pouvoir travailler avec la régression linéaire, la régression logistique, la régression proportionnelle de Cox. Nous pourrions l'utiliser pour la régression de Poisson, tout type de régression pour lequel ce cadre ou cet outil pourrait être utilisé. |
| |
Et encore une fois, ce sera un hybride entre les méthodes statistiques traditionnelles et l'apprentissage automatique. Les résultats qui vont sortir ne seront pas nécessairement inférentiels, mais ils seront exploratoires et ils motiveront et influenceront ce que nous passerons notre temps à faire à l'avenir. |
| |
Parlons maintenant de cette solution potentielle, l’algorithme de solution réalisable. |
| |
L'algorithme... l'algorithme de solution réalisable parfois appelé FSA, ou c'est comme ça que j'aime l'appeler, |
| |
a été discuté pour la première fois dans cet article... vraiment discuté pour la première fois en détail dans cet article que j'ai écrit en 2018. |
| |
Et |
| |
Je vais résumer ce que fait l'algorithme ici. |
| |
Le but de l'algorithme est donc d'identifier les interactions d'ordre m (donc si m valait 2, ce serait une interaction bidirectionnelle ; si m valait 3, ce serait une interaction à trois voies), |
| |
avec un critère réalisable, donc c'est un critère qui n'est pas nécessairement le meilleur critère, mais c'est un |
| |
critère qui est |
| |
peut-être considéré comme semi-optimal d'une manière ou d'une autre. |
| |
Donc, pour ce faire, nous suivrions les étapes suivantes. Donc la première chose que nous allons faire est de commencer par une interaction aléatoire d'ordre m, donc pour notre cas, supposons qu'il s'agisse d'une interaction bidirectionnelle, donc m vaut 2. |
| |
Nous allons considérer tous les échanges d'une des variables et l'interaction pour toutes les autres variables. Par exemple, disons que nous le démarrons au hasard. |
| |
Nous avons cinq variables, donc ce n'est qu'un petit exemple, juste pour motiver les étapes ici, mais disons que nous avons cinq variables et que nous commençons au hasard à X3, X5 et nos critères, qui sont R au carré pour ce point de départ aléatoire. , est de 0,5. |
| |
Et disons que la façon dont fonctionne l'algorithme est qu'il envisagerait d'échanger l'une des variables, X3 ou X5, contre l'une des autres. Nos choix sont donc |
| |
X3 X1, X3 X2, X3 X4, X5 X1, X5 X2 et X5 X4. Alors remarquez que parmi tous les possibles, ce que j'appellerai, les swaps contiennent au moins une des variables de point de départ, d'accord ? |
| |
Et puis, à partir de tout cela, nous adapterons ces modèles et nous déterminerons quels sont les critères de ces modèles. Donc ce que nous pouvons voir ici, c'est que |
| |
pour le modèle X3 X5, nous avons 0,5 ; X3 X1, le critère est .4. |
| |
Et avec R au carré, nous ne voulons évidemment pas aller dans un endroit pire, nous voulons aller dans un endroit meilleur, un R au carré plus élevé, afin de découvrir, parmi tous les choix possibles, quel est le meilleur endroit où aller. . |
| |
Dans cet exemple, le meilleur endroit où aller est le swap numéro trois, qui est X3 X4. Donc, ce que nous ferions, c'est passer à la troisième étape et réaliser le meilleur échange à partir de la deuxième étape. |
| |
Dans ce cas, nous passerions aux emplacements X3, X4, puis nous reviendrions au numéro deux et répéterions jusqu'à ce qu'aucune amélioration ne puisse être apportée. |
| |
Nous répéterions donc ce processus, en nous déplaçant d'un endroit à l'autre, en commençant par là, en considérant tous les échanges, jusqu'à ce que nous ne puissions finalement pas apporter d'amélioration. |
| |
Et nous allons appeler cela à... cet endroit où nous aboutirons à une solution réalisable. |
| |
Et nous allons répéter les étapes un à quatre pour trouver d’autres solutions réalisables. Nous pouvons faire cela encore et encore, et ce processus, cet algorithme de solution réalisable, n'est pas garanti de vous donner la solution optimale, bien qu'il puisse vous donner la solution optimale, de temps en temps. |
| |
Parlons donc de certains des sous-produits de l’utilisation de cet algorithme, l’algorithme de solution réalisable. Et ceux-ci sont décrits dans un article qui |
| |
Elliott, une de mes collègues a écrit en 2021, où elle décrit qu'il n'est pas garanti que les solutions réalisables, comme je viens de le dire plus tôt, soient optimales pour un critère choisi. |
| |
Autrement dit, toutes les solutions optimales sont réalisables, mais toutes les solutions réalisables ne sont pas optimales. Les solutions réalisables sont donc un type de solution semi-optimale, elles vous donnent de bons critères, des critères réalisables, mais pas nécessairement optimaux. |
| |
Ces critères de solutions réalisables sont généralement très proches des critères optimaux, ils ont donc tendance à être plutôt bons. Ils ne sont peut-être tout simplement pas aussi bons que les meilleurs. |
| |
Beaucoup... si vous répétez le processus, ceci... ces quatre étapes, vous obtiendrez potentiellement de nombreuses solutions réalisables, donc si vous faites cet algorithme 10 fois, vous pourriez obtenir quatre solutions réalisables. |
| |
Vous pourriez obtenir 10 solutions réalisables. Cela dépend des données que vous utilisez, ainsi que de la variance de covariance de cet ensemble de données, donc c'est un peu |
| |
je ne sais pas combien de solutions vous obtiendrez. |
| |
Et c'est pourquoi nous encourageons généralement les utilisateurs à répéter plusieurs fois l'algorithme de solution réalisable, car cela augmentera vos chances d'obtenir les solutions optimales, ainsi que les solutions réalisables, et vous assurerez que vous avez |
| |
correctement fouillé l'espace. Et nous avons un autre article qui décrit (si quelqu'un est intéressé, n'hésitez pas à me contacter) combien de tris aléatoires dois-je effectuer pour m'assurer d'avoir une probabilité raisonnable d'obtenir le tri optimal. Nous avons un |
| |
article théorique à ce sujet également. |
| |
Mais, essentiellement, la façon dont cela fonctionne est que certaines de ces interactions sont plus attrayantes. Ils... l'espace bêta les attire plus que les autres, et donc ce que vous finissez par obtenir de temps en temps, c'est que, même si |
| |
une interaction n'est pas optimale, elle peut parfois mener...les données peuvent souvent la conduire |
| |
grâce à l'algorithme de solution réalisable... réalisable peut souvent vous conduire à cet endroit plus souvent que celui optimal, et cela a simplement à voir avec la façon dont les données sont corrélées et ainsi de suite. |
| |
Parlons donc du package R et de la façon dont je l'ai déplacé vers le complément JMP. |
| |
Donc |
| |
le package R s'appelle rFSA, et je sais que certaines personnes peuvent avoir beaucoup utilisé R et d'autres non. Et |
| |
R est donc un très bon langage de programmation et il est souvent enseigné dans les programmes de statistiques. C'est donc le premier endroit où je me suis immédiatement rendu lorsque je travaillais sur ma thèse. |
| |
pour, vous savez, rédiger cet algorithme et vraiment fournir un outil à la communauté pour pouvoir identifier et explorer les interactions dans leurs propres ensembles de données. |
| |
Et donc le package rFSA implémente cet algorithme de solution réalisable dont je viens de parler |
| |
pour les interactions dans de grands ensembles de données, et ce package prend en charge l'optimisation de nombreux critères différents tels que R au carré, R au carré ajusté, AIC |
| |
interaction, valeur P, etc. Et il prend également en charge différentes stratégies de modélisation, telles que les modèles linéaires et les modèles linéaires généralisés, et peut être facilement adapté pour fonctionner avec d'autres types de modélisation, comme les modèles à risque proportionnel de Cox. |
| |
Et il donne également plusieurs solutions car il répète l'algorithme autant de fois que vous le spécifiez. |
| |
Alors pourquoi... Je veux parler un peu de ma motivation à migrer ce package vers JMP, et je vais parler du pourquoi, du quand et de la manière dont j'allais le faire. |
| |
La première question est donc : pourquoi faire cela ? La première chose est que c'est amusant à faire. J'aime écrire dans différents langages de programmation. Je n'avais pas beaucoup d'expérience dans l'écriture dans le langage de script JMP, qui est la version de JMP de |
| |
langage de programmation statistique, et je voulais donc l'apprendre et j'ai pensé que ce serait amusant de déplacer ce package R sur lequel j'ai passé la majeure partie de quatre ans, et d'essayer de le déplacer vers JMP, car |
| |
J'aime beaucoup JMP. Je pense que JMP est génial. C'est un outil vraiment génial pour moi et mes données |
| |
pipeline d’analyse. Je commence généralement tous mes projets dans JMP et j'explore les données, je trace les données, je regarde les choses et cela me donne ensuite beaucoup de bonnes intuitions sur ces données. Et j'ai découvert qu'une grande partie de mes |
| |
collègues, en particulier l'un de mes conseillers, il travaille principalement chez JMP et il me demandait toujours le package FSA dans JMP. |
| |
Et alors je me suis dit, tu sais, pourquoi ne pas le lui donner ? Il le mérite sûrement, alors j'ai décidé que ce serait un bon outil et que, avec un peu de chance, d'autres personnes le feraient. |
| |
en tirer une certaine utilité. Et cela m'amène à mon autre point sur les raisons de faire cela, et j'ai reçu beaucoup de bons commentaires sur la rFSA. |
| |
Plus précisément, j'ai suivi le nombre de personnes qui ont téléchargé mon package R et plus de 16 000 personnes l'ont téléchargé depuis que nous l'avons mis sur le marché en 2019. |
| |
J'ai reçu d'innombrables e-mails de personnes du monde entier et je souhaite que la même chose soit accessible aux utilisateurs de JMP. J'espère que grâce à ce complément, les utilisateurs pourront trouver des interactions vraiment intéressantes qui changeront leur façon d'interpréter. données et comment ils les comprennent. |
| |
Et puis vous pourriez vous demander : quand est-ce que j'allais faire ça ? Ce n’est pas exactement quelque chose pour lequel quelqu’un me paie. Vous savez, JMP ne me paie pas pour le faire. |
| |
Mon poste actuel, même si je pense qu'ils trouveraient cela intéressant, ils ne sont probablement pas vraiment enthousiastes à l'idée que je passe beaucoup de temps supplémentaire à faire cela. |
| |
Mais heureusement, une chose que j'ai intégrée à mon poste est du temps libre le vendredi. J'essaie de laisser les vendredis après-midi ou vendredis matins ouverts uniquement pour m'amuser, |
| |
des choses amusantes qui ont à voir avec mon travail. Et je l'appelle Fun Friday Free Time, et c'est ce que j'ai décidé de faire au cours des derniers mois, c'est de prendre mon Fun Friday Free Time et de le consacrer à la création d'un complément JMP. |
| |
Vous pourriez vous demander : comment allais-je faire ça ? Vous savez, je ne connaissais pas le langage de script JMP. Comment allais-je procéder pour faire ça ? Donc |
| |
la première chose est que, vous savez, j'allais l'apprendre. Il existe donc de nombreuses ressources vraiment intéressantes sur la façon d’apprendre le JSL. |
| |
Il existe donc une prise en charge du code JMP JSL qui se trouve dans le logiciel JMP lui-même. Allez simplement aider, vous pouvez directement... aller directement dans |
| |
l'index de script qui est là. Il y a d'innombrables choses en ligne |
| |
sur la façon de comprendre le langage de script JMP et par où commencer. Et puis il y a le community.jmp.com, |
| |
ce qui est vraiment génial pour commencer, où vous pouvez poser des questions ou voir d'autres questions que les gens ont posées et emprunter le code qu'ils ont publié publiquement pour pouvoir... pour que les gens puissent en profiter. Et je l’ai fait plusieurs fois ici, et c’était vraiment génial. |
| |
Je vais donc examiner chacun d'eux un peu plus en profondeur, juste pour que si vous souhaitez déplacer un package R ou écrire votre propre algorithme ou écrire votre propre code JSL, |
| |
vous aurez une idée de par où commencer. Et puis, quand j'en aurai terminé, je vais entrer dans mon complément et plus précisément ce qu'il fait et comment l'utiliser. |
| |
Alors, comment apprendre le JSL ? Eh bien, vous pouvez à nouveau... |
| |
vous pouvez l'apprendre grâce à un certain nombre de ressources JSL de JMP dont ils disposent. Ils ont donc un guide de script de 864 pages, dont le lien est ici, |
| |
que vous pouvez utiliser Google, ou que vous pourrez peut-être obtenir ces diapositives une fois que cela sera terminé, et pouvoir obtenir ces liens. Il existe un index de script dans JMP, auquel vous pouvez simplement accéder pour obtenir de l'aide, puis créer des index de script. J'ai mis ici pour vous les gars, vraiment facile à utiliser et à démarrer. |
| |
Vous pouvez contacter JMP. La première chose que j'ai faite a donc été d'avoir un contact chez JMP. Son nom est Ruth Hummel et j'ai dit, hé, je veux faire ça, par où dois-je commencer ? |
| |
Elle m'a apporté son soutien et ses encouragements concernant cette idée. Elle a trouvé ça génial et m'a ensuite mis en contact avec un expert en code JSL, |
| |
dont le nom est Mark Bailey. Et Mark a été formidable tout au long de ce processus. Mark m'a aidé avec un support général sur le langage de script, en révisant mon code, en m'aidant à en écrire des parties, |
| |
commencez par en partie. Et nous avons pris... nous avons fait des allers-retours environ 22 fois différentes par courrier électronique au cours des derniers mois. Et |
| |
les ressources que JMP m'a fournies, en ce qui concerne les employés directs prêts à m'aider dans mon projet |
| |
étaient formidables. Je veux dire, je n'aurais pas pu demander mieux. Je veux dire, je n'ai jamais reçu ce type de soutien lorsque j'essayais de créer quelque chose pour une autre plate-forme auparavant. Alors bravo à JMP pour |
| |
fournir cela, et c'est la principale raison pour laquelle cela existe ; c'est parce qu'ils ont fourni des ressources fantastiques. |
| |
Donc community.jmp.com, vous pouvez y poser des questions, vous pouvez obtenir des réponses, vous pouvez emprunter du code, vous pouvez y être certifié en |
| |
Langage de script JMP. Vous pouvez rechercher tout ce que vous voulez dans la communauté, vous pouvez... c'est comme Google, mais c'est uniquement pour JMP. |
| |
Et vous pouvez rechercher tout ce que vous voulez, vous pouvez donc taper JSL et JSL comme vous le souhaitez, et c'est probablement quelqu'un qui a déjà posté à ce sujet. Si ce n'est pas le cas, vous pouvez l'ajouter au forum de discussion. |
| |
Et puis il y a le code d'emprunt, et c'est l'une des choses que Mark m'a transmise était, hé, le code d'emprunt. Il y a beaucoup de code sur le site Web de la Communauté, |
| |
et les gens l'ont partagé pour une raison. Donc, sur la droite, il y a en fait quelque chose que j'ai emprunté pour mon complément que j'ai développé. Je voulais que les utilisateurs sachent où ils se trouvent |
| |
en termes d'exécution de l'algorithme et combien de temps cela allait prendre ou combien de progrès avaient déjà été réalisés. |
| |
Et donc je ne voulais pas écrire ma propre barre de progression dans JMP, alors j'en ai simplement emprunté une qui se trouvait sur le tableau communautaire et je l'ai ajoutée directement dans mon complément, alors oui. |
| |
Cette personne, Craige Hales, qui est un retraité de JMP, a écrit ce code et je l'ai emprunté. Alors merci, Craige ; Merci, Mark d'avoir recommandé d'emprunter le code. Cela m'a fait gagner beaucoup de temps, donc je l'apprécie vraiment et cela a rendu le complément bien meilleur. |
| |
Parlons maintenant enfin du complément. Je vous ai donc expliqué pourquoi ce complément est nécessaire, n'est-ce pas. D'autres ont utilisé le package R et pourquoi je pense que les utilisateurs de JMP en bénéficieront et je vous ai expliqué comment je l'ai fait. |
| |
Et maintenant, je veux vous montrer comment cela fonctionne, ce qui, je l'espère, sera la partie la plus amusante de tout cela. J'ai donc transféré l'ensemble de ce package, le package R, vers JMP en quelques mois pendant mon temps libre Fun Friday dont je dispose, ce qui ne représente donc que quelques heures vendredi. Et le complément JMP |
| |
ne fonctionne actuellement que pour les modèles de régression linéaire et logistique. J'espère pouvoir l'étendre à d'autres modèles plus tard, mais pour le moment, cela fonctionne pour les modèles de régression linéaire et logistique. L'autre chose est que le complément, |
| |
il n'a pas beaucoup de fonctionnalités sophistiquées que tous les autres modules JMP intégrés ont, vous savez. Par exemple, lorsque vous placez une variable catégorielle dans la variable de réponse, le type de personnalité ne passe pas automatiquement en régression logistique. |
| |
Je n'y suis pas parvenu. Il y a beaucoup d'autres choses que je n'ai pas encore abordées et que j'espère améliorer avec ce package au fur et à mesure que les gens l'utilisent et qu'ils l'apprécient et me donnent leur avis à ce sujet. |
| |
Il lui manque donc certaines fonctionnalités. Et ce qui est cool avec le gestionnaire de compléments, c'est que vous pouvez simplement prendre votre code JSL et il y a un complément... un gestionnaire de compléments, un complément JMP, |
| |
qui vous permet de créer votre propre complément à partir de votre code JSL, donc en quelques clics, vous pouvez prendre votre code JSL et le transformer en un complément que vous pouvez partager avec l'ensemble de la communauté JMP. |
| |
Et j'ai publié ceci sur le site community.jmp.com pour que tout le monde puisse y aller et accéder à ce complément que je suis sur le point de vous montrer. |
| |
et pour accéder à l'ensemble de données que je vais également utiliser. Mais cela fonctionnera avec n’importe lequel de vos ensembles de données dont vous disposez, pas seulement avec mon exemple. |
| |
Je vais donc vous donner un tutoriel en direct très rapide sur ce complément, appelé... le complément, je viens de l'appeler explorer les interactions, et |
| |
tout cela se fera cependant via l'algorithme de solution réalisable dont j'ai parlé plus tôt. L'exemple est un modèle linéaire |
| |
où je vais corriger deux variables, ce serait donc mon modèle de base. Mon modèle de base aura une variable de réponse continue et deux covariantes auxquelles je souhaite pouvoir m'ajuster. |
| |
Et puis, ce que j'aimerais faire, c'est envisager des interactions de second ordre à ajouter à ce modèle entre l'une des 10 variables que j'ai dans mon ensemble de données. |
| |
Et j'aimerais faire cinq démarrages aléatoires, et je veux m'assurer de mon critère, et c'est actuellement le seul critère intégré au |
| |
Le complément JMP, c'est que nous voulons minimiser la valeur P de l'interaction. Donc chacune de ces interactions que nous vérifions |
| |
produire une valeur P et ce que je veux faire, c'est que mes solutions soient celles qui ont |
| |
très petites valeurs P. Il va donc parcourir l'espace, en fonction de la valeur P de l'interaction, et aller vers ceux qui ont la meilleure. Nos résultats vont donc avoir de nombreuses interactions qui ont de petites valeurs P. Et |
| |
généralement ce que je recommanderai après avoir effectué ce type de procédure, l'algorithme de solution réalisable, |
| |
est-ce que vous continuez en traçant les données, en examinant ces interactions dans votre modèle et en y réfléchissant de manière critique dans un sens contextuel, car en fin de compte, nous explorons les données ici. |
| |
Ceci n’est en aucun cas une déduction. Nous utilisons simplement le signal des données pour déterminer quelles interactions peuvent exister dans ces données. |
| |
Et encore une fois, les données et le complément sont publiés sur le site Web de la Communauté. |
| |
Très bien, alors je vais m'arrêter, sortir de là très vite, et je vais remonter le |
| |
Ensemble de données JMP dont je dispose. J'espère que vous pourrez voir ça. |
| |
Et comme vous pouvez le voir, juste un très rapide aperçu, il s’agit en fait d’un tas de données aléatoires que j’ai générées. Il n’y a aucune véritable structure à cela. Il y a... ce ne sont pas des données réelles, juste des données générées aléatoirement dans JMP. |
| |
Il contient 20 observations ici. J'ai 10 variables continues, variables explicatives. |
| |
J'ai une variable de réponse continue et j'ai également classé la variable de réponse comme étant supérieure à zéro ou inférieure à zéro. |
| |
Donc, si vous voulez pouvoir examiner... les résultats de la régression logistique, vous pouvez également faire un exemple de régression logistique avec les données. |
| |
Ainsi, une fois que vous obtenez le complément, accédez au site Web, téléchargez le complément, double-cliquez simplement dessus et il s'installe directement sur JMP. C'est vraiment facile. |
| |
Et puis vous pouvez simplement aller ici, donc vous allez au complément, allez... une fois votre ensemble de données ouvert, vous allez au complément pour explorer les interactions. |
| |
Et cela apparaîtra ici. Nous avons donc plusieurs choses. Nous verrons donc toutes nos variables ici à gauche, comme vous le feriez avec n'importe quel autre module dans JMP. |
| |
Et donc je vais choisir ma variable de réponse, qui sera Y, puis je vais la corriger, c'est donc ici que je construis mon modèle de base. Ce sont donc tous les effets principaux linéaires que j'ajoute à mon modèle. Donc dans celui-ci, j'ai deux variables, |
| |
X1 et X2, que je vais ajouter ici. Maintenant, l'une des choses que vous devez faire est de spécifier le type de modélisation. Il y a donc deux types dans mon |
| |
complément parmi lequel vous pouvez choisir. L’un est le type de modélisation standard des moindres carrés et l’autre est celui de la régression logistique. |
| |
Et cela ne va pas choisir automatiquement, comme je l'ai dit plus tôt, en fonction de ce que vous avez mis ici, vous pouvez donc totalement insérer une variable de réponse catégorielle et elle ne changera pas. Vous devez le changer vous-même. C'est une de ces cloches et sifflets fantaisistes, j'espère que j'y reviendrai plus tard. |
| |
Débarrassez-vous de ça. Remettez ça ici. |
| |
Très bien, voici donc notre configuration, et cela conviendra donc au modèle y égal à bêta zéro plus bêta un X un plus bêta deux X deux. Et maintenant, c'est ici que je vais mettre les variables que je suis prêt à utiliser. |
| |
... ou, je veux rechercher des interactions entre, donc je vais sélectionner tous les X1 à X10. Je vais les ajouter. |
| |
Et puis je lui dis, d'accord, combien de fois je veux exécuter l'algorithme ? Alors là, je vais le faire cinq fois, pour gagner du temps, |
| |
et l'ordre des interactions à considérer, donc je ne vais en faire que deux. |
| |
Je recommande de rester trois ou moins, il devient généralement beaucoup plus difficile d'interpréter des interactions à quatre, à cinq, mais |
| |
l'algorithme... ou la façon dont j'ai configuré cela est que vous pouvez aller aussi haut si vous le souhaitez. En fait, je n'ai pas fixé de limite, mais sachez simplement que plus vous montez ici, plus il vous faudra de temps pour exécuter cela. |
| |
Je vais donc cliquer sur OK. Cela va prendre une seconde. |
| |
Vous pouvez donc voir le code que j'ai emprunté. |
| |
Vous pouvez voir que cela est apparu ici et cela me dit que j'ai fait 20 % du chemin, 40 %. |
| |
Ce sont donc des solutions. Ainsi, chaque fois que cette vérification est effectuée, une solution réalisable est trouvée, et ce qui apparaît à la fin est un tableau de données, donc |
| |
vous savez, encore une fois, ce n'est pas une de ces fonctionnalités... J'aimerais qu'il y ait une boîte de sélection, dans laquelle vous pourriez sélectionner l'interaction, puis appuyer sur |
| |
créer un modèle, et il ferait tout cela pour vous, tout comme JMP le fait déjà pour beaucoup de choses différentes, mais je n'y suis pas encore arrivé. Cela vous indique simplement quelles étaient les solutions. |
| |
Cela vous donne donc une sorte de résumé de ce qu’il a fait. Il a donc effectué cinq démarrages aléatoires. Il vous indique quelle a été la variable de réponse, les variables fixes, |
| |
les variables d'interaction qu'il a trouvées, d'accord, et le R au carré, le R au carré ajusté pour ce modèle, l'erreur quadratique moyenne, puis la valeur P d'interaction. D'accord, donc ce que nous pouvons voir ici, c'est que |
| |
(si je clique dessus, ça me montrera) il n'y a que deux solutions, donc il y a... X2 X3 était une interaction et X10 X7 en était une autre. |
| |
Et donc maintenant, ce que je peux faire, je ne vais pas le faire maintenant, c'est construire ce modèle, reproduire ces résultats et examiner les résultats pour voir, d'accord, est-ce une bonne statistique. |
| |
algorithme...ou bonne interaction statistique que j'ai trouvée ici ? Vous savez, à quoi ressemblent mes graphiques à effet de levier ? Quels sont tous mes différents critères |
| |
à quoi ressemblent les intrigues ? Et à quoi ressemblent mes tracés de diagnostic ? Ce genre de choses. Et puis je peux commencer à poser des questions, par exemple, cette interaction a-t-elle un sens en termes d'estimations de paramètres et ainsi de suite ? |
| |
C'est exploratoire, donc cela va vous donner des solutions potentielles, mais vous devez suivre cela avec la diligence raisonnable et réellement réfléchir aux résultats que vous avez obtenus. |
| |
et posez des questions à ceux qui sont des experts contextuels dans ce domaine. C'est généralement ainsi que nous utilisons cela dans les sciences de la santé. Nous utilisons cela avec des données de santé, nous produisons des interactions, nous allons ensuite voir les médecins pour leur dire si cela a du sens, cet effet, |
| |
vous savez, cela ne serait pas cohérent selon l'âge, le sexe ou autre. Et ils nous en parlent généralement, vous savez, réfléchissez-y. L’idée est que cela influencera, espérons-le, les études futures, dans lesquelles nous pourrons permettre aux études de rechercher ces effets d’interaction de manière plus approfondie. |
| |
manière bien alimentée. |
| |
Très bien, je vais donc revenir maintenant à mon PowerPoint. C'était donc ce tutoriel. Vous pouvez voir que c'est assez simple à utiliser. C'était un très petit exemple. Vous pouvez augmenter cela, |
| |
sachez simplement que plus vous disposez d'ensembles de données importants, plus tout le processus que je viens de faire prendra du temps. Cela ne durera pas 10 secondes; ça va être, |
| |
vous savez, potentiellement, vous savez, 5 à 10 minutes, selon la taille de votre ensemble de données. J'ai fait... utilisé l'algorithme, utilisé le complément pour créer des ensembles de données avec 100 variables, |
| |
variables explicatives, et il a fallu environ sept minutes pour l'exécuter et effectuer environ cinq ou dix démarrages aléatoires. |
| |
Les choses sont plus rapides dans le package R que dans le complément JMP, mais c'est parce que, vous savez, encore une fois, c'est ma première tentative dans ce domaine et, j'espère, grâce à des itérations qui deviendront encore plus rapides et meilleures. |
| |
Parlons donc des améliorations futures. Je souhaite donc permettre aux utilisateurs de pouvoir optimiser ou |
| |
trouver des solutions réalisables basées sur tous les critères qu'ils souhaitent. Donc, s'ils veulent trouver des solutions réalisables basées sur l'optimisation du R carré ou l'optimisation de l'AIC ou l'optimisation du taux d'erreurs de classification, |
| |
vous savez, dans les modèles de régression logistique, je veux leur permettre de faire cela. Et ce n’est vraiment pas si difficile à faire, j’ai juste besoin d’y aller et de le faire. |
| |
Enregistrez ou sélectionnez automatiquement des personnalités de modélisation en fonction de sélections variables. C'est tout simple. Vous mettez dans un |
| |
variable logistique binaire, vous savez, elle va sélectionner automatiquement la régression logistique pour vous. Je ne pense pas que ce soit très difficile, je pourrais probablement le faire assez rapidement. Je me sens en confiance après avoir suivi ce processus de déplacement de mon package R. |
| |
Je veux améliorer un peu la vitesse. Il y a beaucoup de choses que je pourrais faire pour améliorer la vitesse de cela. |
| |
Donc, j'aimerais pouvoir faire ça. Un bouton de rappel serait bien. Je n'ai pas ça maintenant. C'est l'une de mes fonctionnalités préférées dans JMP, c'est la possibilité de cliquer sur ce bouton de rappel. |
| |
Et puis j'aimerais pouvoir rationaliser le passage des résultats que vous avez obtenus de la FSA à la construction d'un modèle. Donc |
| |
vous pouvez déjà le faire, comme lorsque vous effectuez une sélection avancée dans JMP ou Lasso ou l'une de ces choses, vous pouvez simplement cliquer sur créer un modèle et cela amène toutes les variables très facilement. |
| |
J'aimerais pouvoir le faire avec cet algorithme de solution réalisable, obtenir simplement ce type de résultats et cliquer simplement sur le modèle de création et il fera automatiquement tout pour vous. |
| |
afin que vous puissiez les explorer et, encore une fois, j'espère que vous donnerez un sens aux interactions que vous avez trouvées. |
| |
Alors quelques remerciements que j'aimerais passer en revue. Le premier est Mark Bailey. Je n'aurais pas pu le faire sans toi. Merci beaucoup pour votre soutien avec le code JSL. Merci à Ruth |
| |
juste pour m'avoir mis en contact avec Mark, en plus d'être juste un général, vous savez, |
| |
personne de soutien pour ce projet et fournissant simplement de bons commentaires. Anne et Larry, j'apprécie juste |
| |
votre aide pour tout ce qui concerne JMP et nos relations passées et pour m'avoir encouragé à organiser ce Discovery Summit. Cela a été vraiment génial et j'ai hâte de rencontrer davantage de personnes dans la communauté JMP. |
| |
à travers cela, alors merci pour cela. Vous pouvez me contacter de plusieurs manières. Vous pouvez m'envoyer un e-mail à la messagerie de mon université, vous pouvez me contacter sur Twitter si c'est ainsi que vous aimez faire les choses. |
| |
Et je prévois également de publier ce complément JMP sur github, ainsi que sur le site Web de la communauté, alors n'hésitez pas à consulter l'un ou l'autre de ces endroits pour les futures mises à jour du complément. |
| |
Alors oui, merci de m'avoir invité et je suis ravi de répondre à vos questions pendant le temps qui nous est imparti, merci. |