
In dieser Demonstration sehen wir uns an, wie die Anzeigefelder in der Berichtsebene angeordnet sind und wie wir auf deren Inhalt zugreifen können. Im Abschnitt „Kursjournal“ klicke ich auf „Aushärtezeitdaten“. Ich führe eine einfache Korrelationsanalyse und eine lineare Regression mit den Aushärtezeitdaten und zwei meiner Aushärtezeitspalten in der bivariaten Plattform durch. Wir sehen uns außerdem an, wie wir das Auswahlwerkzeug verwenden können, um den Bericht zu untersuchen und die Berichtsebene zu verstehen. Ich gehe zum Menü „Analysieren“ und wähle „Y an X anpassen“. Ich füge „Aushärtezeit“ in die Y-Rolle und „Aushärtezeit“ in die X-Rolle ein und klicke auf „OK“. Ich gehe zum roten Dreieck neben „Bivariate Anpassung“ und wähle „Dichteellipse“ aus. Ich nutze diese Option. Zurück im roten Dreieck oben wähle ich „Linie anpassen“. Dadurch erhalten wir viele Komponenten unseres Anzeigebaums. Interaktiv können wir mit dem Auswahlwerkzeug Teile des Berichts auswählen. Wir wählen Anzeigefelder aus. Im Menü und in der Symbolleiste kann ich einfach dieses große weiße Pluszeichen auswählen, ein S für Auswahlwerkzeug eingeben oder das Menü „Werkzeuge“ öffnen. Dadurch ändert sich mein Cursor. Um dieses Diagramm auszuwählen, könnte man meinen, man klicke einfach in die Mitte. Tatsächlich wird aber nur das Rahmenfeld angezeigt, eines der Anzeigefelder, die diesen Teil des Berichts bilden. Ich denke mir dann vielleicht, ich muss außerhalb klicken. Dann erscheint nur ein Zugriffsfeld, das wiederum ein weiteres Anzeigefeld ist, das diesen Teil des Berichts bildet. Interaktiv muss ich den Cursor möglicherweise ganz nach außen bewegen, um alle Komponenten des Diagramms anzuzeigen, obwohl die Legende fehlt. Die kann ich aber auch anzeigen, wenn ich möchte. Ich kann auch Gliederungselemente auswählen. Ich klicke auf die Schaltfläche „Ausblenden“. Das funktioniert auch mit dem Auswahlwerkzeug. Die Schaltflächen zur Gliederungsanzeige reagieren weiterhin. Ich könnte jetzt aber das Auswahlwerkzeug verwenden, um das gesamte Gliederungselement auszuwählen oder, wenn ich erneut darauf klicke, die Auswahl aufzuheben – um einzelne Spalten innerhalb des Elements auszuwählen. Beim Skripting mit der Berichtsebene empfiehlt sich die Verwendung der „Meldung auswählen“-Funktion. Diese hat die gleiche interaktive Funktion wie das Auswahlwerkzeug, um sicherzustellen, dass Sie den richtigen Bereich der Berichtsebene anvisieren, bevor Sie mit der Werteextraktion beginnen. Ich wechsle also zurück zum Pfeilcursor. Ich kann zur Symbolleiste gehen oder einfach ein „A“ eingeben. Eine praktische Funktion zum Verständnis des Anzeigebaums ist die Menüoption „Baumstruktur anzeigen“. Ich schaue mir das für die bivariate Normalellipse an. Da es für dieses Gliederungselement kein rotes Dreieckmenü gibt, kann ich mit der rechten Maustaste darauf klicken. Wenn ich die Baumstruktur für den gesamten Bericht anzeigen möchte, klicke ich mit der rechten Maustaste auf das oberste Gliederungselement, da es ein rotes Dreieckmenü hat. Wenn ich die gesamte Baumstruktur sehen möchte, klicke ich mit der rechten Maustaste auf die Schaltfläche „Offenlegung“. Das ist aber eine sehr große Baumstruktur. Daher arbeite ich lieber mit den einzelnen Berichtstabellen. Um die Baumstruktur dieses Diagramms zu verstehen, müsste ich natürlich auf die oberste Ebene gehen. Für das Gliederungselement „Bivariate Normalellipse“ klicke ich mit der rechten Maustaste und wähle unter „Bearbeiten“ die Option „Baumstruktur anzeigen“. Ich verschiebe das einfach nebeneinander. Hier werden die Gliederungselemente angezeigt, die die verschiedenen Anzeigefelder darstellen, aus denen dieser Teil der Baumstruktur besteht. Ein praktisches Feature ist die Verknüpfung mit dem Berichtsfenster. Wenn ich mit der Maus über die verschiedenen Komponenten in der Baumstruktur fahre, werden diese hervorgehoben, wie Sie in der Tabelle sehen können. So kann ich sicherstellen, dass ich das gewünschte Anzeigefeld korrekt ansteuere. Alle Anzeigefelder haben lediglich Indexwerte, das Gliederungsfeld enthält jedoch auch den Namen. Wir werden sehen, wie wir diese Elemente mit etwas mehr Informationen als nur den Indexwerten ansteuern können. Zunächst greife ich jedoch auf das Skript zurück, um den Bericht neu zu erstellen und die Objektreferenz der Berichtsebene abzurufen. Ich schließe das Fenster mit der Baumstruktur, gehe zum roten Dreieck neben „Bivariate Anpassung“ und wähle „Skript im Skriptfenster speichern“. Anschließend passe ich die Größe an. Sie sehen hier nur „SendToReport“, da ich das Gliederungselement „Bivariate Normalellipse“ erweitert habe. Sie sehen also, dass dort „Schließen“ mit einem Booleschen Wert steht. Sie könnten das also entfernen, wenn Sie den Bericht erneut ausführen und ihn nicht geöffnet haben möchten. Ich behalte es. Da ich nun ein Skript zur Neuerstellung habe, schließe ich den ursprünglichen Bericht, um ihn nicht mit dem Bericht zu verwechseln, der beim Erstellen dieser Instanz eines bivariaten Objekts erstellt wird. Zu Beginn des Skripts speichere ich die Objektreferenz der Analyseebene – die beim Starten der Plattform entsteht – in der Variable „biv“. Diese weise ich zu. Ich verwende hier einfach die Kurzform der aktuellen Datentabelle und sende die Nachricht – Ups, das muss ich doch nicht eingeben, oder? Ich habe das Skript ja schon geschrieben. Dann führe ich es aus. Das startet das neue bivariate Objekt. In der letzten Zeile meines Skript-Editors rufe ich die Objektreferenz der Berichtsebene ab. Diese speichere ich in der Variable rbiv. Ich weise ihr das Ergebnis zu, wenn biv die Nachricht „Bericht“ empfängt. Es gibt übrigens eine alternative Syntax dafür, bei der „Bericht“ biv in Klammern als Argument nach dem Namen hat. Dieses Beispiel sehen wir uns in einer der nächsten Demonstrationen an. Ich führe also nur diese eine Zeile aus. Beachten Sie, was in rbiv gespeichert ist. Wir hatten den Plattformnamen in biv gespeichert. In rbiv haben wir aber nur „DisplayBox[OutlineBox]. Ich habe also nicht so viele Details. Ich weiß nur, um welche Art von Anzeigefeld es sich handelt. So werden die Objektreferenzen für die Berichtsebene aussehen. Bevor ich irgendetwas anderes mache, möchte ich die Zeilen auskommentieren, um zu verhindern, dass das Skript versehentlich erneut ausgeführt wird, ein neues Fenster mit einer bivariaten Anpassung geöffnet wird und dann das falsche Fenster geschlossen wird, sodass das aktuell in biv gespeicherte Fenster geschlossen wird. Das habe ich schon einmal gemacht. Natürlich reagiert das Skript dann nicht mehr auf Nachrichten, weil es nicht mehr geöffnet ist, obwohl ein anderes geöffnet ist. Nachdem ich alles ausgewählt habe, klicke ich mit der rechten Maustaste. Unter „Erweitert“ wähle ich „Kommentarblock“. Da ich nach dem Kommentieren keine weiteren Zeilen im Skript-Editor hatte, wurde die Syntax verwendet, den Kommentar mit einem Schrägstrich (Sternchen) zu öffnen und mit einem Schrägstrich (Sternchen) zu schließen. Wären weitere Zeilen vorhanden gewesen, hätte jede Zeile mit zwei Schrägstrichen kommentiert. Ich könnte sie aber trotzdem erneut auswählen und mit einem Rechtsklick alle Kommentare gleichzeitig entfernen. Es muss nicht so breit sein, aber ich möchte es etwas höher haben. Ich verschiebe es an die Seite. Das bivariate Fenster schiebe ich dann nach außen. Ich gehe in eine neue Zeile. Rechtsklicke ich im Berichtsfenster auf „Bivariate Normalellipse“, „Bearbeiten“, „Baumstruktur anzeigen“. Das ist die Gliederungsbox. Wenn ich „rbiv“ indiziere, kann ich einfach diesen Indexwert verwenden. Also „OutlineBox“ und dann in Klammern „Auswählen“. So kann ich ein Skript erstellen, anstatt das Auswahlwerkzeug zu verwenden. Ich führe diese Zeile einfach aus. Sie sehen, dass die Gliederungsbox ausgewählt ist. Wenn dies nun das Gliederungselement ist, das ich anvisieren möchte, möchte ich es nicht ausgewählt lassen. Ich verwende „Auswählen“, um zu überprüfen, ob ich auf die richtige Position zeige. Ich sende also die Nachricht „Auswahl aufheben“, führe diese Zeile aus und hebe die Auswahl auf. Angenommen, ich möchte die Spalte mit den Mittelwerten genauer betrachten. Dafür füge ich einen weiteren Index hinzu. Ich ändere die Nachricht wieder in „Auswählen“ und führe diese Zeile aus. Damit ist die Spalte mit den Mittelwerten ausgewählt. Wie könnte ich diese Anzeigefelder noch expliziter referenzieren? Anstatt sie aufzurufen, kann ich den Namen der Gliederung verwenden. Das ersetzt den gesamten Index hier. Dort steht, dass ich einfach die Zeichenfolge eingebe. Das ist eine lange Zeichenfolge. Deshalb verwende ich das Platzhalterzeichen. Ich öffne die Anführungszeichen und gebe „Bivariate Normal“ ein. Außerdem tippe ich das Wort „Ellipse“ ein und setze das Fragezeichen, um „P“ nicht angeben zu müssen. Ich schließe die Anführungszeichen. Für die Zahlenspalte könnte ich anstelle des Indexwerts, da dort eine Spaltenüberschrift vorhanden ist, – anders als bei „Zusammenfassung der Anpassung“ – einen Indexwert verwenden. Die Spaltenüberschrift heißt jedoch „Mittelwerte“. Ich ersetze also „…“ – ich muss zwar immer noch angeben, dass es sich um eine Zahlenspalte handelt – durch die Zeichenfolge „Mittelwert“. Anschließend ändere ich die Meldung in „Auswahl aufheben“. Ich führe diese Zeile aus, und das funktioniert auch. Ich empfehle diese Syntax, da sie eindeutig angibt, welche Gliederungsbox und welche Spalte wir betrachten. Betrachten wir dies im Kontext der Parameterschätzungen. Ich schließe die Baumstruktur im Fenster „Bivariate Normalellipse“, klicke mit der rechten Maustaste auf „Parameterschätzungen“ und wähle „Bearbeiten, Baumstruktur anzeigen“. Im ersten Index ersetze ich den Inhalt dieser Zeichenfolge durch „Parameterschätzungen“. Nehmen wir an, ich möchte die Spalte mit den Schätzungen anzeigen. Wenn ich den Namen verwende (wie bereits bei Spaltenüberschriften empfohlen) und die „Auswählen“-Meldung sende, funktioniert das sehr gut. Aus diesem Grund zeige ich Ihnen dieses Beispiel. In der Baumstruktur sieht die Spalte mit den Schätzungen so aus: „Was würde passieren, wenn ich diese Spalte ankreuze und dann wieder abwähle?“ Ich erhalte die Fehlermeldung: „Anzeigefeld und Zugriff auf oder Auswertung von rbiv usw. können nicht indiziert werden.“ Das liefert mir nicht viele Informationen. Aus Erfahrung weiß ich jedoch, dass die Zählung der Spaltenfelder innerhalb dieses Gliederungselements von vorne beginnt, sobald ich auf das Gliederungselement „Parameterschätzungen“ verweise. Es handelt sich also um die Parameterschätzungen. Wenn ich das jetzt ausführe, funktioniert es. Wenn ich rbiv einfach als einzigen Index indizieren wollte, ginge das auch. Es gibt also viele verschiedene Möglichkeiten zum Indizieren. Wir empfehlen jedoch, so explizit wie möglich zu sein, indem wir den Namen des Gliederungselements und, falls vorhanden, eine Spaltenüberschrift verwenden – ich füge die Spaltenüberschrift „Schätzung“ hier wieder ein –, um sicherzustellen, dass unser Skript robust gegenüber Änderungen in der Struktur des Anzeigebaums ist. Diese Änderungen können durch eine neue JMP-Version oder durch Benutzereinstellungen entstehen, beispielsweise durch Berichte, die über der relevanten Tabelle angezeigt werden und die Nummerierung dieser Spaltenfelder oder anderer Anzeigefelder ändern. Wann immer wir einen Gliederungselementnamen und eine Spaltenüberschrift verwenden können, sollten wir das tun. Das Aktivieren und Deaktivieren dient nur der Entwicklung. Irgendwann möchte ich diese Werte möglicherweise tatsächlich abrufen. Ich möchte die Parameterschätzungen abrufen und sie möglicherweise in einer Variable speichern. Das werde ich hier nicht tun, aber Sie könnten es durchaus tun, und das ist möglicherweise Ihr Wunsch. Wenn ich also einfach die Nachricht „get“ an den indizierten Teil meiner Berichtsebene sende, wird eine Liste mit diesen beiden Werten zurückgegeben. Ich könnte die Nachricht in „get as matrix“ ändern, und die Rückgabe wäre eine Matrix dieser Werte. Was aber, wenn der Achsenabschnitt egal ist? Ich möchte nur die Schätzung der Steigung. Ich brauche den zweiten Wert. Eine Möglichkeit hierfür ist, die Nachricht „get“ mit einem Klammerzeichen zu senden, sie auszuführen und dann einfach den zweiten Wert abzurufen. Noch eleganter wäre es, gar keine Nachricht zu senden. Sobald wir aber zum Gliederungselement der Parameterschätzungen, dem Feld für die Spalte „Schätzung“, gesprungen sind, kann ich erneut indizieren und das zweite Element in dieser Spalte anfordern, was dieselben Ergebnisse liefert. Um auf das Anzeigefeld zuzugreifen, muss entweder „Report“ als Nachricht an die Variable gesendet werden, die die Objektreferenz der Analyseebene speichert, oder man kann diese Variable, die die Objektreferenz der Analyseebene speichert, in „Report“ einbetten. Anschließend verwenden wir die Indizes, um auf die Komponenten des Anzeigebaums zuzugreifen. Es gibt viele verschiedene Möglichkeiten der Indizierung. Es empfiehlt sich, bei der Indizierung so explizit wie möglich zu sein.
Sehr hilfreich. Besonders nützlich war die Möglichkeit, einen Platzhalter in einer Matrix hinzuzufügen.