Hallo, mein Name ist Colleen McKendry und ich bin leitende Statistikredakteurin bei JMP. Das heißt, ich dokumentiere viele der Statistikplattformen der Software. Bevor ich vor etwa neun Jahren bei JMP angefangen habe, hatte ich JMP überhaupt nicht geöffnet. Im Laufe meiner Karriere habe ich JMP Schritt für Schritt gelernt, sodass ich genug darüber weiß, um darüber zu schreiben. Während meiner Einarbeitung in JMP fand ich den JMP Scripting Index besonders nützlich. Damals hatte ich auch das Gefühl, dass ihm einiges fehlte, und dachte, er hätte viel Potenzial, aber einige Informationen waren nicht so vollständig, wie sie sein könnten, und ähnliches.
Vor ein paar Jahren, etwa ab JMP 16, starteten mein Kollege Michael Crotty und ich ein Projekt zur Überarbeitung der statistischen Aspekte des JMP Scripting Index. Dabei ging es im Wesentlichen darum, sicherzustellen, dass die Informationen vollständig, robust und so nützlich wie möglich sind.
Vor Kurzem haben wir die erste vollständige Überprüfung aller untersuchten Statistikplattformen abgeschlossen. Ich bin daher der Meinung, dass der Scripting Index derzeit sehr gut aufgestellt ist. Daher dachte ich, dies wäre ein guter Zeitpunkt für diese Präsentation, um den Lesern mehr über den Scripting Index zu erzählen. Egal, ob Sie noch nie davon gehört haben oder ein fortgeschrittener Benutzer sind – ich hoffe, Sie können aus diesem Vortrag etwas mitnehmen.
Für diejenigen unter Ihnen, die den Scripting Index nicht kennen: Er ist ein wichtiges Tool zum Erlernen von JSL, der JMP-Skriptsprache, der nativen Programmiersprache in JMP. Immer wenn Sie ein Skriptfenster öffnen und etwas eingeben, programmieren Sie in JSL. Der Scripting Index ist eine Sammlung von Informationen zu JSL-Funktionen, -Objekten und -Anzeigefeldern, auf die ich gleich näher eingehen werde. Jeder Eintrag enthält eine kurze Beschreibung und ein eingebettetes Beispielskript, das direkt im Index ausgeführt werden kann.
Es gibt auch eine Suchfunktion mit anpassbaren Filteroptionen, von denen einige kürzlich aktualisiert wurden, um hoffentlich das Kundenerlebnis zu verbessern. Wo finden Sie den JMP-Skriptindex? Im Produkt gibt es verschiedene Möglichkeiten, auf den Skriptindex zuzugreifen. Die erste Möglichkeit ist einfach über das Hilfemenü. Wenn Sie auf das Hilfemenü klicken, wird eine Option für den Skriptindex angezeigt, die Sie damit öffnen können, oder Sie haben Optionen, um dorthin zu gelangen, während Sie sich in einem Skript befinden. Wenn Sie gerade in einem Skriptfenster programmieren und weitere Informationen zu einer bestimmten Funktion oder einem bestimmten Objekt benötigen, können Sie die Alt-Taste drücken und auf die Funktion oder das Objekt doppelklicken. Der Skriptindex wird geöffnet und mit dem gewünschten Eintrag gefüllt.
Ähnlich verhält es sich in einem Skript: Klicken Sie mit der rechten Maustaste auf die Funktion oder das Objekt. Daraufhin wird die Option „Hilfe-Skriptindex“ angezeigt. Diese funktioniert auf die gleiche Weise. Seit kurzem ist der Skriptindex auch online unter jsl.jmp.com verfügbar. Damit sind die Informationen des Skriptindex erstmals online verfügbar. Er entspricht dem Produktindex. Dies bietet Benutzern eine andere Möglichkeit, auf die Informationen im Skriptindex zuzugreifen, sie zu teilen und zu nutzen.
Lassen Sie uns eintauchen. So sieht der Scripting Index aus, wenn Sie ihn öffnen. Ich habe die verschiedenen Bereiche des Scripting Index, über die ich sprechen werde, in Kästchen eingerahmt. Wir beginnen mit der oberen linken Ecke, die eine Reihe von Navigationssteuerelementen enthält. Da ist zunächst dieser kleine Umschaltknopf, mit dem Sie die Ansicht des Scripting Index ändern können, wenn Sie das Layout ändern möchten. Dann gibt es diese Navigationsknöpfe zum Zurück- und Vorwärtsblättern. Wenn Sie suchen oder herumklicken, können Sie mit diesen Knöpfen vor- und zurückblättern, ohne etwas neu eingeben zu müssen.
Als Nächstes sehen Sie eine Dropdown-Liste mit allen Kategorien. Dies sind alle Kategorien in der linken Auswahlliste. Wir haben Funktionen, Objekte, Python und Anzeigefelder. Wenn Sie eine dieser Kategorien auswählen, werden nur die Funktionen oder nur die Objekte in dieser Liste angezeigt. In der Kategorie „Funktionen“ finden Sie die integrierten Funktionen von JMP. Diese sind stärker codebasiert, sodass die Ergebnisse der Funktionen im Protokoll und nicht in der Benutzeroberfläche angezeigt werden. Beispiele hierfür sind numerische Funktionen, Matrixfunktionen, Zeichenfunktionen und alle Arten von Wahrscheinlichkeitsfunktionen. Sie sind alle dort enthalten.
Objekte hingegen basieren stark auf der Benutzeroberfläche. Sie sind dynamische Teile von JMP, die über Nachrichten Anweisungen zum Ausführen bestimmter Aktionen erhalten können. Dies sind Dinge, die Sie in der Benutzeroberfläche sehen, wie Datentabellen, Datenspalten, Plattformen und Ergebnisfenster. Die Einträge in dieser Kategorie beziehen sich darauf. Das Ändern einer Datenspalte, das Hinzufügen einer Option zu einem Ergebnisfenster und ähnliches.
Die Kategorie Python enthält Funktionen, die speziell mit der Python-Integration zusammenhängen, aber darauf werde ich in diesem Vortrag nicht näher eingehen. Schließlich gibt es noch Anzeigefelder. Dabei handelt es sich um verschiedene Arten rechteckiger Felder, die zum Erstellen von Berichten oder neuen Fenstern in JMP verwendet werden. Die Beziehung zwischen diesen verschiedenen Anzeigefeldern in einem Bericht wird durch den Anzeigebaum dargestellt. Alle Einträge in dieser Kategorie beziehen sich ausschließlich auf das Ausfüllen von Anzeigefeldern und das Hinzufügen von Optionen, beispielsweise eines Startfensters, also Optionsfeldern, Kontrollkästchen und dergleichen.
Als Nächstes betrachten wir die beiden Auswahllisten. Die linke Liste enthält Kategorienamen und die rechte Liste Elementnamen. Diese Listen sind hierarchisch miteinander verknüpft, sodass die Elemente auf der rechten Seite im ausgewählten Kategorienamen enthalten sind. In diesem Bild sehen wir, dass Control Chart Builder links ausgewählt ist. Alle Elementnamen auf der rechten Seite beziehen sich auf ein Control Chart Builder-Objekt. Jeder Elementname, den Sie in dieser rechten Liste auswählen, füllt den restlichen Skriptindex.
Das werden wir jetzt durchgehen. Der Rest des Scripting-Index-Fensters enthält alle Informationen, beispielsweise die nützlichen Dinge, nach denen Sie suchen. Oben sehen Sie einen Elementnamen und dann eine Syntax bzw. einen Prototyp. Dies ist nur eine grundlegende Codestruktur, wie der Eintrag codiert werden sollte, einschließlich aller darin enthaltenen Optionen.
Es gibt auch eine kurze Beschreibung, die Ihnen im Wesentlichen erklärt, was der Eintrag bewirkt und manchmal auch, auf welcher Plattform er sich befindet. Sie sehen dann, dass es ein eingebettetes Skriptfenster und ein eingebettetes Protokollfenster mit einem bereits ausgefüllten Beispiel gibt. Sie können dieses Beispiel direkt im Scripting Index ausführen. Der Code wird ausgeführt und die Ausgabe wird ausgegeben, egal ob im Protokoll oder in der Benutzeroberfläche. So können Sie Beispielcode sehen, ohne selbst programmieren zu müssen.
Wenn Sie im Beispielbereich ein kleines Dropdown-Symbol sehen, bedeutet das, dass es mehrere Beispiele für diesen Eintrag gibt. Klicken Sie darauf, um die verschiedenen Beispiele anzuzeigen und zu prüfen, ob Sie noch weitere interessante Informationen finden. Außerdem gibt es noch weitere Hilfeoptionen. „Siehe auch“ öffnet ein Dropdown-Menü mit einer Liste aller anderen Scripting Index-Einträge, die in diesem Beispielskript verwendet werden. In diesem Fall Variablen. Ich weiß, dass „Variablen“ ein weiterer Eintrag im Scripting Index ist. Wenn ich darauf klicke, wird dieser angezeigt. Anschließend kann ich zum Variablen-Eintrag im Scripting Index navigieren und weitere Informationen dazu erhalten.
Wir haben außerdem eine Schaltfläche „Themenhilfe“, die Sie zur Online-Dokumentation für den jeweiligen Bereich führt. In diesem Fall gelangen Sie mit einem Klick auf diese Schaltfläche zur Online-Dokumentation für Control Chart Builder. Darüber hinaus gibt es eine Filterfunktion und eine Suchleiste, mit der Sie den gesamten Scripting Index nach beliebigen Begriffen oder Phrasen durchsuchen können. In dieser Dropdown-Liste finden Sie einige Optionen, mit denen Sie Ihre Suche eingrenzen oder gezielter gestalten können.
Standardmäßig wird bei einer Suche der gesamte Skriptindex durchsucht. Es werden alle Namen, Prototypen, Beschreibungen und Beispiele durchsucht. Wenn Sie dies ändern möchten, finden Sie hier im unteren Bereich einige Optionen. Sie können beispielsweise nur nach Beispielen oder nur nach Kategorie- und Elementnamen suchen, falls Sie dies wünschen.
Der obere Bereich dieser Optionen ist eine Einzelauswahl, d. h. Sie können jeweils nur eine davon auswählen. Dies hilft Ihnen, Ihre Suche anhand dieser Bedingungen einzugrenzen. Beachten Sie außerdem, dass die Ergebnisse bei der Suche nicht sortiert oder in einer anderen Reihenfolge angezeigt werden, außer dass sie alphabetisch geordnet sind.
Ich zeige Ihnen jetzt eine kurze Demo. Ich gehe jetzt zu JMP. Wie bereits erwähnt, erreichen Sie den Scripting-Index über das Hilfemenü. Oder, wenn Sie ein Skript geöffnet haben, sagen wir, ich habe dieses Skript geöffnet. Ich schreibe gerade etwas zum Thema Response Screening. Ich drücke die Alt-Taste und doppelklicke auf „Response Screening“. Der Scripting-Index öffnet sich, und das Suchfeld enthält den Eintrag, auf den ich doppelgeklickt habe. Wir erhalten also alle möglichen Ergebnisse zum Thema Response Screening, aus denen ich weitere Informationen gewinnen könnte.
Ich verlasse das Fenster und beginne von vorne. Hier ist der erwähnte Umschaltknopf, der die Ansicht ändert. Dann haben wir unsere Navigationssteuerung. Da zuvor eine Suche durchgeführt wurde, konnte ich zu meinen Antwort-Screening-Ergebnissen zurückkehren, ohne sie eingeben zu müssen, oder ich konnte zurück zum Zeitpunkt des Löschens gehen.
Dies sind die Kategorien. Ich könnte mir nur die Funktionen, nur die Objekte, Python oder Anzeigefelder ansehen. Ich habe das in der PowerPoint-Präsentation nicht erwähnt, aber es gibt auch eine Versionsschaltfläche. Sie können diese Liste auch anhand der JMP-Version eingrenzen, in der der Eintrag hinzugefügt wurde. Wenn Sie nur Einträge anzeigen möchten, die nach JMP 18 hinzugefügt wurden, können Sie dies tun, wenn Sie nach neuen Inhalten suchen.
Jetzt haben wir unsere Auswahlliste. Links gehe ich zurück zum Control Chart Builder, falls ich ihn finde. So, das war's. Sie sehen, dass sich alle rechts auf Control Chart Builder-Objekte beziehen. Wenn ich darauf klicke, aktualisiert sich der Scripting Index dynamisch mit Informationen zum jeweiligen Elementnamen.
Hier ist der Eintrag „Control Chart Builder“, der auch in der PowerPoint-Präsentation gezeigt wurde, und hier ist das automatisch ausgefüllte Skript. Ich kann es mit diesem Beispiel ausführen, und das Control Chart Builder-Skript wird automatisch ausgeführt. Ich kann es mir ansehen. Vielleicht versuche ich, es mit der Beschreibung zu vergleichen, um zu sehen, ob ich etwas herauspicken kann. Ich habe dieses Dropdown-Menü, das bedeutet, dass es mehr als ein Beispiel für den Control Chart Builder gibt. In diesem Fall gibt es mehrere Control Chart Builder-Beispiele.
Ich kann hier runtergehen, auf „Diagramm seltener Ereignisse“ klicken und stattdessen das Beispiel dafür ausführen. Dadurch erhalte ich das G-Diagramm. Hier ist das kleine „Siehe auch“-Symbol. Wie gesagt, dieses Beispielskript verwendet eine Reihe weiterer Scripting-Indexeinträge. Wenn ich beispielsweise mehr darüber erfahren möchte, wie Sigma angegeben wird, kann ich hierauf klicken. Ich gehe direkt zum Sigma-Eintrag und kann nachlesen, dass dort die Standardabweichung angegeben wird. Ich kann dort etwas über den Standardwert lesen und mir so mein Wissen vertiefen. Dann kann ich mit der Zurück-Schaltfläche zum Beispiel zurückkehren, das ich mir ursprünglich angesehen habe. Wenn ich auf die TopicHelp-Schaltfläche klicke, wird die Dokumentation für Control Chart Builder geladen. Minimieren Sie diese.
Ich möchte nur einige Beispiele aus den anderen Kategorien zeigen. Wenn ich mir nur die Funktionen anschaue, werde ich zu Demonstrationszwecken einige sehr einfache Beispiele zeigen. Für Numerisch haben wir nur die einfache Absolutwertfunktion, die ich hier ausführen kann. Unten sehen Sie, wo sich die Ausgabe im Protokoll befindet. [unverständlich 00:15:41] etwas nach oben.
Ich sollte auch erwähnen, dass das eingebettete Skript dieser Beispiele vollständig editierbar ist. Ich kann also hineingehen und bei Bedarf eine neue Zeile hinzufügen. Ich kann es auch ausführen und das Ergebnis erhalten. Alles, was Sie bearbeiten, hinzufügen oder entfernen, bleibt in diesem Skriptfenster, egal wohin Sie klicken. Sie können hierhin gehen und zu verschiedenen Kategorienamen wechseln. Wenn Sie zu numerischen und absoluten Werten zurückkehren, bleiben diese weiterhin bestehen. All dies bleibt bestehen, bis Sie das Fenster „Skriptindex“ schließen oder bis ich mit der Bearbeitung begonnen habe. Sie haben vielleicht bemerkt, dass diese zusätzliche Schaltfläche angezeigt wurde. Ich kann auch darauf klicken, um das Beispiel auf die Standardeinstellungen zurückzusetzen und alle meine Änderungen zu entfernen.
Wie bereits erwähnt, geht es bei Anzeigefeldern um das Füllen von JMP-Fenstern oder das Hinzufügen neuer Elemente zu bestehenden JMP-Fenstern. Hier sehen Sie ein einfaches Beispiel für das Erstellen eines neuen Fensters mit einem Kontrollkästchen. Sie können auch Elemente zu einem bestehenden Fenster hinzufügen. Dies ist ein Rahmenfeld. Rahmenfelder sind im Grunde die großen Rechtecke in einem JMP-Fenster. Hier in diesem Skript kann ich den ersten Teil ausführen, ein bivariates Skript. Das ist also der normale bivariate JMP-Bericht.
Dann kann ich das mit etwas zusätzlichem Code ausführen, und es fügt ein Polygon über dem bivariaten Bericht hinzu. Dies hat nicht direkt mit dem Scripting Index zu tun, aber ich wollte dennoch zeigen, wie man auf den Anzeigebaum zugreift, da ich ihn in der PowerPoint-Präsentation erwähnt habe. Sie können mit der rechten Maustaste auf dieses Symbol klicken und „Bearbeiten“ > „Baumstruktur anzeigen“ wählen. Dies sind im Grunde alles Anzeigefeldelemente, und alle davon hätten Einträge im Scripting Index. Sie könnten herausfinden, wie Rahmenfelder mit Rahmenfeldern interagieren, was Sie hinzufügen können, wie Sie einem Diagramm Markierungen hinzufügen oder wie Sie Informationen zu den Markierungen in einem Diagramm erhalten – all diese kleinen Details. Ich wollte das nur schnell zeigen. Entfernen Sie das alles.
Das Letzte, was ich in der Demo machen wollte, war, einfach ein paar Suchen durchzuführen, um zu zeigen, welche Optionen zum Eingrenzen einer Suche nützlich sein könnten. Ich habe alle Standardeinstellungen aktiviert und sage, ich möchte zurück zu Regelkarten, also suche ich nach Regelkarten. Der erste Treffer, der angezeigt wird, ist tatsächlich dieser Vergleich mit Kontrollentscheidungskarte, die sich irgendwo in „Modell anpassen“ befindet. Das ist nicht das, woran ich interessiert war, da ich eine Regelkarte suchte. Das liegt daran, dass die Suche nur nach den einzelnen Begriffen sucht, und dies enthält also „Kontrolle“ und „Karte“, aber nicht unbedingt zusammen. Daher kann ich die Option „Enthält Ausdruck“ verwenden, um sicherzustellen, dass alle meine Suchergebnisse „Regelkarte“ als Ausdruck enthalten, also das Ganze. Das könnte nützlich sein, um sicherzustellen, dass ich die Beispiele habe, die mich interessieren. Ich kann das löschen und auf den Standard zurücksetzen.
Die Suchleiste ist meiner Meinung nach für neue Benutzer sehr nützlich, nicht unbedingt, wenn man viel über Skripting lernen möchte. Wenn ich ein neuer Benutzer von JMP wäre und eine ANOVA durchführen wollte, wüsste ich, dass JMP die Dinge nicht immer so benennt wie in der Standardliteratur. Ich arbeite bei JMP und kenne mich mit JMP aus. Ich weiß, dass ich eine ANOVA-Analyse auf der Oneway-Plattform finden kann. Für einen neuen Benutzer könnte es schwierig sein, das nur über die Benutzeroberfläche herauszufinden.
Ich könnte in der Suchleiste nach ANOVA suchen und sehen, dass der erste Treffer einen ANOVA-Bericht ein- oder ausblendet. Das sieht sehr vielversprechend aus. Ich kann es ausführen. Ich sehe, es hängt mit dieser Einweganalyse zusammen. Ich könnte sogar so weit gehen, die Seite neu zu starten, um zu sehen, wie das Startfenster aussieht und mir einen guten Überblick darüber zu verschaffen, was ich in der Benutzeroberfläche selbst tun müsste, um herauszufinden, wie man eine ANOVA-Analyse durchführt.
Wenn ich mehr Beispiele suche, kann ich weiter nach unten gehen. Beim dritten Ergebnis sehe ich, dass es sich um eine multivariate Varianzanalyse handelt. Daran bin ich nicht unbedingt interessiert. Ich suche ausschließlich nach ANOVA. Um die Suche einzugrenzen und sicherzustellen, dass keines meiner anderen Suchergebnisse ANOVA-Einträge enthält, kann ich die Funktion „Ganze Wörter suchen“ verwenden. Dadurch werden dieses und einige andere Ergebnisse entfernt, sodass ich nun nur noch nach ANOVA als einzelnem Wort suche, nicht unbedingt danach, ob ANOVA in einem anderen Wort enthalten ist. Das könnte für Ihre Suche nützlich sein.
Zurück zur Standardeinstellung. Nehmen wir für mein letztes Suchbeispiel an, Sie interessieren sich für Programmieren. Sie sind nicht unbedingt ein neuer Benutzer, möchten aber lernen, wie Sie selbst programmieren können. Insbesondere möchten Sie aus irgendeinem Grund Matrizen verwenden und eine eigene Singulärwertzerlegung durchführen. Sie fragen sich: „Wie mache ich das in JSL?“
Sie können nach Singulärwertzerlegung suchen. Wir sehen, dass wir einige Treffer erhalten, aber die ersten paar scheinen die Singulärwertzerlegung innerhalb einer Plattform durchzuführen und nicht unbedingt nur durch Ihren eigenen Code. Die Suchleiste spielt auch mit diesen gefilterten Kategorien. Sie können dies ändern, um nur Funktionen anzuzeigen. So haben wir nun die vier Funktionen in JMP, mit denen Sie Ihre eigene Singulärwertzerlegung in JSL durchführen können. Sie können diese durchgehen und entscheiden, welche für Sie die beste ist, und mit Ihrer SVD fortfahren.
Das war's mit der Demo. Ich wollte nur noch schnell zur Präsentation zurückkehren. Vollbild-Deck. Zum Abschluss möchte ich noch ein paar meiner bevorzugten Verwendungsmöglichkeiten des Scripting Index vorstellen und betonen, dass ich davon überzeugt bin, dass er nicht nur für fortgeschrittene Skripter geeignet ist, sondern auch für neue Benutzer sehr nützlich sein kann. Die erste Funktion, die ich in der Demo erwähnt habe, ist die Suchfunktion. Sie eignet sich hervorragend für die Suche nach etwas, das JMP anders nennt, beispielsweise ANOVA versus Oneway.
Es eignet sich gut, um herauszufinden, zu welcher Plattform eine bestimmte statistische Technik gehört. Wenn Sie sich für eine Technik interessieren, aber nicht sicher sind, in welche Plattform sie genau passt, können Sie den Scripting Index verwenden, um dies schnell herauszufinden. Sie können den Scripting Index auch verwenden, um Beispiele oder Datentabellen für eine bestimmte Plattform zu finden. Natürlich ist es auch gut, um grundlegende Scripting-Kenntnisse zu erlernen. Darüber hinaus habe ich den Scripting Index auch jetzt noch immer als Referenz geöffnet, wenn ich Scripting verwende.
Für mich war es besonders nützlich, als ich ein Add-In erstellte. In unserem Add-In hatten wir einige benutzerdefinierte Startfenster, andere Dialoge und fügten Dinge zu bestehenden JMP-Berichten hinzu. Daher war die Kategorie „Anzeigefeld“ im Scripting Index definitiv äußerst nützlich, um zu lernen, wie man Optionen zu Startfenstern hinzufügt, wie Kontrollkästchen und dergleichen, und auch, wie man verschiedene Dinge zu einem bestehenden JMP-Bericht hinzufügt.
Abschließend möchte ich sagen, dass es eine gute Möglichkeit ist, grundlegende Dokumentation zu erhalten, ohne das Produkt verlassen zu müssen. Wenn Sie gerade arbeiten und nicht unbedingt einen Browser öffnen und unsere Dokumentation durchsuchen möchten, können Sie einfach im Produkt bleiben und einige grundlegende Informationen abrufen, die Ihnen hoffentlich weiterhelfen. Falls nicht, können Sie über die Schaltfläche „TopicHelp“ direkt zu der Seite oder dem Bereich der Dokumentation gelangen, in dem Sie weitere Informationen finden.
Das war's von mir. Dies wurde aufgezeichnet, aber ich werde im Chat sein, während Sie sich das ansehen. Wenn Sie also Fragen haben, können Sie diese gerne dorthin stellen.