Lautsprecher
|
Transkript
|
| Joshua W Lambert |
Hallo. |
| ROBYN GODFREY |
Hallo, ich bin Robin, ich josh. |
| |
Jawohl. |
| ROBYN GODFREY |
Der Neo. |
| Joshua W Lambert |
ja schön, dich auch kennenzulernen, tut mir leid, ich öffne hier nur PowerPoint. |
| ROBYN GODFREY |
Okay. |
| |
Haben Sie Co-Moderatoren? |
| Joshua W Lambert |
Nein. |
| ROBYN GODFREY |
In Ordnung, ich gehe nur die Liste hier durch, also nehmen wir das auf, damit Sie mir verbal eine Bestätigung geben, dass Sie wissen, dass Sie aufgenommen werden. |
| |
Jawohl. |
| ROBYN GODFREY |
Handy-Internetbenachrichtigungen werden stumm geschaltet. |
| Joshua W Lambert |
Jawohl. |
| ROBYN GODFREY |
Ja, ich denke, ich bin wie die Windows-Taskleiste und all das und sicher, es ist alles so, als ob Ihre E-Mails mittendrin abgehen. |
| Joshua W Lambert |
Und ich glaube nicht, dass ich alles ausgeschaltet habe, sie mussten das noch nie zuvor tun. |
| ROBYN GODFREY |
Ich denke, es ist in der Taskleiste ähm. |
| |
mal sehen hier. |
| |
Schließen Sie einfach Ihre E-Mail und alles wird gut. |
| |
Okay. |
| Joshua W Lambert |
bekam die Tacos. |
| ROBYN GODFREY |
Okay, toll, ich werde mich hier verstecken. |
| |
Um dies zu tun, muss ich jedes Mal, wenn ich dies tue, ich muss es mögen. Okay, was habe ich getan. |
| Joshua W Lambert |
Also dann. |
| |
Was die Präsentation angeht, denke ich, ihr werdet abschneiden, wenn ich anfange. |
| |
ja und was Sie Fragen haben, die Sie stellen werden oder. |
| ROBYN GODFREY |
Nein, nein, also halten Sie Ihre Präsentation einfach so, wie ich es normalerweise tun würde. |
| |
richtig und nur Sie wissen, dass Sie Ihre Folien und alles anzeigen. |
| |
Wenn Sie zuerst reden und dann Ihre Folien aufrufen möchten, ist das in Ordnung, wenn Sie von vorne beginnen müssen oder ähnliches, lassen Sie es mich einfach wissen und wir können das machen, keine große Sache. |
| |
Okay, du bist ein kleiner Clip, als wärst du die Kamera, gibt es eine Möglichkeit, nur ein bisschen zu sichern, weil du wirklich nah dran bist. |
| |
Ich kann nicht einmal dein ganzes Gesicht sehen, ich kann es sehen. |
| Joshua W Lambert |
zu wissen, dass ich vergessen habe. |
| ROBYN GODFREY |
ja nur ein bisschen. |
| |
Oder vielleicht senken Sie es nur ein wenig Ihre Kamera. |
| |
das ist gut. |
| |
das ist gut ja, wir können mehr von deinen Schultern sehen und so, okay. |
| |
Also schalte ich stumm und gib mir nur ein paar Sekunden, und dann kannst du. |
| |
fang an, wenn du fertig bist. |
| |
Groß. |
| Joshua W Lambert |
Hallo alle zusammen. Mein Name ist Josh Lambert. Ich bin Assistenzprofessor an der University of Cincinnati und seit etwa 10 Jahren JMP-Anwender. |
| |
Und ich freue mich, mit Ihnen einige meiner Arbeiten zur Untersuchung von Interaktionen in Regressionsmodellen mit einem von mir erstellten Add-In zu teilen, das einen von mir entwickelten Algorithmus namens Algorithmus für machbare Lösungen verwendet. |
| |
So |
| |
einige Inhalte, über die wir heute sprechen werden. Ich beginne also mit einem kleinen Beispiel, das unsere Diskussion anregt, sowie mit einem Überblick über das Problem, woran ich gearbeitet habe. |
| |
Eine mögliche Lösung. |
| |
Und dann besprechen Sie, wie ich die Lösung in ein R-Paket implementiert und dann in ein JMP-Add-In überführt habe und wie ich dabei vorgegangen bin. Und dann werde ich über einige zukünftige Unternehmungen sprechen und einige Dinge, die ich dabei gelernt habe. |
| |
Lassen Sie uns unsere heutige Diskussion also mit einem kleinen Beispiel motivieren. Ich werde das Tom den Data Scientist nennen. Also triff Tom. Er ist Data Scientist und Tom führt viele typische Data Science-Aktivitäten durch, insbesondere erstellt Tom multivariable Regressionsmodelle in JMP. |
| |
Er beschäftigt sich hauptsächlich mit tabellarischen Daten mit vielen Variablen, und Tom erkennt, dass diesen multivariablen Regressionsmodellen die Komplexität fehlt, insbesondere fehlen ihnen Interaktionsterme und quadratische Terme. |
| |
Und Tom ... das frustriert Tom, und Tom möchte nicht direkt mit maschinellem Lernen beginnen. |
| |
Daher wünscht er sich, dass er in seinen Regressionsmodellen eine Möglichkeit hätte, Interaktionseffekte zu untersuchen. |
| |
er hat Interaktionen, die er gerne testen möchte, aber er müsste diese manuell in die Fit-Modell-Plattform in JMP einarbeiten. |
| |
Und wissen Sie, all dies durchzuführen wird viel Zeit in Anspruch nehmen. Wenn Tom beispielsweise 200 Variablen in seinem Datensatz hat und er nach allen wechselseitigen Interaktionen suchen muss, sind das 19.900 wechselseitige Interaktionen, die überprüft werden müssen. Das sind ein paar zu viel. |
| |
Tom fragt sich also, ob es eine algorithmische und datengesteuerte Möglichkeit gibt, Interaktionseffekte in Regressionsmodellen zu untersuchen, ohne sie alle von Hand erstellen und all diese möglichen Kombinationen überprüfen zu müssen? |
| |
Lassen Sie uns dieses Problem also etwas mathematisch und statistisch rigoros überblicken. Wir haben also ein Problem mit Volumen und Komplexität. |
| |
Also Volumen und Komplexität |
| |
wird weiterhin sehr schnell wachsen. Immer mehr Daten stehen uns zur Verfügung und auch die Komplexität dieser Daten nimmt zu. |
| |
Das Problem bei Interaktionen ist, dass es einfach zu viele von ihnen gibt, um sie zu überprüfen. |
| |
Normalerweise muss ein Datenwissenschaftler, Statistiker oder Wissenschaftler mit einer bekannten Reihe von Interaktionen in die Analyse gehen, um sie zu überprüfen |
| |
und fahren Sie dann mit der Überprüfung fort. Dies ist in vielerlei Hinsicht ein Problem... aus mehreren Gründen, |
| |
das heißt, dass Sie möglicherweise keine gute Vorstellung davon haben, welche Interaktionen existieren oder nicht, und Sie diese in Ihren Daten untersuchen möchten |
| |
ohne zu Modellen wie Random Forest oder sogar Hauptkomponentenanalyse gehen zu müssen, um eine Art Datenreduktion durchzuführen, und dort etwas mehr Komplexität zu tun. Sie möchten wirklich in der Lage sein, Dinge auf dem Weg zu tun, während Sie ein Regressionsmodell erstellen. |
| |
Das andere Problem mit Random Forest- und Hauptkomponenten sowie anderen Aufgabentypen des maschinellen Lernens besteht also darin, dass diese Dinge oft schwer zu interpretieren sind, und wir möchten hinzufügen ... Interaktionen erforschen. |
| |
Also typischerweise unser Workflow in Regression |
| |
Daher verbringt der Statistiker viel Zeit damit, ein sparsames, wie ich es nennen werde, Basismodell mit den erforderlichen Variablen und ohne hinzugefügte Interaktionseffekte aufzubauen. |
| |
Dieses Basismodell, der Statistiker, wird viel... viel Zeit mit diesem Basismodell verbringen, viele Ressourcen, Sorgfalt aufwenden, Zeit damit verbringen, darüber nachzudenken, ob sie interpretierbar sind oder nicht und ob sie kontextuell sinnvoll sind. |
| |
Das Problem bei diesen Basismodellen, die keine Komplexität einschließen, besteht darin, dass sie annehmen, dass die Effekte ... wahr. |
| |
Dieser Mangel an Komplexität |
| |
hindert die Leute wirklich daran, es verwenden zu können, im Vergleich zu einem maschinellen Lernmodell, das diese Komplexität wirklich gut modellieren kann. Das Problem lässt sich also wirklich wie folgt zusammenfassen. |
| |
Gibt es eine Möglichkeit, dass wir nicht ganz bei traditionellen multivariablen Regressionsmodellen und nicht ganz bei Machine-Learning-Modellen sein können, |
| |
aber finden Sie einen schönen Sweet Spot in der Mitte, wo wir die schöne Interpretierbarkeit unserer Regressionsmodelle nutzen können, die ein oder zwei Interaktionen hinzufügen |
| |
die wir in diesen Big Data gefunden haben, damit wir unseren Modellen und der Komplexität interessante Nuancen hinzufügen können, die wiederum prädiktive Leistung sowie ein gutes Kontextverständnis hinzufügen. |
| |
Wenn es also eine Möglichkeit dazu gibt, würden wir gerne ein Tool entwickeln, mit dem Statistiker, Datenwissenschaftler und Ermittler die Interaktionen untersuchen können, nachdem sie ein Basismodell erstellt haben. |
| |
das Basismodell findet zuerst statt, und dann würde die Komplexitätserforschung normalerweise als zweites erfolgen. |
| |
Wir haben also einige Einschränkungen und Präferenzen, wenn wir ein solches Tool entwickeln sollten. Wir möchten, dass auf der Grundlage traditioneller statistischer Modelle lineare logistische Regression, |
| |
wir möchten, dass sie interpretierbar bleiben. Wir wollen, wenn möglich, weniger Modelle prüfen und ziehen das Machbare dem Optimalen vor. Ich werde später noch ein bisschen darauf eingehen, was das bedeutet, aber im Wesentlichen bedeutet es wirklich das |
| |
Wir möchten, dass es viele Lösungen gibt und nicht nur eine, die gut ist und die wir als machbar bezeichnen. |
| |
Und wir möchten auch, dass es flexibel ist. Es könnte angepasst werden, um mit linearer Regression, logistischer Regression und proportionaler Cox-Regression arbeiten zu können. Wir könnten es für die Poisson-Regression verwenden, jede Art von Regression, für die dieses Framework oder Werkzeug verwendet werden könnte. |
| |
Und wieder wird es eine Mischung aus traditionellen statistischen Methoden und maschinellem Lernen sein. Die Ergebnisse, die dabei herauskommen werden, sind nicht unbedingt schlussfolgernd, aber sie werden explorativ sein und sie werden motivieren und beeinflussen, was wir in Zukunft mit unserer Zeit verbringen. |
| |
Lassen Sie uns nun über diese potenzielle Lösung sprechen, den Algorithmus für zulässige Lösungen. |
| |
Der Algorithmus ... der Algorithmus für machbare Lösungen, der manchmal FSA genannt wird, oder so nenne ich ihn gerne, |
| |
wurde zum ersten Mal in diesem Papier diskutiert ... wirklich zum ersten Mal im Detail in diesem Papier, das ich 2018 geschrieben habe. |
| |
Und |
| |
Ich werde hier zusammenfassen, was der Algorithmus macht. |
| |
Das Ziel des Algorithmus ist es also, Wechselwirkungen der Ordnung m zu identifizieren (wenn m also 2 wäre, wäre das eine Zwei-Wege-Wechselwirkung; wenn m 3 wäre, wäre das eine Drei-Wege-Wechselwirkung), |
| |
mit einem durchführbaren Kriterium, das ist also ein Kriterium, das nicht unbedingt das beste Kriterium ist, aber es ist ein |
| |
Kriterium das ist |
| |
vielleicht in gewisser Weise als semi-optimal angesehen. |
| |
Um dies zu tun, würden wir die folgenden Schritte ausführen. Das erste, was wir tun werden, ist, mit einer zufälligen Wechselwirkung der Ordnung m zu beginnen, also nehmen wir für unseren Fall an, dass es sich um eine Zwei-Wege-Wechselwirkung handelt, also ist m 2. |
| |
Wir werden alle Austauschvorgänge einer der Variablen und die Interaktion für alle anderen Variablen betrachten. Nehmen wir zum Beispiel an, wir starten es zufällig. |
| |
Wir haben fünf Variablen, also ist dies nur ein kleines Beispiel, um die Schritte hier irgendwie zu motivieren, aber sagen wir, wir haben fünf Variablen und beginnen zufällig bei X3, X5 und unseren Kriterien, die R zum Quadrat für diesen zufälligen Startplatz sind , ist .5. |
| |
Und sagen wir, der Algorithmus funktioniert so, dass er erwägen würde, eine der Variablen X3 oder X5 gegen eine der anderen auszutauschen. Unsere Entscheidungen sind also |
| |
X3 X1, X3 X2, X3 X4, X5 X1, X5 X2 und X5 X4. Beachten Sie also, dass von allen möglichen, wie ich es nennen möchte, Swaps mindestens eine der Startplatzvariablen enthalten, okay? |
| |
Und dann werden wir all dies tun, diese Modelle anpassen und herausfinden, was die Kriterien für diese Modelle sind. Was wir hier sehen können, ist das |
| |
für das X3 X5-Modell haben wir .5; X3 X1, das Kriterium ist .4. |
| |
Und mit R im Quadrat wollen wir natürlich nicht an einen schlechteren Ort gehen, wir wollen an einen besseren Ort gehen, ein höheres R im Quadrat, also würden wir aus allen möglichen Möglichkeiten herausfinden, was der beste Ort ist . |
| |
In diesem Beispiel ist die beste Anlaufstelle Swap Nummer drei, also X3 X4. Wir würden also zu Schritt drei übergehen und den besten Austausch ab Schritt Nummer zwei vornehmen. |
| |
In diesem Fall würden wir zu Platz X3, X4 wechseln und dann zu Nummer zwei zurückkehren und so lange wiederholen, bis keine Verbesserungen mehr möglich sind. |
| |
Also wiederholten wir diesen Prozess, bewegten uns zu Orten, begannen dort und betrachteten alle Swaps, bis wir schließlich keine Verbesserung mehr erzielen konnten. |
| |
Und wir werden das an dieser Stelle nennen, damit wir am Ende eine machbare Lösung finden. |
| |
Und wir werden die Schritte eins bis vier wiederholen, um andere praktikable Lösungen zu finden. Wir können dies immer wieder tun, und dieser Prozess, dieser Algorithmus für praktikable Lösungen, liefert Ihnen nicht garantiert die optimale Lösung, obwohl er Ihnen manchmal die optimale Lösung liefern kann. |
| |
Lassen Sie uns also über einige der Nebenprodukte der Verwendung dieses Algorithmus sprechen, den Algorithmus für zulässige Lösungen. Und diese sind in einem Papier skizziert, das |
| |
Elliott, eine Kollegin von mir, schrieb 2021, in der sie beschreibt, dass machbare Lösungen nicht garantiert sind, wie ich bereits sagte, dass sie für ein gewähltes Kriterium optimal sind. |
| |
Und das heißt, dass alle optimalen Lösungen zulässig sind, aber nicht alle zulässigen Lösungen sind optimal. Machbare Lösungen sind also eine Art semi-optimale Lösung, sie geben dir gute Kriterien, durchführbare Kriterien, aber nicht unbedingt optimale. |
| |
Diese Kriterien für machbare Lösungen liegen jedoch in der Regel sehr nahe an den optimalen, sodass sie in der Regel ziemlich gut sind. Sie sind vielleicht nicht so gut wie die besten. |
| |
Viele ... wenn Sie den Vorgang wiederholen, dies ... diese vier Schritte, erhalten Sie möglicherweise viele zulässige Lösungen. Wenn Sie diesen Algorithmus also zehnmal ausführen, erhalten Sie möglicherweise vier zulässige Lösungen. |
| |
Sie könnten 10 praktikable Lösungen erhalten. Es hängt von den Daten ab, die Sie verwenden, sowie von der Varianz der Kovarianz dieses Datensatzes, also ist es ein bisschen |
| |
unentschlossen, wie viele Lösungen Sie erhalten werden. |
| |
Aus diesem Grund empfehlen wir den Benutzern normalerweise, den Algorithmus für machbare Lösungen viele Male zu wiederholen, da dies Ihre Chancen erhöht, sowohl die optimalen als auch die machbaren zu erhalten, und stellen Sie sicher, dass Sie |
| |
den Platz ausreichend durchsucht. Und wir haben ein weiteres Papier herausgebracht, das beschreibt (wenn jemand interessiert ist, können Sie sich gerne an mich wenden), wie viele zufällige Sortierungen ich durchführen sollte, um sicherzustellen, dass ich eine vernünftige Wahrscheinlichkeit habe, die optimale zu erhalten. Wir haben ein |
| |
auch ein theoretischer Beitrag dazu. |
| |
Aber im Wesentlichen funktioniert dies so, dass einige dieser Interaktionen attraktiver sind. Sie ... der Beta-Raum zieht sie mehr an als andere, und was Sie manchmal bekommen, ist das, obwohl |
| |
eine Interaktion ist nicht die optimale, sie kann manchmal führen...die Daten können sie oft führen |
| |
Durch den machbaren ... machbaren Lösungsalgorithmus kann man oft öfter an diesen Ort als den optimalen führen, und das hat nur damit zu tun, wie die Daten korreliert sind und so weiter. |
| |
Lassen Sie uns also über das R-Paket sprechen und dann, wie ich es in das JMP-Add-In verschoben habe. |
| |
So |
| |
das R-Paket heißt rFSA, und ich weiß, dass es einige Leute gibt, die R ziemlich ausgiebig verwendet haben und andere, die es nicht getan haben. Und |
| |
R ist also eine wirklich schöne Programmiersprache und wird oft in Statistikprogrammen gelehrt, und so war es der erste Ort, an den ich sofort ging, als ich an meiner Dissertation arbeitete |
| |
diesen Algorithmus zu schreiben und der Community wirklich ein Werkzeug zur Verfügung zu stellen, um Interaktionen in ihren eigenen Datensätzen zu identifizieren und zu erforschen. |
| |
Und so implementiert das rFSA-Paket diesen praktikablen Lösungsalgorithmus, über den ich gerade gesprochen habe |
| |
für Interaktionen in großen Datensätzen, und dieses Paket unterstützt die Optimierung vieler verschiedener Kriterien wie R-Quadrat, angepasstes R-Quadrat, AIC |
| |
Wechselwirkung, P-Wert usw. usw. Außerdem unterstützt es verschiedene Modellierungsstrategien, wie lineare Modelle und verallgemeinerte lineare Modelle, und kann leicht an andere Modellierungsarten angepasst werden, z. B. Cox-Proportional-Hazard-Modelle. |
| |
Und es gibt auch mehrere Lösungen, da der Algorithmus so oft wiederholt wird, wie Sie es angeben. |
| |
Also warum... Ich möchte ein wenig über meine Motivation sprechen, dieses Paket zu JMP zu verschieben, und ich werde über das Warum, das Wann und das Wie ich sprechen. |
| |
Die erste Frage ist also, warum macht man das? Das erste ist, dass es Spaß macht. Ich schreibe gerne in verschiedenen Programmiersprachen. Ich hatte nicht viel Erfahrung mit dem Schreiben in der JMP-Skriptsprache, der JMP-Version von |
| |
statistische Programmiersprache, und deshalb wollte ich das lernen und dachte, es würde Spaß machen, dieses R-Paket, an dem ich den größten Teil von vier Jahren verbracht habe, zu verschieben und es zu JMP zu übertragen, weil |
| |
Ich mag JMP sehr. Ich finde JMP großartig. Es ist ein wirklich tolles Tool für mich und meine Daten |
| |
Analyse-Pipeline. Normalerweise beginne ich alle meine Projekte in JMP und erkunde die Daten, ich zeichne die Daten, ich schaue mir die Dinge an und dann bekomme ich eine Menge gute Intuition über diese Daten. Und ich fand, dass viele meiner |
| |
Kollegen, insbesondere einer meiner Berater, arbeitet hauptsächlich in JMP und hat mich immer nach dem FSA-Paket in JMP gefragt. |
| |
Und so dachte ich, weißt du, warum gibst du es ihm nicht? Er hat es sicherlich verdient, also habe ich beschlossen, dass das ein gutes Werkzeug wäre und hoffentlich andere Leute würden es tun |
| |
etwas davon gebrauchen. Und das führt mich zu meinem anderen Punkt, warum ich dies tun sollte, und ich habe viele großartige Rückmeldungen zu rFSA erhalten. |
| |
Insbesondere habe ich verfolgt, wie viele Leute mein R-Paket heruntergeladen haben und es gibt über 16.000 Leute, die es heruntergeladen haben, seit wir es 2019 veröffentlicht haben. |
| |
Ich habe unzählige E-Mails von Leuten aus der ganzen Welt bekommen, und ich möchte, dass das Gleiche für Leute in JMP zugänglich ist, und ich hoffe, dass die Leute durch dieses Add-In wirklich coole Interaktionen finden können, die ihre Interpretation verändern Daten und wie sie sie verstehen. |
| |
Und dann könnten Sie fragen, nun, wann sollte ich das tun? Das ist nicht gerade etwas, wofür mich jemand bezahlt. Wissen Sie, JMP bezahlt mich nicht dafür. |
| |
Meine derzeitige Position, obwohl ich denke, dass sie es interessant finden würden, sind sie wahrscheinlich nicht gerade begeistert davon, dass ich eine Menge zusätzlicher Zeit damit verbringe. |
| |
Aber zum Glück habe ich freitags etwas Freizeit in meine Position eingebaut. Ich versuche, Freitagnachmittag oder Freitagmorgen einfach nur Spaß zu lassen, |
| |
lustige Dinge, die mit meinem Job zu tun haben. Und ich nenne es Fun Friday Free Time, und das ist es, was ich in den letzten Monaten beschlossen habe, meine Fun Friday Free Time zu nehmen und sie damit zu verbringen, ein JMP-Add-In zu bauen. |
| |
Sie fragen sich vielleicht, wie sollte ich das machen? Wissen Sie, ich kannte die Skriptsprache JMP nicht. Wie wollte ich das machen? So |
| |
Das erste ist, weißt du, ich wollte es lernen. Es gibt also viele wirklich großartige Ressourcen zum Erlernen von JSL. |
| |
Es gibt also JMP JSL-Code-Unterstützung, die in der eigentlichen JMP-Software selbst enthalten ist. Geh einfach um zu helfen, du kannst gleich... |
| |
der Scripting-Index, der dort ist. Es gibt unzählige Dinge, die online sind |
| |
wie Sie die JMP-Skriptsprache verstehen und wo Sie anfangen sollten. Und dann ist da noch die community.jmp.com, |
| |
Das ist wirklich großartig für den Einstieg, wo Sie Fragen stellen oder andere Fragen anzeigen können, die von Leuten gestellt wurden, und den Code ausleihen, den sie dort öffentlich veröffentlicht haben, um ... damit die Leute Spaß haben können. Und das habe ich hier mehrmals gemacht, und es war wirklich großartig. |
| |
Also werde ich jedes einzelne etwas ausführlicher durchgehen. Wenn Sie also daran interessiert sind, ein R-Paket zu verschieben oder Ihren eigenen Algorithmus zu schreiben oder Ihren eigenen JSL-Code zu schreiben, |
| |
Sie haben eine Idee, wo Sie anfangen sollen. Und dann, wenn ich damit fertig bin, gehe ich auf mein Add-In ein und genauer, was es tut und wie es verwendet wird. |
| |
Wie lernt man JSL? Nun, du kannst wieder... |
| |
Sie können es durch eine Reihe von JMP-JSL-Ressourcen lernen, die ihnen zur Verfügung stehen. Sie haben also einen 864-seitigen Skript-Leitfaden, der hier verlinkt ist, |
| |
dass Sie Google können, oder Sie können diese Folien nach Abschluss dieses Vorgangs abrufen und diese Links abrufen. Es gibt einen Scripting-Index in JMP, den Sie einfach um Hilfe bitten und dann Scripting-Indexe erstellen können. Ich habe hier für euch, wirklich einfach zu bedienen und loszulegen. |
| |
Sie können sich an JMP wenden. Also hatte ich als erstes einen Kontakt bei JMP. Ihr Name ist Ruth Hummel und ich sagte, hey, ich will das machen, wo fange ich an? |
| |
Sie hat mich bei der Idee unterstützt und ermutigt. Sie fand es großartig und verband mich dann mit einem JSL-Code-Experten, |
| |
dessen Name ist Mark Bailey. Und Mark war während dieses ganzen Prozesses großartig. Mark half mir mit allgemeinem Support rund um die Skriptsprache, überprüfte meinen Code, half mir, Teile davon zu schreiben, |
| |
fangen Sie mit einem Teil davon an. Und wir nahmen ... wir gingen in den letzten Monaten ungefähr 22 Mal per E-Mail hin und her. Und |
| |
die Ressourcen, die mir JMP zur Verfügung gestellt hat, bis hin zu direkten Mitarbeitern, die bereit waren, mir bei meinem Projekt zu helfen |
| |
waren enorm. Ich meine, ich hätte mir nichts Besseres wünschen können. Ich meine, ich habe noch nie zuvor diese Art von Unterstützung erhalten, wenn ich versucht habe, etwas für eine andere Plattform zu erstellen. Also ein großes Lob an JMP für |
| |
dies bereitzustellen, und sie sind der Hauptgrund, warum dies existiert; es liegt daran, dass sie fantastische Ressourcen zur Verfügung gestellt haben. |
| |
Also community.jmp.com, du kannst dort Fragen stellen, du kannst Antworten bekommen, du kannst dir Code ausleihen, du kannst dich dort zertifizieren lassen |
| |
JMP-Skriptsprache. Sie können die Community nach allem durchsuchen, was Sie wollen, Sie können ... es ist wie bei Google, aber nur für JMP. |
| |
Und Sie können nach allem suchen, was Sie wollen, also können Sie JSL und JSL eingeben, was immer Sie tun möchten, und es ist wahrscheinlich jemand da draußen, der bereits darüber geschrieben hat. Wenn dies nicht der Fall ist, können Sie dies zum Diskussionsforum hinzufügen. |
| |
Und dann ist da noch das Ausleihen von Code, und das ist eines der Dinge, die Mark an mich weitergegeben hat, hey, Code ausleihen. Es gibt viel Code auf der Community-Website, |
| |
und die Leute haben es aus einem bestimmten Grund geteilt. Also ich... rechts hier ist eigentlich etwas, das ich mir für mein entwickeltes Add-In ausgeliehen habe. Ich wollte, dass die Benutzer wissen, wo sie sich befinden |
| |
in Bezug auf die Ausführung des Algorithmus und wie lange es dauern würde oder wie viele Fortschritte bereits gemacht wurden. |
| |
Und deshalb wollte ich keinen eigenen Fortschrittsbalken in JMP schreiben, also habe ich mir einfach einen aus dem Community-Board ausgeliehen und ihn direkt in mein Add-In eingefügt, also ja. |
| |
Diese Person, Craige Hales, ein pensionierter Mitarbeiter von JMP, hat diesen Code geschrieben und ich habe ihn mir ausgeliehen. Also danke, Craige; Danke, Mark für die Empfehlung, den Code auszuleihen. Es hat mir viel Zeit gespart, daher schätze ich es sehr und es hat das Add-In viel besser gemacht. |
| |
Kommen wir nun endlich zum Add-In. Also habe ich mit Ihnen darüber gesprochen, warum dieses Add-In benötigt wird, richtig. Andere haben von dem R-Paket Gebrauch gemacht und warum ich denke, dass JMP-Benutzer davon profitieren werden, und ich habe mit Ihnen darüber gesprochen, wie ich es gemacht habe. |
| |
Und jetzt möchte ich euch tatsächlich zeigen, wie es funktioniert, was hoffentlich der lustigste Teil der ganzen Sache ist. Also habe ich dieses ganze Paket, das R-Paket, in ein paar Monaten in meiner Freizeit am Freitag, die ich habe, zu JMP verschoben, also sind das am Freitag nur ein paar Stunden. Und das JMP-Add-In |
| |
funktioniert derzeit nur für lineare und logistische Regressionsmodelle. Ich hoffe, es später auf andere Modelle ausweiten zu können, aber im Moment funktioniert es für lineare und logistische Regressionsmodelle. Die andere Sache ist, dass das Add-In, |
| |
es hat nicht viel von dem ausgefallenen Schnickschnack, das alle anderen eingebauten JMP-Module haben, wissen Sie. Wenn Sie beispielsweise eine kategoriale Variable in die Antwortvariable einfügen, wechselt der Persönlichkeitstyp nicht automatisch zur logistischen Regression. |
| |
Dazu bin ich nicht gekommen. Es gibt viele andere Dinge, zu denen ich noch nicht gekommen bin und die ich hoffe, mit diesem Paket zu verbessern, wenn die Leute es verwenden und es entweder mögen und mir Feedback dazu geben. |
| |
Es fehlen also einige Funktionen. Und das Coole am Add-In-Manager ist, dass Sie einfach Ihren JSL-Code nehmen können und es gibt ein Add-In ... einen Add-In-Manager, JMP-Add-In, |
| |
mit dem Sie Ihr eigenes Add-In aus Ihrem JSL-Code erstellen können. Sie können Ihren JSL-Code also mit nur wenigen Klicks in ein Add-In umwandeln, das Sie mit der gesamten JMP-Community teilen können. |
| |
Und ich habe dies auf der Website community.jmp.com veröffentlicht, damit jeder auf das Add-In zugreifen kann, das ich Ihnen gleich zeigen möchte |
| |
und um auf den Datensatz zuzugreifen, den ich auch verwenden werde. Aber das funktioniert mit jedem Ihrer Datensätze, die Sie haben, nicht nur mit meinem Beispiel. |
| |
Ich werde Ihnen also ein Live-Tutorial dieses Add-Ins geben, das als ... das Add-In bezeichnet wird, ich habe es nur Interaktionen erkunden genannt, und |
| |
Dies wird jedoch alles über den Algorithmus der möglichen Lösung erfolgen, über den ich zuvor gesprochen habe. Das Beispiel ist ein lineares Modell |
| |
wo ich zwei Variablen fixieren werde, also wäre das mein Basismodell. Mein Basismodell hat eine kontinuierliche Antwortvariable und zwei Kovarianten, die ich anpassen möchte. |
| |
Und dann würde ich gerne Wechselwirkungen zweiter Ordnung berücksichtigen, um dieses Modell zwischen einer der 10 Variablen, die ich in meinem Datensatz habe, hinzuzufügen. |
| |
Und ich möchte fünf zufällige Starts machen, und ich möchte mein Kriterium sicherstellen, und dies ist derzeit das einzige Kriterium, das in die |
| |
JMP-Add-In besteht darin, dass wir den P-Wert der Interaktion minimieren möchten. Also jede dieser Interaktionen, die wir überprüfen |
| |
einen P-Wert produzieren und ich möchte, dass meine Lösungen die sind, die den haben |
| |
sehr kleine P-Werte. Es wird also den Raum auf der Grundlage des P-Werts der Interaktion durchsuchen und zu denjenigen gehen, die den besten Wert haben. Unsere Ergebnisse werden also viele Wechselwirkungen mit kleinen P-Werten haben. Und |
| |
normalerweise empfehle ich Ihnen, nachdem Sie diese Art von Verfahren durchgeführt haben, den praktikablen Lösungsalgorithmus, |
| |
Wenn Sie dies verfolgen, zeichnen Sie die Daten auf, betrachten Sie diese Interaktionen in Ihrem Modell und denken Sie kritisch über sie im Kontext nach, denn am Ende des Tages untersuchen wir die Daten hier. |
| |
Dies ist in keiner Weise folgerichtig. Wir verwenden nur das Signal der Daten, um zu bestimmen, welche Interaktionen in diesen Daten vorhanden sein könnten. |
| |
Und wieder werden die Daten und das Add-In auf der Community-Website veröffentlicht. |
| |
Okay, also höre ich auf, komm schnell hier raus und ich ziehe die |
| |
JMP-Datensatz, den ich habe. Hoffentlich könnt ihr das sehen. |
| |
Und wie Sie sehen können, nur eine wirklich schnelle Übersicht, das sind eigentlich alle eine Reihe von zufälligen Daten, die ich generiert habe. Das hat überhaupt keine wirkliche Struktur. Es gibt ... das sind keine echten Daten, sondern zufällig generierte Daten in JMP. |
| |
Es hat 20 Beobachtungen hier. Ich habe 10 kontinuierliche Variablen, erklärende Variablen. |
| |
Ich habe eine kontinuierliche Antwortvariable, und ich habe die Antwortvariable auch als entweder größer als null oder kleiner als null kategorisiert. |
| |
Wenn Sie sich also die logistischen Regressionsergebnisse ansehen möchten, können Sie auch ein logistisches Regressionsbeispiel mit den Daten durchführen. |
| |
Wenn Sie also das Add-In erhalten haben, gehen Sie auf die Website, laden Sie das Add-In herunter, doppelklicken Sie darauf und es wird direkt in JMP installiert. Es ist wirklich einfach. |
| |
Und dann können Sie einfach hierher gehen, also zum Add-In gehen, gehen ... sobald Sie Ihren Datensatz geöffnet haben, gehen Sie zum Add-In, um Interaktionen zu erkunden. |
| |
Und das wird hier auftauchen. Wir haben also ein paar Dinge. Wir sehen also alle unsere Variablen hier auf der linken Seite, genau wie Sie es mit jedem anderen Modul in JMP tun würden. |
| |
Also werde ich meine Antwortvariable auswählen, die Y sein wird, und dann werde ich korrigieren, also konstruiere ich hier mein Basismodell. Das sind also alle linearen Haupteffekte, die ich meinem Modell hinzufüge. In diesem habe ich also zwei Variablen, |
| |
X1 und X2, die ich hier hinzufügen werde. Jetzt müssen Sie unter anderem den Modellierungstyp angeben, also gibt es zwei Typen in my |
| |
Add-In, aus dem Sie wählen können. Einer ist der Standardmodellierungstyp der kleinsten Quadrate und einer ist der logistische Regressionstyp. |
| |
Und dies wird nicht automatisch, wie ich bereits sagte, basierend auf dem, was Sie hier eingegeben haben, auswählen, sodass Sie eine kategoriale Antwortvariable vollständig eingeben können und sie nicht wechseln wird. Sie müssen es selbst umstellen. Das ist einer dieser schicken Schnickschnack, hoffentlich komme ich später dazu. |
| |
Werd das Los. Setze das hier wieder ein. |
| |
In Ordnung, das ist also unser Setup, und so wird das Modell y gleich Beta null plus Beta eins X eins plus Beta zwei x zwei angepasst. Und jetzt hier unten werde ich die Variablen eingeben, die ich bereit bin |
| |
...oder ich möchte nach Wechselwirkungen zwischen diesen suchen, also wähle ich alle X1 bis X10 aus. Die werde ich noch hinzufügen. |
| |
Und dann sage ich ihm, okay, wie oft möchte ich den Algorithmus ausführen? Also hier werde ich aus Zeitgründen fünfmal machen, |
| |
und die Reihenfolge der zu berücksichtigenden Interaktionen, daher werde ich nur zwei tun. |
| |
Ich empfehle, drei oder weniger zu bleiben, es wird normalerweise viel schwieriger, Interaktionen zu interpretieren, die vierfach sind, fünffach, aber |
| |
der Algorithmus ... oder die Art und Weise, wie ich das eingerichtet habe, ist, dass Sie so hoch gehen können, wenn Sie möchten. Ich habe eigentlich keine Grenze gesetzt, aber ich weiß nur, je höher Sie hierher kommen, desto länger wird es dauern, bis Sie dies ausführen. |
| |
Also gehe ich auf Okay. Dies wird eine Sekunde dauern. |
| |
So können Sie den Code sehen, den ich ausgeliehen habe. |
| |
Sie können es hier sehen und es sagt mir, dass ich 20 % des Weges geschafft habe, 40 %. |
| |
Das sind also Lösungen. Jedes Mal, wenn diese Überprüfung voranschreitet, wird eine praktikable Lösung gefunden, und am Ende erscheint eine Datentabelle, also |
| |
Weißt du, dies ist keine dieser Funktionen ... Ich hätte gerne eine Auswahlbox, in der Sie die Interaktion auswählen und dann auf klicken können |
| |
Modell erstellen, und es würde all das für Sie tun, genau wie JMP es bereits für viele verschiedene Dinge tut, aber ich bin noch nicht dazu gekommen. Dies sagt Ihnen nur, was die Lösungen waren. |
| |
Es gibt Ihnen also eine Art Zusammenfassung dessen, was es getan hat. Also hat es fünf zufällige Starts gemacht. Es sagt Ihnen, was die Antwortvariable war, die festen Variablen, |
| |
die gefundenen Wechselwirkungsvariablen, okay, und das R-Quadrat, das angepasste R-Quadrat für dieses Modell, der quadratische Mittelwert des Fehlers und dann der P-Wert der Wechselwirkung. Okay, was wir hier sehen können, ist das |
| |
(Wenn ich darauf klicke, wird es mir angezeigt) Es gibt nur zwei Lösungen, also gibt es ... X2 X3 war eine Interaktion und X10 X7 war eine andere. |
| |
Und was ich jetzt tun kann, das werde ich jetzt nicht tun, ist, dieses Modell zu bauen und diese Ergebnisse zu reproduzieren und die Ergebnisse zu untersuchen, um zu sehen, okay, ist das eine gute Statistik? |
| |
Algorithmus ... oder gute statistische Interaktion, die ich hier gefunden habe? Wissen Sie, wie sehen meine Leverage Plots aus? Was sind alle meine unterschiedlichen Kriterien |
| |
Grundstücke aussehen? Und wie sehen meine Diagnoseplots aus? Diese Art von Dingen. Und dann kann ich anfangen, Fragen zu stellen, ob diese Interaktion in Bezug auf die Parameterschätzungen sinnvoll ist und so weiter? |
| |
Es ist explorativ, also wird es Ihnen mögliche Lösungen aufzeigen, aber Sie müssen dies mit der Due Diligence verfolgen und tatsächlich über die Ergebnisse nachdenken, die Sie erzielt haben |
| |
und stellen Sie Fragen an diejenigen, die Kontext- und Kontextexperten auf diesem Gebiet sind. So verwenden wir das normalerweise in den Gesundheitswissenschaften. Wir verwenden dies mit Gesundheitsdaten, wir produzieren Interaktionen, wir gehen dann zu den Ärzten, um zu sagen, ob das Sinn macht, dass dieser Effekt, |
| |
weißt du, wäre nicht über Alter oder Geschlecht oder was auch immer konsistent. Und sie werden normalerweise mit uns darüber reden, wissen Sie, denken Sie darüber nach. Die ganze Idee ist, dass dies hoffentlich zukünftige Studien beeinflussen wird, in denen wir die Studien antreiben können, um nach diesen Interaktionseffekten in mehr zu suchen |
| |
gut versorgter Weg. |
| |
Okay, also gehe ich jetzt zurück zu meinem PowerPoint. Das war also dieses Tutorial. Sie können sehen, es ist ziemlich einfach zu bedienen. Das war ein wirklich kleines Beispiel. Sie können das hochfahren, |
| |
Wissen Sie nur, je größer die Datensätze, die Sie haben, desto länger wird der gesamte Prozess, den ich gerade durchgeführt habe, dauern. Es wird keine 10 Sekunden lang sein; Es wird, |
| |
wissen Sie, möglicherweise 5-10 Minuten lang, je nachdem, wie groß Ihr Datensatz war. Ich habe getan ... den Algorithmus verwendet, das Add-In verwendet, um Datensätze mit 100 Variablen zu erstellen, |
| |
erklärenden Variablen, und es dauerte ungefähr so lange, ungefähr sieben Minuten, um es für ungefähr fünf oder zehn zufällige Starts auszuführen. |
| |
Die Dinge im R-Paket sind schneller als im JMP-Add-In, aber das liegt daran, dass dies mein erster Versuch ist, und hoffentlich durch Iterationen, die noch schneller und besser werden. |
| |
Sprechen wir also über zukünftige Verbesserungen. Ich möchte es den Benutzern ermöglichen, zu optimieren oder zu |
| |
machbare Lösungen finden, basierend auf beliebigen Kriterien, die sie wollen. Wenn sie also praktikable Lösungen finden möchten, die auf der Optimierung von R zum Quadrat oder der Optimierung von AIC oder der Optimierung der Fehlklassifizierungsrate basieren, |
| |
Wissen Sie, in logistischen Regressionsmodellen möchte ich ihnen die Möglichkeit geben, dies zu tun. Und es ist wirklich nicht so schwer, ich muss nur reingehen und es tun. |
| |
Automatisches Speichern oder Auswählen von Modellierungspersönlichkeiten basierend auf der variablen Auswahl. Das ist einfach. Du hast ein |
| |
binäre logistische Variable, sie wird automatisch die logistische Regression für Sie auswählen. Ich denke nicht, dass das wahrscheinlich super schwer ist, das könnte ich wahrscheinlich ziemlich schnell tun. Ich bin zuversichtlich, dies zu tun, nachdem ich diesen Prozess des Verschiebens meines R-Pakets durchlaufen habe. |
| |
Ich möchte die Geschwindigkeit etwas verbessern. Es gibt viele Dinge, die ich tun könnte, um die Geschwindigkeit zu verbessern. |
| |
Also, ich möchte das gerne können. Eine Rückruftaste wäre schön. Das habe ich jetzt nicht. Eine meiner Lieblingsfunktionen in JMP ist die Möglichkeit, auf diese Rückrufschaltfläche zu klicken. |
| |
Und dann würde ich gerne in der Lage sein, den Übergang von den Ergebnissen, die Sie von der FSA erhalten haben, zum Erstellen eines Modells zu rationalisieren. So |
| |
Sie können dies bereits tun, z. B. wenn Sie die Vorwärtsauswahl in JMP oder Lasso oder einem dieser Dinge durchführen, können Sie einfach auf Modell erstellen klicken und alle Variablen werden super einfach übertragen. |
| |
Ich würde das gerne mit diesem praktikablen Lösungsalgorithmus tun können, erhalten Sie einfach diese Art von Ergebnissen und klicken Sie einfach auf das Modell erstellen und es erledigt automatisch alles für Sie |
| |
damit Sie sie erkunden können und hoffentlich wieder einen guten Sinn für die gefundenen Interaktionen haben. |
| |
Also einige Danksagungen, die ich durchgehen möchte. Also zuerst Mark Bailey. Ohne dich hätte ich es nicht geschafft. Vielen Dank für Ihre Unterstützung mit dem JSL-Code. Danke an Ruth |
| |
dafür, dass ich nur mit Mark in Kontakt gekommen bin und einfach nur ein General bin, weißt du, |
| |
Unterstützungsperson für dieses Projekt und einfach nur gutes Feedback geben. Anne und Larry, ich weiß es einfach zu schätzen |
| |
Ihre Hilfe bei allen Dingen, die mit JMP und unseren früheren Beziehungen zu tun hatten, und dafür, dass Sie mich ermutigt haben, diesen Discovery Summit zu machen. Es war wirklich großartig und ich freue mich, mehr Leute in der JMP-Community zu treffen |
| |
durch, also danke dafür. Sie können auf verschiedenen Wegen mit mir in Kontakt treten. Sie können mir eine E-Mail an meine Universitäts-E-Mail senden, Sie können mich auf Twitter kontaktieren, wenn Sie das so machen möchten. |
| |
Und ich plane auch, dieses JMP-Add-In auf github sowie auf der Community-Website zu veröffentlichen, also schauen Sie bitte an diesen Orten nach zukünftigen Updates des Add-Ins. |
| |
Also ja, vielen Dank, dass Sie mich haben, und ich freue mich, Ihre Fragen während unserer Zeit zu beantworten, danke. |