|
Lautsprecher
|
Transkript
|
| Joshua W Lambert |
Hallo. |
| ROBYN GODFREY |
hallo, ich bin Robin, Josh. |
| |
Ja. |
| ROBYN GODFREY |
Der Neo. |
| Joshua W Lambert |
ja, freut mich auch, Sie kennenzulernen. Tut mir leid, ich öffne hier gerade erst die PowerPoint-Präsentation. |
| ROBYN GODFREY |
Okay. |
| |
Haben Sie Co-Moderatoren? |
| Joshua W Lambert |
NEIN. |
| ROBYN GODFREY |
Also gut, ich gehe einfach die Liste hier durch. Wir zeichnen das auf, also bestätigen Sie mir mündlich, dass Sie wissen, dass Sie aufgezeichnet werden. |
| |
Ja. |
| ROBYN GODFREY |
Internetbenachrichtigungen auf Mobiltelefonen werden stummgeschaltet. |
| Joshua W Lambert |
Ja. |
| ROBYN GODFREY |
ja, ich glaube, ich bin so wie die Windows-Taskleiste und all das, und sicher ist, dass Ihre E-Mails mittendrin losgehen. |
| Joshua W Lambert |
Und ich glaube, ich habe alles ausgeschaltet, das mussten sie noch nie zuvor tun. |
| ROBYN GODFREY |
Ich glaube, es ist in der Taskleiste, ähm. |
| |
mal sehen. |
| |
Schließen Sie einfach Ihre E-Mail und alles ist okay. |
| |
Okay. |
| Joshua W Lambert |
habe die Tacos bekommen. |
| ROBYN GODFREY |
Okay, super, ich werde mich hier verstecken. |
| |
Um dies zu tun, muss ich jedes Mal, wenn ich das tue, sagen: „Okay, was habe ich getan?“ |
| Joshua W Lambert |
Also dann. |
| |
Was die Präsentation angeht, schätze ich, dass ihr abbricht, wenn ich anfange. |
| |
ja, und wenn Sie Fragen haben, die Sie stellen möchten oder ... |
| ROBYN GODFREY |
Nein, nein, Sie machen also einfach Ihre Präsentation, wie Sie es normalerweise tun würden. |
| |
richtig, und Sie wissen schon, Sie bringen einfach Ihre Folien und alles hoch. |
| |
Wenn Sie zuerst sprechen und dann Ihre Folien anzeigen möchten, ist das in Ordnung. Wenn Sie von vorne beginnen müssen oder etwas in der Art, sagen Sie mir einfach Bescheid, und wir können das ohne große Sache erledigen. |
| |
Okay, Sie machen einen kleinen Clip, als wären Sie die Kamera. Gibt es eine Möglichkeit, ein wenig zurückzufahren, weil Sie ja wirklich nah dran sind? |
| |
Ich kann nicht einmal dein ganzes Gesicht sehen, ich kann sehen. |
| Joshua W Lambert |
zu wissen, dass ich es vergessen habe. |
| ROBYN GODFREY |
ja, nur ein bisschen. |
| |
Oder senken Sie Ihre Kamera vielleicht einfach ein wenig ab. |
| |
Das ist gut. |
| |
das ist gut, ja, wir können mehr von deinen Schultern und so sehen, okay. |
| |
Ich schalte jetzt den Ton aus. Geben Sie mir einfach ein paar Sekunden Zeit und dann können Sie. |
| |
fang an, wenn du bereit bist, okay. |
| |
Großartig. |
| Joshua W Lambert |
Hallo zusammen. Mein Name ist Josh Lambert. Ich bin Assistenzprofessor an der Universität von Cincinnati und seit etwa 10 Jahren JMP-Benutzer. |
| |
Und ich freue mich, Ihnen einige meiner Arbeiten zur Untersuchung von Interaktionen in Regressionsmodellen vorstellen zu können. Dazu verwende ich ein Add-In, das einen von mir entwickelten Algorithmus namens „Positive Solution Algorithm“ verwendet. |
| |
Also |
| |
einige Inhalte, über die wir heute sprechen werden. Ich werde also mit einem kleinen Beispiel beginnen, das unsere Diskussion anregen wird, und auch mit dem, woran ich gearbeitet habe, einem Überblick über das Problem. |
| |
Eine mögliche Lösung. |
| |
Und dann erkläre ich, wie ich die Lösung in ein R-Paket implementiert und dann in ein JMP-Add-In verschoben habe und welchen Prozess ich dabei durchlaufen habe. Und dann spreche ich über einige zukünftige Vorhaben und einige Dinge, die ich dabei gelernt habe. |
| |
Lassen Sie uns unsere heutige Diskussion mit einem kleinen Beispiel anregen. Ich nenne ihn Tom, den Datenwissenschaftler. Lernen Sie Tom kennen. Er ist Datenwissenschaftler und führt viele typische Datenwissenschaftsaktivitäten durch. Insbesondere erstellt Tom multivariable Regressionsmodelle in JMP. |
| |
Er beschäftigt sich hauptsächlich mit tabellarischen Daten mit vielen Variablen und Tom ist sich bewusst, dass diesen multivariablen Regressionsmodellen die Komplexität fehlt, insbesondere dass es ihnen an Interaktionstermen und quadratischen Termen mangelt. |
| |
Und Tom ... das frustriert Tom, und Tom möchte nicht gleich mit maschinellem Lernen beginnen. |
| |
Daher wünschte er, er hätte eine Möglichkeit, Interaktionseffekte in seinen Regressionsmodellen zu untersuchen. |
| |
Er möchte Interaktionen testen, müsste diese aber manuell in die Fit-Model-Plattform in JMP integrieren. |
| |
Und Sie wissen, dass es sehr viel Zeit in Anspruch nehmen wird, all diese Tests durchzuführen. Wenn Tom beispielsweise 200 Variablen in seinem Datensatz hat und nach allen wechselseitigen Interaktionen suchen muss, sind das 19.900 wechselseitige Interaktionen, die überprüft werden müssen. Das sind ein paar zu viel. |
| |
Daher fragt sich Tom, ob es eine algorithmische und datengesteuerte Möglichkeit gibt, Interaktionseffekte in Regressionsmodellen zu untersuchen, ohne sie alle manuell erstellen und alle diese möglichen Kombinationen überprüfen zu müssen. |
| |
Lassen Sie uns dieses Problem also etwas genauer mathematisch und statistisch betrachten. Wir haben es hier also mit einem Volumen- und Komplexitätsproblem zu tun. |
| |
Also Volumen und Komplexität |
| |
wird weiterhin sehr schnell wachsen. Uns stehen ständig immer mehr Daten zur Verfügung und die Komplexität dieser Daten nimmt ebenfalls zu. |
| |
Das Problem bei Interaktionen besteht darin, dass es einfach zu viele davon gibt, um sie zu überprüfen. |
| |
Normalerweise muss ein Datenwissenschaftler, Statistiker oder Wissenschaftler mit einem bekannten Satz von Interaktionen in die Analyse einsteigen, um zu überprüfen |
| |
und dann weiter, um sie zu überprüfen. Dies ist aus mehreren Gründen ein Problem. |
| |
Das sind die Gründe, warum Sie möglicherweise keine genaue Vorstellung davon haben, welche Interaktionen existieren oder nicht, und Sie diese gerne in Ihren Daten untersuchen möchten. |
| |
ohne auf Modelle wie Random Forest oder sogar Hauptkomponentenanalyse zurückgreifen zu müssen, um eine Art Datenreduktion durchzuführen und dort etwas mehr Komplexität zu erzielen. Sie möchten wirklich in der Lage sein, Dinge nebenbei zu tun, während Sie ein Regressionsmodell erstellen. |
| |
Das andere Problem mit Random Forest- und Hauptkomponentenmodellen sowie anderen Aufgabentypen des maschinellen Lernens besteht darin, dass diese Dinge häufig schwer zu interpretieren sind. Wir möchten hinzufügen, dass die Interpretierbarkeit von Regressionsmodellen erhalten bleibt, während wir Interaktionen untersuchen. |
| |
Unser typischer Workflow bei der Regression |
| |
Der Statistiker verbringt also viel Zeit mit dem Aufbau eines sparsamen, wie ich es nenne, Basismodells mit den erforderlichen Variablen und ohne hinzugefügte Interaktionseffekte. |
| |
Der Statistiker wird sehr viel Zeit auf dieses Basismodell verwenden, viele Ressourcen aufwenden, sorgfältig sein und darüber nachdenken, ob die Modelle interpretierbar sind und ob sie im Kontext Sinn ergeben. |
| |
Das Problem mit diesen Basismodellen, die die Komplexität nicht berücksichtigen, besteht darin, dass sie davon ausgehen, dass die Effekte … dass die Effekte, die sie schätzen, für alle möglichen Untergruppen wie Geschlecht, Rasse, Alter konsistent sind, und das ist in der Regel einfach nicht wahr. |
| |
Dieser Mangel an Komplexität |
| |
hindert die Leute wirklich daran, es zu verwenden, im Vergleich zu beispielsweise einem maschinellen Lernmodell, das diese Komplexität wirklich gut modelliert. Das Problem kann also wirklich wie folgt zusammengefasst werden. |
| |
Gibt es eine Möglichkeit, dass wir nicht den ganzen Weg zu traditionellen multivariablen Regressionsmodellen und nicht den ganzen Weg zu maschinellen Lernmodellen gehen können, |
| |
aber einen schönen Sweet Spot in der Mitte finden, wo wir in der Lage sind, die gute Interpretierbarkeit unserer Regressionsmodelle zu nutzen, die eine oder zwei Interaktionen hinzufügen |
| |
die wir in diesen Big Data gefunden haben, sodass wir unseren Modellen interessante Nuancen und Komplexität hinzufügen können, die wiederum die Vorhersageleistung sowie ein gutes Gespür für den Kontext verbessern. |
| |
Wenn es also eine Möglichkeit gibt, dies zu tun, würden wir wirklich gerne ein Tool für Statistiker, Datenwissenschaftler und Ermittler entwickeln, mit dem sie die Interaktionen untersuchen können, nachdem sie ein Basismodell erstellt haben. |
| |
Zuerst wird das Basismodell erstellt, und anschließend erfolgt normalerweise die Erkundung der Komplexität. |
| |
Wir haben also einige Einschränkungen und Präferenzen, wenn wir ein solches Tool entwickeln würden. Wir möchten, dass es basierend auf traditionellen statistischen Modellen eine lineare logistische Regression gibt, |
| |
wir möchten, dass sie interpretierbar bleiben. Wir möchten möglichst weniger Modelle prüfen und bevorzugen machbare Modelle gegenüber optimalen. Ich werde später noch etwas genauer darauf eingehen, was das bedeutet, aber im Wesentlichen bedeutet es Folgendes: |
| |
wir möchten, dass es eine Vielzahl von Lösungen gibt und nicht nur eine einzige, die gut und, wie wir sagen, machbar ist. |
| |
Und wir möchten auch, dass es flexibel ist. Es könnte angepasst werden, um mit linearer Regression, logistischer Regression und Cox-proportionaler Regression arbeiten zu können. Wir könnten es für Poisson-Regression verwenden, für jede Art von Regression könnte dieses Framework oder Tool verwendet werden. |
| |
Und wieder wird es eine Mischung aus traditionellen statistischen Methoden und maschinellem Lernen sein. Die Ergebnisse werden nicht unbedingt inferenzieller Natur sein, sondern explorativer Natur und sie werden uns motivieren und beeinflussen, womit wir in Zukunft unsere Zeit verbringen. |
| |
Sprechen wir jetzt über diese mögliche Lösung, den Algorithmus für realisierbare Lösungen. |
| |
Der Algorithmus... der Algorithmus für mögliche Lösungen, manchmal FSA genannt, oder so nenne ich ihn gerne, |
| |
wurde erstmals in diesem Artikel besprochen … wirklich erstmals ausführlich in diesem Artikel besprochen, den ich 2018 geschrieben habe. |
| |
Und |
| |
Ich werde hier zusammenfassen, was der Algorithmus macht. |
| |
Das Ziel des Algorithmus ist es also, Interaktionen der Ordnung m zu identifizieren (das heißt, wenn m 2 wäre, wäre das eine Zwei-Wege-Interaktion; wenn m 3 wäre, wäre das eine Drei-Wege-Interaktion), |
| |
mit einem durchführbaren Kriterium, also ein Kriterium, das nicht unbedingt das beste Kriterium ist, aber es ist ein |
| |
Kriterium, das |
| |
vielleicht in gewisser Weise als semioptimal angesehen. |
| |
Um dies zu tun, befolgen wir die folgenden Schritte. Als erstes beginnen wir mit einer zufälligen Interaktion der Ordnung m. Nehmen wir für unseren Fall an, dass es sich um eine wechselseitige Interaktion handelt, also ist m gleich 2. |
| |
Wir werden alle Austauschvorgänge einer der Variablen und die Interaktion für alle anderen Variablen berücksichtigen. Nehmen wir beispielsweise an, wir starten es zufällig. |
| |
Wir haben fünf Variablen, das ist also nur ein kleines Beispiel, um die Schritte hier zu motivieren. Nehmen wir jedoch an, wir haben fünf Variablen und beginnen zufällig bei X3, X5 und unser Kriterium, nämlich R-Quadrat für diesen zufälligen Startpunkt, beträgt 0,5. |
| |
Und sagen wir, der Algorithmus funktioniert so, dass er den Austausch einer der Variablen, X3 oder X5, gegen eine der anderen in Betracht zieht. Unsere Auswahlmöglichkeiten 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 sie nenne, Swaps mindestens eine der Startplatzvariablen enthalten ist, okay? |
| |
Und dann werden wir diese Modelle anpassen und herausfinden, was die Kriterien für diese Modelle sind. Was wir hier sehen können, ist, dass |
| |
für das Modell X3 X5 haben wir 0,5; für X3 X1 ist das Kriterium 0,4. |
| |
Und was R² angeht, wollen wir offensichtlich nicht an einen schlechteren Ort, sondern an einen besseren Ort, mit einem höheren R², also würden wir aus allen Möglichkeiten herausfinden, welcher Ort der beste ist. |
| |
In diesem Beispiel ist der beste Ort Tausch Nummer drei, also X3 X4. Wir würden also mit Schritt drei fortfahren und den besten Tausch aus Schritt Nummer zwei vornehmen. |
| |
In diesem Fall würden wir zu den Positionen X3 und X4 wechseln und dann zu Position zwei zurückkehren und den Vorgang wiederholen, bis keine Verbesserungen mehr möglich sind. |
| |
Also würden wir diesen Prozess wiederholen, zu den Orten gehen, dort beginnen und alle Austauschmöglichkeiten in Betracht ziehen, bis wir schließlich keine Verbesserung mehr erzielen können. |
| |
Und wir werden das dort nennen, wo wir am Ende eine praktikable Lösung finden. |
| |
Und wir werden die Schritte eins bis vier wiederholen, um andere mögliche Lösungen zu finden. Wir können das immer wieder tun, und dieser Prozess, dieser Algorithmus für mögliche 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, des Algorithmus für mögliche Lösungen. Und diese werden in einem Artikel beschrieben, der |
| |
Elliott, eine Kollegin von mir, schrieb im Jahr 2021, wo sie beschreibt, dass es keine Garantie dafür gibt, dass realisierbare Lösungen, wie ich gerade sagte, für ein gewähltes Kriterium optimal sind. |
| |
Und das heißt, dass alle optimalen Lösungen realisierbar sind, aber nicht alle realisierbaren Lösungen optimal sind. Realisierbare Lösungen sind also eine Art semioptimale Lösung, sie liefern Ihnen gute Kriterien, realisierbare Kriterien, aber nicht unbedingt optimale. |
| |
Diese Kriterien für mögliche Lösungen liegen jedoch normalerweise sehr nahe an den optimalen, sodass sie in der Regel ziemlich gut sind. Sie sind möglicherweise nur nicht so gut wie die beste Lösung. |
| |
Viele... wenn Sie den Vorgang wiederholen, diese... diese vier Schritte, werden Sie möglicherweise viele mögliche Lösungen erhalten. Wenn Sie diesen Algorithmus also zehnmal ausführen, erhalten Sie möglicherweise vier mögliche Lösungen. |
| |
Sie erhalten möglicherweise 10 mögliche Lösungen. Dies hängt von den Daten ab, die Sie verwenden, sowie von der Varianz der Kovarianz dieses Datensatzes. Es ist also ein wenig |
| |
Sie sind sich nicht sicher, wie viele Lösungen Sie erhalten werden. |
| |
Und deshalb ermutigen wir Benutzer normalerweise, den Algorithmus für mögliche Lösungen viele Male zu wiederholen, denn das erhöht Ihre Chancen, sowohl die optimalen als auch die möglichen Lösungen zu erhalten, und stellt sicher, dass Sie |
| |
den Raum ausreichend durchsucht. Und wir haben ein weiteres Papier veröffentlicht, 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 angemessene Wahrscheinlichkeit habe, die optimale zu erhalten. Wir haben eine |
| |
auch theoretische Abhandlung darüber. |
| |
Aber im Grunde funktioniert das so, dass manche dieser Interaktionen attraktiver sind. Der Beta-Raum zieht sie mehr an als andere, und so kommt es manchmal vor, dass, obwohl |
| |
eine Interaktion nicht optimal ist, kann sie manchmal dazu führen...die Daten können oft dazu führen |
| |
Der Algorithmus für eine mögliche ... mögliche Lösung kann Sie oft häufiger an diesen Ort führen als der optimale, und das hat einfach damit zu tun, wie die Daten korreliert sind und so weiter. |
| |
Sprechen wir also über das R-Paket und dann darüber, wie ich es in das JMP-Add-In verschoben habe. |
| |
Also |
| |
Das R-Paket heißt rFSA, und ich weiß, dass es einige Leute gibt, die R sehr häufig verwenden, und einige, die das nicht tun. Und |
| |
R ist eine wirklich schöne Programmiersprache und wird oft in Statistikprogrammen gelehrt. Daher war es der erste Ort, an den ich sofort ging, als ich an meiner Dissertation arbeitete. |
| |
um diesen Algorithmus aufzuschreiben und der Community wirklich ein Werkzeug an die Hand zu geben, mit dem sie Interaktionen in ihren eigenen Datensätzen erkennen und untersuchen kann. |
| |
Und so implementiert das rFSA-Paket diesen Algorithmus für eine mögliche Lösung, ü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 |
| |
Interaktion, P-Wert usw. und so weiter. Außerdem unterstützt es verschiedene Modellierungsstrategien, wie lineare Modelle und verallgemeinerte lineare Modelle, und kann leicht an andere Modellierungstypen angepasst werden, beispielsweise an Cox-proportionale Risikomodelle. |
| |
Und es bietet auch mehrere Lösungen, da es den Algorithmus so oft wiederholt, wie Sie 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 sprechen, warum ich das tun wollte. |
| |
Die erste Frage ist also, warum ich das mache. Erstens macht es Spaß. Ich schreibe gerne in verschiedenen Programmiersprachen. Ich hatte nicht viel Erfahrung mit dem Schreiben in der Skriptsprache JMP, der JMP-Version von |
| |
statistische Programmiersprache, und deshalb wollte ich das lernen und ich dachte, es würde Spaß machen, dieses R-Paket, an dem ich den größten Teil von vier Jahren gearbeitet hatte, zu JMP zu übertragen, weil |
| |
Ich mag JMP wirklich. 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 untersuche die Daten, ich zeichne die Daten auf, ich schaue mir Dinge an und dann bekomme ich eine gute Intuition über diese Daten. Und ich habe festgestellt, dass viele meiner |
| |
Kollegen, insbesondere einer meiner Berater, arbeitet hauptsächlich mit JMP und hat mich immer nach dem FSA-Paket in JMP gefragt. |
| |
Und so dachte ich, warum es ihm nicht geben? Er hat es sicherlich verdient, also entschied ich, dass das ein gutes Werkzeug wäre und dass hoffentlich auch andere Leute es tun würden. |
| |
Nutzen Sie es. Und das führt mich zu meinem anderen Punkt, warum man das tun sollte. Ich habe eine Menge großartiges Feedback zu rFSA bekommen. |
| |
Insbesondere habe ich verfolgt, wie viele Leute mein R-Paket heruntergeladen haben, und seit wir es 2019 veröffentlicht haben, sind es über 16.000 Leute, die es heruntergeladen haben. |
| |
Ich habe zahllose E-Mails von Leuten aus aller Welt bekommen und möchte, dass dasselbe auch für Leute in JMP zugänglich ist. Außerdem hoffe ich, dass die Leute durch dieses Add-In wirklich coole Interaktionen finden, die die Art und Weise verändern, wie sie Daten interpretieren und verstehen. |
| |
Und dann fragen Sie sich vielleicht: „Wann habe ich das gemacht?“ Das ist nicht unbedingt etwas, wofür mich jemand bezahlt. Wissen Sie, JMP bezahlt mich nicht dafür. |
| |
Ich denke zwar, dass sie meine derzeitige Position interessant finden würden, aber sie sind wahrscheinlich nicht gerade begeistert davon, dass ich dafür jede Menge zusätzliche Zeit aufwende. |
| |
Aber zum Glück habe ich in meiner Position etwas Freizeit am Freitag. Ich versuche, mir den Freitagnachmittag oder Freitagmorgen freizuhalten, um einfach Spaß zu haben, |
| |
lustige Dinge, die mit meinem Job zu tun haben. Und ich nenne es „Fun Friday Free Time“, und genau das habe ich in den letzten Monaten beschlossen: Ich habe meine „Fun Friday Free Time“ genutzt, um ein JMP-Add-In zu erstellen. |
| |
Sie fragen sich vielleicht, wie ich das machen sollte? Ich kannte die Skriptsprache JMP nicht. Wie sollte ich das anstellen? |
| |
Das Erste ist, wissen Sie, ich wollte es lernen. Es gibt also viele wirklich tolle Ressourcen zum Erlernen von JSL. |
| |
Es gibt also JMP JSL-Code-Unterstützung, die innerhalb der eigentlichen JMP-Software selbst enthalten ist. Gehen Sie einfach auf Hilfe, Sie können direkt... direkt in |
| |
der Scripting-Index, der da ist. Es gibt unzählige Dinge, die online sind |
| |
Informationen zum Verständnis der JMP-Skriptsprache und zum Einstieg. Und dann gibt es noch community.jmp.com, |
| |
Das ist wirklich toll für den Einstieg. Sie können Fragen stellen oder andere Fragen ansehen, die andere Leute gestellt haben, und den Code ausleihen, den sie dort öffentlich gepostet haben, damit andere ihn genießen können. Und ich habe das hier mehrmals gemacht, und es war wirklich toll. |
| |
Ich werde also auf jeden dieser Punkte etwas ausführlicher eingehen, falls Sie daran interessiert sind, ein R-Paket zu übertragen oder Ihren eigenen Algorithmus oder Ihren eigenen JSL-Code zu schreiben, |
| |
Sie haben eine Vorstellung davon, wo Sie anfangen können. Und wenn ich damit fertig bin, gehe ich auf mein Add-In ein und erkläre insbesondere, was es tut und wie man es verwendet. |
| |
Wie lernt man also JSL? Nun, das können Sie wieder... |
| |
Sie können es durch eine Reihe von JSL-Ressourcen lernen, die JMP zur Verfügung stellt. Sie haben beispielsweise einen Skriptleitfaden mit 864 Seiten, der hier verlinkt ist. |
| |
die Sie googeln können, oder Sie können diese Folien vielleicht später abrufen und diese Links erhalten. Es gibt einen Skriptindex in JMP, in dem Sie einfach auf „Hilfe“ und dann auf „Skriptindizes“ klicken können. Ich habe ihn hier für Sie zusammengestellt, er ist wirklich einfach zu verwenden und lässt sich leicht einführen. |
| |
Sie können JMP kontaktieren. Als erstes habe ich eine Kontaktperson bei JMP gefunden. Ihr Name ist Ruth Hummel und ich sagte: „Hey, ich möchte das machen, wo fange ich an?“ |
| |
Sie unterstützte mich und ermutigte mich bei der Idee. Sie fand sie großartig und brachte mich dann mit einem JSL-Code-Experten in Kontakt. |
| |
dessen Name Mark Bailey ist. Und Mark war während des gesamten Prozesses großartig. Mark half mir mit allgemeiner Unterstützung bei der Skriptsprache, überprüfte meinen Code, half mir beim Schreiben von Teilen davon, |
| |
fang mit einem Teil davon an. Und wir haben... wir haben in den letzten Monaten ungefähr 22 Mal per E-Mail hin- und hergeschrieben. Und |
| |
die Ressourcen, die mir JMP zur Verfügung gestellt hat, in Bezug auf direkte Mitarbeiter, die bereit waren, mir bei meinem Projekt zu helfen |
| |
waren großartig. 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, als ich versuchte, etwas für eine andere Plattform zu erstellen. Also ein großes Lob an JMP für |
| |
Sie stellen dies zur Verfügung und sind der Hauptgrund für die Existenz dieser Plattform: Sie haben fantastische Ressourcen bereitgestellt. |
| |
Auf community.jmp.com können Sie Fragen stellen und Antworten erhalten, Sie können Code ausleihen und sich zertifizieren lassen. |
| |
JMP-Skriptsprache. Sie können die Community nach allem durchsuchen, was Sie möchten. Es ist wie Google, aber nur für JMP. |
| |
Und Sie können nach allem suchen, was Sie möchten. Sie können also JSL und JSL eingeben, was immer Sie tun möchten, und wahrscheinlich gibt es da draußen jemanden, der bereits etwas dazu gepostet hat. Wenn nicht, können Sie es dem Diskussionsforum hinzufügen. |
| |
Und dann gibt es noch das Ausleihen von Code. Und das ist eines der Dinge, die Mark mir mitteilte: hey, leiht euch Code aus. Es gibt da draußen auf der Community-Website eine Menge Code. |
| |
und die Leute haben es aus einem bestimmten Grund geteilt. Also, hier rechts ist eigentlich etwas, das ich für mein Add-In ausgeliehen habe, das ich entwickelt habe. Ich wollte, dass die Benutzer wissen, wo sie waren |
| |
in Bezug auf die Ausführung des Algorithmus und wie lange es noch dauern würde oder wie viele Fortschritte bereits erzielt worden waren. |
| |
Und da ich keinen eigenen Fortschrittsbalken in JMP schreiben wollte, habe ich einfach einen vom 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 den Vorschlag, mir den Code auszuleihen. Es hat mir viel Zeit gespart, ich weiß es wirklich zu schätzen und es hat das Add-In viel besser gemacht. |
| |
Lassen Sie uns nun endlich über das Add-In sprechen. Ich habe Ihnen also erklärt, warum dieses Add-In benötigt wird. Andere haben das R-Paket genutzt und ich denke, dass JMP-Benutzer davon profitieren werden. Und ich habe Ihnen erklärt, wie ich es gemacht habe. |
| |
Und jetzt möchte ich Ihnen zeigen, wie es funktioniert, was hoffentlich der unterhaltsamste Teil der ganzen Sache ist. Ich habe also dieses ganze Paket, das R-Paket, in ein paar Monaten in meiner Freizeit, die ich am Freitag habe, auf JMP übertragen, also nur ein paar Stunden am Freitag. 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 verfügt nicht über viele der tollen Extras, die alle anderen integrierten JMP-Module haben, wissen Sie. Wenn Sie beispielsweise eine kategorische Variable in die Antwortvariable einfügen, wechselt der Persönlichkeitstyp nicht automatisch zur logistischen Regression. |
| |
Dazu bin ich noch nicht gekommen. Es gibt noch viele andere Dinge, zu denen ich noch nicht gekommen bin und die ich mit diesem Paket verbessern möchte, wenn die Leute es verwenden, es ihnen gefällt 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, ein JMP-Add-In, |
| |
Damit können Sie aus Ihrem JSL-Code Ihr eigenes Add-In erstellen. Mit ein paar einfachen Mausklicks können Sie Ihren JSL-Code 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 dort auf das Add-In zugreifen kann, das ich Ihnen gleich zeigen werde. |
| |
und um auf den Datensatz zuzugreifen, den ich ebenfalls verwenden werde. Aber das funktioniert mit allen Ihren Datensätzen, nicht nur mit meinem Beispiel. |
| |
Ich werde Ihnen also ganz schnell ein Live-Tutorial zu diesem Add-In geben, das... das Add-In, ich habe es einfach „Erkunden von Interaktionen“ genannt, und |
| |
Dies alles wird jedoch über den Algorithmus für mögliche Lösungen erledigt, über den ich zuvor gesprochen habe. Das Beispiel ist ein lineares Modell |
| |
wo ich zwei Variablen fixieren werde, das wäre also mein Basismodell. Mein Basismodell wird eine kontinuierliche Antwortvariable und zwei Kovarianten haben, die ich anpassen möchte. |
| |
Und dann möchte ich Interaktionen zweiter Ordnung in Betracht ziehen, um sie diesem Modell zwischen den 10 Variablen in meinem Datensatz hinzuzufügen. |
| |
Und ich möchte fünf zufällige Starts durchführen, und ich möchte sicherstellen, dass mein Kriterium, und dies ist derzeit das einzige Kriterium, das in das |
| |
JMP-Add-In, ist, dass wir den P-Wert der Interaktion minimieren möchten. Jede dieser Interaktionen, die wir überprüfen, |
| |
einen P-Wert erzeugen und was ich tun möchte, ist, dass meine Lösungen diejenigen sind, die |
| |
sehr kleine P-Werte. Es wird also den Raum basierend auf dem P-Wert der Interaktion durchsuchen und zu denen mit dem besten P-Wert gehen. Unsere Ergebnisse werden also viele Interaktionen mit kleinen P-Werten enthalten. Und |
| |
Normalerweise empfehle ich nach dieser Vorgehensweise den Algorithmus für mögliche Lösungen. |
| |
ist, dass Sie anschließend die Daten grafisch darstellen, die Interaktionen in Ihrem Modell betrachten und im Kontext kritisch darüber nachdenken, denn letztendlich untersuchen wir hier die Daten. |
| |
Dies ist in keiner Weise eine Schlussfolgerung. Wir verwenden lediglich das Signal der Daten, um festzustellen, welche Interaktionen in diesen Daten vorhanden sein können. |
| |
Und noch einmal: Die Daten und das Add-In werden auf der Community-Website veröffentlicht. |
| |
Okay, ich werde jetzt aufhören, schnell hier rauskommen und dann die |
| |
JMP-Datensatz, den ich habe. Hoffentlich könnt ihr das sehen. |
| |
Und wie Sie sehen können (nur ein wirklich kurzer Überblick), handelt es sich hier eigentlich um eine Reihe zufälliger Daten, die ich generiert habe. Das hat überhaupt keine wirkliche Struktur. Das sind ... keine echten Daten, sondern nur zufällig in JMP generierte Daten. |
| |
Es gibt hier 20 Beobachtungen. Ich habe 10 kontinuierliche Variablen, erklärende Variablen. |
| |
Ich habe eine kontinuierliche Antwortvariable und habe die Antwortvariable außerdem als größer als Null oder kleiner als Null kategorisiert. |
| |
Wenn Sie sich also die Ergebnisse der logistischen Regression ansehen möchten, können Sie mit den Daten auch ein Beispiel für eine logistische Regression durchführen. |
| |
Sobald Sie das Add-In 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 hierhin gehen, also gehen Sie zum Add-In, gehen Sie... sobald Sie Ihren Datensatz geöffnet haben, gehen Sie zum Add-In, um Interaktionen zu erkunden. |
| |
Und das hier wird angezeigt. Wir haben also ein paar Dinge. Wir sehen also alle unsere Variablen hier links, genau wie bei jedem anderen Modul in JMP. |
| |
Und so wähle ich meine Antwortvariable, die Y sein wird, und dann werde ich sie korrigieren, also konstruiere ich hier mein Basismodell. Das sind also alle linearen Haupteffekte, die ich meinem Modell hinzufüge. In diesem hier habe ich also zwei Variablen, |
| |
X1 und X2, die ich hier hinzufügen werde. Nun müssen Sie unter anderem den Modellierungstyp angeben. In meinem |
| |
Add-In, aus dem Sie wählen können. Eines ist der Standardmodellierungstyp „Kleinste Quadrate“ und eines ist die logistische Regression. |
| |
Und dies wird nicht automatisch ausgewählt, wie ich bereits sagte, basierend auf dem, was Sie hier eingegeben haben. Sie können also durchaus eine kategorische Antwortvariable eingeben und es wird nicht umgeschaltet. Sie müssen es selbst umschalten. Das ist hoffentlich einer dieser schicken Schnickschnacks, ich komme später darauf zurück. |
| |
Weg damit. Leg das hier wieder rein. |
| |
Okay, das ist also unser Setup, und das wird das Modell y gleich Beta Null plus Beta Eins X Eins plus Beta Zwei X Zwei anpassen. Und jetzt werde ich hier unten die Variablen einfügen, die ich verwenden möchte. |
| |
... oder ich möchte nach Interaktionen zwischen ihnen suchen, also wähle ich alle von X1 bis X10 aus. Diese füge ich hinzu. |
| |
Und dann sage ich: „Okay, wie oft will ich den Algorithmus ausführen?“ Hier mache ich es fünfmal, aus Zeitgründen. |
| |
und die Reihenfolge der zu berücksichtigenden Interaktionen, daher werde ich nur zwei machen. |
| |
Ich empfehle, bei drei oder weniger zu bleiben, es wird normalerweise viel schwieriger, Interaktionen zu interpretieren, die Vier-Wege-Interaktionen sind, Fünf-Wege-Interaktionen, aber |
| |
der Algorithmus... oder die Art und Weise, wie ich das eingerichtet habe, ist so, dass Sie so hoch gehen können, wenn Sie wollen. Ich habe eigentlich keine Grenze gesetzt, aber Sie sollten wissen, dass je höher Sie hier gehen, desto länger dauert es, das auszuführen. |
| |
Also drücke ich „Okay“. Das dauert einen Moment. |
| |
Sie können also den Code sehen, den ich ausgeliehen habe. |
| |
Sie können sehen, dass es hier angezeigt wurde und mir sagt, dass ich 20 % geschafft habe, 40 %. |
| |
Das sind also Lösungen. Bei jeder Überprüfung wird eine praktikable Lösung gefunden und am Ende kommt eine Datentabelle heraus. |
| |
wissen Sie, das ist nicht eine dieser Funktionen... Ich hätte gerne ein Auswahlfeld, in dem man die Interaktion auswählen und dann auf |
| |
Modell erstellen, und es würde das alles für Sie erledigen, so wie JMP es bereits für viele verschiedene Dinge tut, aber so weit bin ich noch nicht gekommen. Dies sagt Ihnen nur, was die Lösungen waren. |
| |
Es gibt Ihnen also eine Art Zusammenfassung dessen, was es getan hat. Es hat also fünf zufällige Starts durchgeführt. Es sagt Ihnen, was die Antwortvariable war, die festen Variablen, |
| |
die gefundenen Interaktionsvariablen, okay, und das R-Quadrat, das angepasste R-Quadrat für dieses Modell, der mittlere quadratische Fehler und dann der Interaktions-P-Wert. Okay, was wir hier sehen können, ist, dass |
| |
(wenn ich darauf klicke, wird es mir angezeigt) Es gibt nur zwei Lösungen, also ... X2 X3 war eine Interaktion und X10 X7 eine andere. |
| |
Und jetzt kann ich, was ich jetzt nicht tun werde, dieses Modell erstellen und die Ergebnisse reproduzieren und mir die Ergebnisse ansehen, um zu sehen, ob das eine gute statistische |
| |
Algorithmus... oder gute statistische Interaktion, die ich hier gefunden habe? Wissen Sie, wie sehen meine Leverage-Plots aus? Was sind alle meine verschiedenen Kriterien |
| |
Diagramme sehen aus? Und wie sehen meine Diagnosediagramme aus? Solche Dinge. Und dann kann ich anfangen, Fragen zu stellen, wie zum Beispiel, ob diese Interaktion im Hinblick auf die Parameterschätzungen und so weiter Sinn ergibt? |
| |
Es ist explorativ, es wird Ihnen also mögliche Lösungen bieten, aber Sie müssen dies mit der gebotenen Sorgfalt verfolgen und tatsächlich über die Ergebnisse nachdenken, die Sie erhalten haben |
| |
und Fragen an diejenigen stellen, die Kontextexperten auf diesem Gebiet sind. So verwenden wir das normalerweise in den Gesundheitswissenschaften. Wir verwenden dies mit Gesundheitsdaten, wir erzeugen Interaktionen, wir gehen dann zu den Ärzten und fragen, ob dieser Effekt Sinn ergibt, |
| |
Sie wissen schon, es wäre nicht konsistent über Alter oder Geschlecht oder was auch immer. Und sie werden normalerweise mit uns darüber sprechen, wissen Sie, denken Sie darüber nach. Die ganze Idee ist, dass dies hoffentlich zukünftige Studien beeinflussen wird, in denen wir die Studien dazu bringen können, nach diesen Interaktionseffekten in einer genaueren Weise zu suchen. |
| |
leistungsstarker Weg. |
| |
Okay, ich gehe jetzt zurück zu meiner PowerPoint. Das war also dieses Tutorial. Sie sehen, es ist ziemlich einfach zu verwenden. Das war ein wirklich kleines Beispiel. Sie können es steigern, |
| |
Sie müssen nur wissen, dass der gesamte Prozess, den ich gerade durchgeführt habe, umso länger dauert, je größer die Datensätze sind. Er wird nicht 10 Sekunden dauern, sondern |
| |
Sie wissen, möglicherweise 5-10 Minuten lang, je nachdem, wie groß Ihr Datensatz war. Ich habe den Algorithmus verwendet, das Add-In verwendet, um Datensätze mit 100 Variablen zu erstellen. |
| |
erklärende Variablen, und es dauerte ungefähr so lange, also etwa sieben Minuten, um es für etwa fünf oder zehn Zufallsstarts auszuführen. |
| |
Im R-Paket geht alles schneller als im JMP-Add-In, aber das liegt daran, dass dies, wie Sie wissen, mein erster Versuch ist und es hoffentlich durch die Iterationen noch schneller und besser wird. |
| |
Reden wir also über zukünftige Verbesserungen. Ich möchte den Benutzern ermöglichen, zu optimieren oder |
| |
Finden Sie praktikable Lösungen basierend auf jedem beliebigen Kriterium. Wenn Sie also praktikable Lösungen basierend auf der Optimierung von R-Quadrat oder AIC oder der Optimierung der Fehlklassifizierungsrate finden möchten, |
| |
wissen Sie, in logistischen Regressionsmodellen möchte ich ihnen dies ermöglichen. Und es ist wirklich nicht so schwer, ich muss es nur tun. |
| |
Automatisches Speichern oder Auswählen von Modellierungspersönlichkeiten basierend auf Variablenauswahlen. Das ist ganz einfach. Sie geben ein |
| |
binäre logistische Variable, wissen Sie, es wird automatisch die logistische Regression für Sie auswählen. Ich glaube nicht, dass das superschwer ist, ich könnte das wahrscheinlich ziemlich schnell machen. Ich bin zuversichtlich, dass ich das machen kann, nachdem ich diesen Prozess der Übertragung meines R-Pakets durchlaufen habe. |
| |
Ich möchte die Geschwindigkeit etwas verbessern. Es gibt eine Menge Dinge, die ich tun könnte, um die Geschwindigkeit zu verbessern. |
| |
Das würde ich gerne tun können. Ein Rückruf-Button wäre nett. Den habe ich jetzt nicht. Eine meiner Lieblingsfunktionen in JMP ist, dass ich auf den Rückruf-Button klicken kann. |
| |
Und dann möchte ich in der Lage sein, die Ergebnisse, die Sie von FSA erhalten haben, zu rationalisieren und ein Modell zu erstellen. |
| |
das können Sie bereits tun, beispielsweise wenn Sie eine Vorwärtsauswahl in JMP oder Lasso oder einem dieser Programme durchführen. Sie können einfach auf „Modell erstellen“ klicken und alle Variablen werden ganz einfach übertragen. |
| |
Ich möchte das mit diesem Algorithmus für mögliche Lösungen tun können. Holen Sie sich einfach diese Art von Ergebnissen und klicken Sie auf „Modell erstellen“. Dann erledigt es automatisch alles für Sie. |
| |
damit Sie sie erkunden können und die gefundenen Interaktionen hoffentlich auch richtig verstehen. |
| |
Ich möchte hier einige Danksagungen durchgehen. Zuerst geht es an Mark Bailey. Ohne Sie hätte ich es nicht geschafft. Vielen Dank für Ihre Unterstützung mit dem JSL-Code. Vielen Dank an Ruth |
| |
dafür, dass du mich mit Mark in Kontakt gebracht hast, und auch dafür, dass du ein General bist, weißt du, |
| |
Support-Person für dieses Projekt und einfach gutes Feedback. Anne und Larry, ich schätze einfach |
| |
Ihre Hilfe bei allen Dingen, die mit JMP und unseren früheren Beziehungen zu tun hatten, und dass Sie mich ermutigt haben, an diesem Discovery Summit teilzunehmen. Es war wirklich großartig und ich freue mich darauf, mehr Leute in der JMP-Community kennenzulernen |
| |
durch, also danke dafür. Sie können mich auf verschiedene Weise erreichen. Sie können mir eine E-Mail an meine Universitäts-E-Mail-Adresse senden, Sie können mich über Twitter kontaktieren, wenn Sie das bevorzugen. |
| |
Außerdem plane ich, dieses JMP-Add-In auf GitHub sowie auf der Community-Website zu veröffentlichen. Schauen Sie also gerne an beiden Orten nach, um zukünftige Updates des Add-Ins zu sehen. |
| |
Also, danke, dass ich hier sein darf, und ich freue mich darauf, Ihre Fragen in der uns zugeteilten Zeit zu beantworten, danke. |