Conférencier
|
Transcription
|
| Josué W Lambert |
Bonjour. |
| ROBYN GODFREY |
salut je suis Robin moi josh. |
| |
Oui. |
| ROBYN GODFREY |
Le néo. |
| Josué W Lambert |
ouais ravi de vous rencontrer aussi désolé j'ouvre juste le PowerPoint ici. |
| ROBYN GODFREY |
D'accord. |
| |
Avez-vous des co-présentateurs. |
| Josué W Lambert |
Non. |
| ROBYN GODFREY |
Très bien, je vais juste descendre la liste ici, donc nous enregistrons ceci juste pour que vous me donniez verbalement une affirmation verbale que vous savez que vous êtes enregistré. |
| |
Oui. |
| ROBYN GODFREY |
téléphones portables les notifications Internet sont réduites au silence. |
| Josué 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 e-mail partait au milieu. |
| Josué W Lambert |
Et je ne pense pas que j'ai tout éteint, ils n'ont jamais eu à le faire avant. |
| 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. |
| Josué W Lambert |
obtenu les tacos. |
| ROBYN GODFREY |
OK, super, je vais me cacher ici. |
| |
Pour faire ça, à chaque fois que je fais ça, je dois, je dois aimer Okay, qu'est-ce que j'ai fait. |
| Josué W Lambert |
Donc alors. |
| |
En ce qui concerne la présentation, je suppose que vous allez couper à partir de quand je commencerai. |
| |
ouais et ce que vous avez des questions que vous allez poser ou. |
| ROBYN GODFREY |
Non, non, alors vous allez juste faire votre présentation comme je le fais d'habitude. |
| |
juste et vous savez que vous affichez vos diapositives et tout. |
| |
Si vous voulez parler d'abord, puis afficher vos diapositives, c'est très bien si vous devez recommencer ou quelque chose comme ça, faites-le moi savoir et nous pouvons le faire, ce n'est pas grave. |
| |
D'accord, tu es un petit clip comme tu es la caméra, y a-t-il un moyen de sauvegarder juste un peu parce que tu es vraiment proche. |
| |
Je ne peux même pas aimer voir tout ton visage, je peux voir comme. |
| Josué W Lambert |
savoir que j'ai oublié. |
| ROBYN GODFREY |
oui juste un petit peu. |
| |
Ou peut-être abaissez-le un peu votre appareil photo. |
| |
c'est bon. |
| |
c'est bien ouais, on peut voir plus de tes épaules et tout va bien. |
| |
Alors je vais rester muet et alors donnez-moi juste quelques secondes, et ensuite vous pourrez. |
| |
commencez quand vous êtes prêt d'accord. |
| |
Super. |
| Josué W Lambert |
Bonjour à tous. Je m'appelle Josh Lambert. Je suis professeur assistant à l'Université de Cincinnati et je suis un utilisateur de JMP depuis environ 10 ans maintenant. |
| |
Et je suis ravi de partager avec vous certains travaux que j'ai effectués pour explorer les interactions dans les modèles de régression à l'aide d'un complément que j'ai construit et qui utilise un algorithme que j'ai développé appelé algorithme de solution réalisable. |
| |
Donc |
| |
certains contenus dont nous allons parler aujourd'hui. Je vais donc commencer par un petit exemple, qui va motiver notre discussion, ainsi que ce sur quoi j'ai travaillé, une vue d'ensemble du problème. |
| |
Une solution potentielle. |
| |
Et puis discutez de la façon dont j'ai implémenté la solution dans un package R, puis déplacé cela vers un complément JMP et du processus que j'ai suivi pour le faire. Et puis je parlerai de mes 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 ça Tom le Data Scientist. Alors rencontrez Tom. C'est un scientifique des données et Tom effectue de nombreuses activités typiques de la science des données, en particulier Tom construit des modèles de régression multivariables dans JMP. |
| |
Il traite principalement des données tabulaires qui ont de nombreuses variables, et Tom se rend compte que ces modèles de régression multivariables manquent de complexité, en particulier ils manquent de termes d'interaction et de termes quadratiques. |
| |
Et Tom... ça 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 main dans la plate-forme de modèles d'ajustement dans JMP. |
| |
Et vous savez, avoir à exécuter 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 fait 19 900 interactions bidirectionnelles à vérifier. C'est un peu trop. |
| |
Tom se demande donc 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 sur le plan mathématique et statistique. Donc, ce que nous avons dans le problème, c'est que nous avons un problème de volume et de complexité. |
| |
Donc volume et complexité |
| |
va continuer à croître à un rythme très rapide. Nous avons de plus en plus de données à notre disposition tout le temps, et la complexité de ces données augmente également. |
| |
Le problème avec les interactions est qu'il y en a tout simplement trop à vérifier. |
| |
Habituellement, un data scientists, un statisticien, un scientifique devra se présenter à l'analyse avec un ensemble connu d'interactions à vérifier. |
| |
puis procédez à leur vérification. C'est un problème pour un certain nombre de façons... un certain nombre de raisons, |
| |
c'est-à-dire que vous n'avez peut-être pas une bonne idée des interactions qui peuvent ou non exister, et que 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, ce qui augmente la complexité. Vous aimeriez vraiment pouvoir faire des choses en cours de route pendant que vous construisez un modèle de régression. |
| |
Donc, l'autre problème avec les forêts aléatoires et les composants principaux, ainsi que d'autres types de tâches d'apprentissage automatique, est que ces choses sont souvent difficiles à interpréter et nous aimerions ajouter... garder 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 à se demander s'ils sont ou non interprétables 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 à un modèle d'apprentissage automatique, qui fait un très bon travail de modélisation de cette complexité. Le problème peut donc se résumer de la manière suivante. |
| |
Y a-t-il un moyen pour que nous ne puissions pas aller jusqu'aux modèles de régression multivariables traditionnels et pas jusqu'aux modèles d'apprentissage automatique, |
| |
mais trouvez un bon point d'équilibre au milieu, où nous pouvons tirer parti de la belle interprétabilité de nos modèles de régression qui ajoutent une interaction ou deux |
| |
que nous avons trouvé dans ces mégadonnées, afin que nous puissions ajouter des nuances intéressantes à nos modèles et à notre complexité, qui, encore une fois, ajoutent des performances prédictives ainsi qu'un bon sens contextuel. |
| |
Donc, s'il existe un moyen de le faire, ce que nous aimerions vraiment faire, c'est développer un outil pour que les statisticiens, les scientifiques des données et les enquêteurs puissent 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 des contraintes et des préférences si nous devions développer un outil comme celui-ci. Nous voudrions qu'il y ait, sur la base de modèles statistiques classiques 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érerions faisable plutôt qu'optimal. J'entrerai un peu plus dans ce que cela signifie plus tard, mais en substance, ce que cela signifie vraiment, c'est que |
| |
nous aimerions qu'il y ait une pléthore de solutions plutôt qu'une seule qui soit bonne et ce que nous appellerons faisable. |
| |
Et nous aimerions aussi 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, 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 l'algorithme fait ici. |
| |
Le but de l'algorithme est donc d'identifier les interactions d'ordre m (donc ce serait si m était 2, ce serait une interaction bidirectionnelle ; si m était 3, ce serait une interaction tridirectionnelle), |
| |
avec un critère réalisable, c'est donc un critère qui n'est pas nécessairement le meilleur, mais c'est un |
| |
critère qui est |
| |
peut-être considéré comme semi-optimal d'une certaine manière. |
| |
Donc, pour ce faire, nous suivrons 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. Ainsi, 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 est R au carré pour ce point de départ aléatoire , est de 0,5. |
| |
Et disons que la façon dont l'algorithme fonctionne est qu'il envisagerait d'échanger l'une des variables, X3 ou X5, contre l'une des autres. Alors nos choix sont |
| |
X3 X1, X3 X2, X3 X4, X5 X1, X5 X2 et X5 X4. Remarquez donc que parmi tous les possibles, ce que j'appellerai, les échanges contiennent au moins une des variables de point de départ, d'accord ? |
| |
Et puis, ce que nous allons faire, c'est de tout cela, nous allons adapter ces modèles et nous déterminerons quels sont les critères pour 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 pire endroit, nous voulons aller dans un meilleur endroit, un R plus élevé au carré, donc nous découvririons 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 de passer à la troisième étape et nous ferions le meilleur échange à partir de la deuxième étape. |
| |
Dans ce cas, nous passerions à la place X3, X4, puis nous retournerions 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 vers des endroits, en commençant par là, en considérant tous les échanges, jusqu'à ce que finalement nous ne puissions pas faire d'amélioration. |
| |
Et nous allons appeler cela à... cet endroit où nous finirons par trouver une solution réalisable. |
| |
Et nous allons répéter les étapes un à quatre pour trouver d'autres solutions réalisables. Nous pouvons le faire 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 parfois vous donner la solution optimale. |
| |
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 document qui |
| |
Elliott, une de mes collègues a écrit en 2021, où elle décrit que les solutions réalisables ne sont pas garanties, comme je viens de le dire plus tôt, d'être optimales pour un critère choisi. |
| |
Et c'est-à-dire que toutes les solutions optimales sont réalisables, mais que 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 assez bons. Ils pourraient tout simplement ne pas être aussi bons que le meilleur. |
| |
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 |
| |
indéterminé marchant sur le nombre de solutions que vous allez obtenir. |
| |
Et c'est pourquoi nous encourageons généralement les utilisateurs à répéter l'algorithme de solution réalisable plusieurs fois, car cela augmentera vos chances d'obtenir les meilleurs, ainsi que les réalisables, et assurez-vous que vous avez |
| |
bien fouillé l'espace. Et nous avons un autre article qui décrit (si quelqu'un est intéressé, n'hésitez pas à me contacter) quant au nombre de tris aléatoires que je dois faire pour m'assurer que j'ai une probabilité raisonnable d'obtenir le tri optimal. Nous avons un |
| |
article théorique à ce sujet aussi. |
| |
Mais, en substance, la façon dont cela fonctionne est que certaines de ces interactions sont plus attrayantes. Ils... l'espace bêta les attire plus que d'autres, et donc ce que vous finissez par obtenir parfois, c'est que, même si |
| |
une interaction n'est pas optimale, elle peut parfois conduire... les données peuvent souvent la conduire |
| |
grâce à l'algorithme de solution faisable ... faisable peut souvent vous conduire à cet endroit plus souvent que l'optimal, et cela a juste à voir avec la façon dont les données sont corrélées et ainsi de suite. |
| |
Parlons donc du package R, puis 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 ont peut-être beaucoup utilisé R et d'autres pas. Et |
| |
Donc R est un très bon langage de programmation et il est souvent enseigné dans les programmes de statistiques, et c'est donc le premier endroit où je suis immédiatement allé 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 faisable 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 ajusté au carré, AIC |
| |
interaction, valeur P, ainsi de suite et ainsi de suite. Et il prend également en charge différentes stratégies de modélisation, comme les modèles linéaires et les modèles linéaires généralisés, et peut être facilement adapté pour fonctionner pour d'autres types de modélisation, comme les modèles à risques proportionnels 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 à déplacer ce package vers JMP, et je vais parler du pourquoi, du quand et de la façon dont j'allais le faire. |
| |
Alors la première question est, pourquoi faire ça ? 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 apprendre cela et j'ai pensé que ce serait amusant de déplacer ce package R sur lequel j'ai passé la plus grande 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 très bon outil pour moi et mes données |
| |
pipeline d'analyse. En général, je démarre tous mes projets dans JMP et j'explore les données, je trace les données, je regarde les choses et cela me donne une bonne intuition sur ces données. Et j'ai trouvé que beaucoup de mes |
| |
collègues, en particulier l'un de mes conseillers, il travaille principalement dans JMP et il me demandait toujours le package FSA dans JMP. |
| |
Et alors j'ai pensé, 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 qu'avec un peu de chance, d'autres personnes |
| |
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 retours sur 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 publié en 2019. |
| |
J'ai reçu d'innombrables e-mails de personnes du monde entier, et je veux que la même chose soit accessible aux utilisateurs de JMP, et j'espère que grâce à ce module complémentaire, les utilisateurs pourront trouver des interactions vraiment intéressantes qui changent leur façon d'interpréter données et comment ils les comprennent. |
| |
Et puis vous pourriez demander, eh bien, quand allais-je le faire? Ce n'est pas exactement quelque chose pour lequel quelqu'un me paie. Vous savez, JMP ne me paie pas pour le faire. |
| |
Ma position actuelle, 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 un peu de temps libre le vendredi. J'essaie de laisser le vendredi après-midi ou le vendredi matin ouvert juste pour le plaisir, |
| |
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 ces derniers mois : prendre mon Fun Friday Free Time et le consacrer à la création d'un module complémentaire JMP. |
| |
Vous pourriez demander, eh bien, comment allais-je faire cela? Vous savez, je ne connaissais pas le langage de script JMP. Comment allais-je m'y prendre ? Donc |
| |
la première chose est, vous savez, j'allais l'apprendre. Il y a donc beaucoup de très bonnes ressources sur la façon d'apprendre le JSL. |
| |
Il existe donc une prise en charge du code JMP JSL dans le logiciel JMP lui-même. Allez juste pour aider, vous pouvez bien... allez directement dans |
| |
l'index de script qui est là. Il y a d'innombrables choses qui sont en ligne |
| |
sur la façon de comprendre le langage de script JMP et par où commencer. Et puis il y a community.jmp.com, |
| |
ce qui est vraiment génial pour commencer, où vous pouvez poser des questions ou afficher d'autres questions que les gens ont posées et emprunter le code qu'ils ont publié là-bas pour pouvoir... pour que les gens puissent en profiter. Et je l'ai fait un certain nombre de fois ici, et c'était vraiment génial. |
| |
Je vais donc en quelque sorte passer en revue chacun d'eux un peu plus en profondeur, donc si vous êtes intéressé par le déplacement d'un package R ou l'écriture de votre propre algorithme ou l'écriture de votre propre code JSL, |
| |
vous aurez une idée de par où commencer. Et puis, quand j'aurai fini avec cela, 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 encore... |
| |
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, qui est lié ici, |
| |
que vous pouvez Google, ou vous pourriez être en mesure d'obtenir ces diapositives une fois que cela est terminé, et être en mesure d'obtenir ces liens. Il existe un index de script dans JMP, auquel vous pouvez simplement accéder pour aider, puis des index de script. Je mets ici pour vous les gars, vraiment facile à utiliser et à démarrer. |
| |
Vous pouvez contacter JMP. Donc, la première chose que j'ai faite, c'est 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 soutenu et encouragé à propos de l'idée. Elle a pensé que c'était super, puis elle m'a 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 juste un support général autour du langage de script, en révisant mon code, en m'aidant à en écrire des parties, |
| |
commencer sur une partie de celui-ci. Et nous avons pris... nous avons fait des allers-retours environ 22 fois par e-mail au cours des derniers mois. Et |
| |
les ressources que JMP m'a fournies, en ce qui concerne les employés directs qui ont accepté de 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 support lorsque j'essayais de créer quelque chose pour une autre plate-forme auparavant. Alors bravo à JMP pour |
| |
fournir cela, et ils sont 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 un Google, mais c'est juste pour JMP. |
| |
Et vous pouvez rechercher tout ce que vous voulez, vous pouvez donc taper JSL et JSL tout ce que vous voulez faire, et c'est probablement quelqu'un qui a déjà posté à ce sujet. S'il n'y en a pas, vous pouvez l'ajouter au forum de discussion. |
| |
Et puis il y a l'emprunt de code, et c'est l'une des choses que Mark m'a transmises était, hé, emprunter du code. Il y a beaucoup de code sur le site Web de la communauté, |
| |
et les gens l'ont partagé pour une raison. Donc je... sur la droite ici est 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 étaient |
| |
en termes d'exécution de l'algorithme et combien de temps cela allait prendre ou combien de progrès avaient déjà eu lieu. |
| |
Et donc je ne voulais pas écrire ma propre barre de progression dans JMP, alors j'en ai juste emprunté une qui se trouvait sur le tableau de la communauté et je l'ai ajoutée directement dans mon module complémentaire, 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 pour avoir recommandé d'emprunter le code. Cela m'a fait gagner beaucoup de temps, donc je l'apprécie vraiment et cela a beaucoup amélioré le complément. |
| |
Alors maintenant, parlons 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, espérons-le, est la partie la plus amusante de tout cela. J'ai donc déplacé tout ce package, le package R, vers JMP en quelques mois sur mon Fun Friday Free Time que j'ai, donc ce n'est 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 cloches et de sifflets fantaisistes 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 à la régression logistique. |
| |
Je n'en ai pas parlé. Il y a beaucoup d'autres choses que je n'ai pas abordées et que j'espère améliorer avec ce package au fur et à mesure que les gens l'utilisent et l'apprécient et me donnent des commentaires à ce sujet. |
| |
Il manque donc certaines fonctionnalités. Et ce qui est bien 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, il suffit donc de quelques clics sur un bouton, 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 posté 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 d'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 que vous avez, pas seulement avec mon exemple. |
| |
Je vais donc vous donner un didacticiel en direct très rapide sur ce complément, appelé... le complément, je viens de l'appeler explorer les interactions, et |
| |
tout cela va se faire via l'algorithme de solution faisable 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 que je veux pouvoir ajuster. |
| |
Et puis, ce que je voudrais faire, c'est considérer les 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éparts aléatoires, et je veux m'assurer que mon critère, et c'est actuellement le seul critère qui est intégré dans le |
| |
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 |
| |
valeurs P très faibles. Il va donc rechercher l'espace, en fonction de la valeur P de l'interaction et aller à ceux qui ont la meilleure. Nos résultats vont donc avoir beaucoup d'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 le suivez 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. |
| |
Ce n'est en aucun cas une déduction. Nous utilisons simplement le signal des données pour indiquer 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é. |
| |
D'accord, alors je vais arrêter, sortir de là très vite, et je vais sortir le |
| |
Ensemble de données JMP que j'ai. J'espère que vous pouvez voir ça. |
| |
Et comme vous pouvez le voir, juste un aperçu très rapide, il s'agit en fait d'un tas de données aléatoires que j'ai générées. Il n'y a pas du tout de structure réelle à cela. Il y a... il ne s'agit pas de données réelles, mais de données générées aléatoirement dans JMP. |
| |
Il a 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 regarder... regardez 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 avez obtenu le complément, accédez au site Web, vous téléchargez le complément, il vous suffit de double-cliquer dessus et il s'installe directement dans JMP. C'est vraiment facile. |
| |
Et puis vous pouvez simplement aller ici, donc vous allez au complément, allez... une fois que votre ensemble de données est 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 de JMP. |
| |
Et donc je vais choisir ma variable de réponse, qui sera Y, puis je vais corriger, c'est donc là 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 que 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 mettre une variable de réponse catégorielle et cela ne changera pas. Vous devez le changer vous-même. C'est une de ces cloches et sifflets fantaisistes, j'espère y revenir plus tard. |
| |
Débarrassez-vous de ça. Remettez ça ici. |
| |
D'accord, c'est donc notre configuration, et cela correspondra 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 à |
| |
...ou, je veux rechercher des interactions entre, je vais donc 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 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 les interactions qui sont des interactions à quatre voies, à cinq voies, mais |
| |
l'algorithme... ou la façon dont j'ai mis cela en place, c'est que vous pourriez aller aussi haut si vous le vouliez. Je n'ai pas mis de limite en fait, mais sachez que plus vous montez ici, plus il vous faudra de temps pour exécuter cela. |
| |
Je vais donc appuyer sur OK. Cela va prendre une seconde. |
| |
Vous pouvez donc voir le code que j'ai emprunté. |
| |
Vous pouvez voir qu'il est venu ici et qu'il me dit que j'en suis à 20 % du chemin parcouru, 40 %. |
| |
Ce sont donc des solutions. Ainsi, chaque fois que cette vérification est effectuée, une solution réalisable est trouvée, puis ce qui apparaît à la fin est une table de données, donc |
| |
vous savez, encore une fois, ce n'est pas l'une de ces fonctionnalités... J'aimerais qu'il y ait une zone de sélection, où vous pouvez sélectionner l'interaction, puis appuyer sur |
| |
create model, 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 fait cinq départs aléatoires. Il vous indique quelle était 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, la racine carrée de l'erreur quadratique, puis la valeur P de l'interaction. D'accord, ce que nous pouvons voir ici, c'est que |
| |
(si je clique dessus, cela 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, est-ce que je peux aller construire ce modèle et 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é ici ? Vous savez, à quoi ressemblent mes intrigues à effet de levier ? Quels sont tous mes différents critères |
| |
les parcelles ressemblent? Et à quoi ressemblent mes tracés de diagnostic ? Ce genre de choses. Et puis je peux commencer à poser des questions, comme cette interaction a-t-elle un sens en termes d'estimation des paramètres et ainsi de suite ? |
| |
C'est exploratoire, donc ça va vous donner des solutions potentielles, mais vous devez suivre cela avec la diligence raisonnable et penser réellement 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 l'utilisons dans les sciences de la santé. Nous utilisons cela avec des données de santé, nous produisons des interactions, nous allons ensuite chez les médecins pour dire est-ce que cela a du sens que cet effet, |
| |
vous savez, ne serait pas cohérent selon l'âge ou le sexe ou quoi que ce soit. Et ils nous en parlent généralement, vous savez, réfléchissez-y. L'idée générale est que cela influencera, espérons-le, les futures études, où nous pourrons alimenter les études pour rechercher ces effets d'interaction de manière plus |
| |
manière bien alimentée. |
| |
Bon, je vais maintenant revenir à mon PowerPoint. C'était donc ce tutoriel. Vous pouvez voir que c'est assez facile à utiliser. C'était un très petit exemple. Vous pouvez augmenter cela, |
| |
sachez juste, vous savez, plus vous avez de grands ensembles de données, plus tout le processus que je viens de faire prendra du temps. Cela ne va pas durer 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 faire des ensembles de données avec 100 variables, |
| |
variables explicatives, et il a fallu environ ce temps, environ sept minutes, pour l'exécuter pour faire environ cinq ou 10 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 mon premier essai et, espérons-le, à travers des itérations qui deviendront encore plus rapides et meilleures. |
| |
Parlons donc de l'amélioration future. Je souhaite donc permettre aux utilisateurs de pouvoir optimiser ou de |
| |
trouver des solutions réalisables basées sur n'importe quel, vous savez, tous les critères qu'ils veulent. Donc, s'ils veulent trouver des solutions réalisables basées sur l'optimisation du R au carré ou l'optimisation de l'AIC ou l'optimisation du taux d'erreur de classification, |
| |
vous savez, dans les modèles de régression logistique, je veux leur permettre de faire ça. 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 un |
| |
variable logistique binaire, vous savez, elle sélectionnera automatiquement la régression logistique pour vous. Je ne pense pas que ce soit probablement super difficile, je pourrais probablement le faire assez rapidement. Je suis confiant de le faire après avoir traversé ce processus de transfert de mon package R. |
| |
Je veux améliorer la vitesse un peu. Il y a beaucoup de choses que je pourrais faire pour améliorer la vitesse de tout ça. |
| |
Donc, j'aimerais pouvoir le faire. 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 de pouvoir cliquer sur ce bouton de rappel. |
| |
Et puis j'aimerais pouvoir simplifier le passage des résultats que vous avez obtenus de 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'un de ces éléments, vous pouvez simplement cliquer sur créer un modèle et toutes les variables sont transférées très facilement. |
| |
J'aimerais pouvoir le faire avec cet algorithme de solution réalisable, il suffit d'obtenir ces types de résultats et de cliquer simplement sur le modèle de création et il fait automatiquement tout pour vous |
| |
afin que vous puissiez les explorer et, encore une fois, espérons-le, vous donnerez un bon sens aux interactions que vous avez trouvées. |
| |
Donc quelques remerciements que j'aimerais passer. Donc 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 |
| |
pour m'avoir juste mis en contact avec Mark, en plus d'être juste un général, vous savez, |
| |
personne de soutien pour ce projet et fournissant juste de bons commentaires. Anne et Larry, j'apprécie juste |
| |
votre aide pour tout ce qui concernait JMP et nos relations passées et pour m'avoir encouragé à participer à ce Discovery Summit. C'était vraiment génial et je suis ravi de rencontrer plus de personnes dans la communauté JMP |
| |
à travers elle, alors merci pour cela. Vous pouvez me contacter de plusieurs manières. Vous pouvez m'envoyer un e-mail à l'adresse e-mail de mon université, vous pouvez me contacter sur Twitter si c'est comme ça 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 à vérifier 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. |