
In dieser Demonstration sehen wir, wie man die Analysen einiger gängiger Plattformen in JMP skriptet. Im Kursjournal klicke ich auf „Betonfestigkeits- und Feuchtigkeitsdaten“. Dies ist der Datensatz, den ich für alle Beispiele dieser Demonstration verwende. Wir haben die Betonmischung, die resultierende Betonfestigkeit und die Umgebungsfeuchtigkeit nach dem Trocknen des Betons. Ich verschiebe das an die Seite, da wir die Tabelle in dieser Demonstration nicht wirklich betrachten. Zurück im Kursjournal klicke ich auf „Verteilungsanalyse-Skript“. In diesem vorgefertigten Skript senden wir die Verteilung als Nachricht an die Datentabelle „Beton“ und speichern das Ergebnis in einer Variable namens „dist“ – die Objektreferenz. Dies ist wiederum die Objektreferenz der Analyseebene. Ich ordne alle drei Spalten – Betonart, Feuchtigkeit und Festigkeit – der Y-Analyse zu und fordere beim Start für alle drei Spalten dieselben Optionen an. Wie wir jedoch im geöffneten Berichtsfenster sehen werden, können nicht alle Spalten auf alle Optionen reagieren. Ich führe daher die Zeilen durch. Und so einige Dinge von den Argumenten bis zur Verteilung beim Start der Plattform: „Stapel“ ist eine Option im roten Dreieckmenü – oben, neben „Verteilungen“ – und ändert die Histogramme auf horizontal, ändert die Position der Berichtstabellen, die wir normalerweise unter den Histogrammen sehen, und ob sie ausgerichtet sind – die Histogramme selbst sind nebeneinander oder vertikal ausgerichtet. „Stapel“ ist also die Option im roten Dreieckmenü – und Sie sehen, dass unser Skript den Booleschen Wert verwendet hat, um dies zu deaktivieren. Ihr Skript könnte dies also tun, da dies eine sehr häufige Option ist, die Benutzer in ihren Einstellungen ändern, um immer gestapelte Verteilungen zu erhalten. Wenn die Standardanordnung für das Ergebnis Ihres Skripts wichtig ist, sollten Sie den Stapel deaktivieren. Zusätzlich legen wir fest, dass die Histogramme vertikal angeordnet sein sollen. Dies finden Sie in den jeweiligen roten Dreieckmenüs unter „Histogrammoptionen“. Sie sehen, dass es hier aktiviert ist. Auch hier handelt es sich um eine Standardeinstellung. Das Skript stellt also sicher, dass die Präsentation unabhängig von den Benutzereinstellungen den Standardeinstellungen in JMP entspricht. In der nächsten Zeile des Skripts haben wir die Quantile deaktiviert. Quantile gelten nur für kontinuierliche Variablen. Im roten Dreieckmenü neben „Konkreter Typ“ in einem dieser Untermenüs finden Sie den Begriff „Quantile“ nicht. Wenn ich mir das rote Dreieck neben „Feuchtigkeit“ oder „Stärke“ unter „Anzeigeoptionen“ ansehe, sind die Quantile normalerweise standardmäßig aktiviert. Sie sehen hier aber, dass sie in diesem Menü deaktiviert sind, da wir diesen Booleschen Wert verwendet haben. Ähnlich verhält es sich mit dem Ausreißer-Boxplot, das normalerweise für kontinuierliche Variablen aktiviert ist. Wir deaktivieren es mit einem Booleschen Wert, sodass wir den Ausreißer-Boxplot nicht haben. Schließlich haben wir den Normal-Quantil-Plot mit dem Booleschen Wert in Klammern angefordert. Dieser wäre normalerweise nicht aktiviert, aber wir haben ihn für diese Variablen angefordert. Dies war Teil des Plattformstarts, sodass die Variablen, die auf diese Befehle reagieren konnten, dies auch taten. Nachdem wir die Plattform gestartet und die Objektreferenz in einer Variable mit Verteilung gespeichert haben, kann ich mit allen Variablen gleichzeitig kommunizieren oder Nachrichten an einzelne Spalten oder Variablen senden. Dies mache ich mit Indizes. Die Zeile zeigt, wie wir „Verteilung anpassen (Normal)“ – also die Anpassung einer Normalverteilung – an alle drei Spalten senden. Da der Betontyp nominal ist, kann er natürlich nicht darauf reagieren, Feuchtigkeit und Festigkeit hingegen schon. Ich führe also „line“ aus. Sie sehen, dass die angepasste Normalverteilung über beiden kontinuierlichen Verteilungen liegt und wir auch die angepassten Normalverteilungselemente erhalten. Dies ist wiederum ein Befehl aus dem roten Dreieckmenü. „Fit Distribution“ ist ein älterer Name für den Befehl. In neueren JMP-Versionen heißt er „Continuous Fit“, aber beide funktionieren noch. Noch eine Anmerkung: Ich gehe zurück zum Protokoll. Als ich das Skript zum Starten der Verteilung ausführte, wurde der Name der Plattform angezeigt. Das ist ein Hinweis darauf, dass ich eine Objektreferenz der Analyseebene habe. Wenn ich im Skript mit der Maus über „dist“ fahre, wird das angezeigt. Als ich den Befehl hingegen nachträglich aus dem roten Dreieckmenü ausführte, erhielt ich nur das skriptfähige Ergebnis. „line“ und „line“ führen nun einen Mittelwerttest an einer Stichprobe durch. Im roten Dreieckmenü lautet der Befehl einfach „Test Mean“. Für die Luftfeuchtigkeit ergibt es jedoch keinen Sinn, denselben hypothetischen Mittelwert für beide zu testen. Hier ist mein Stichprobenmittelwert und die Stärke liegt bei etwa . Ich zeige Ihnen also, wie das interaktiv aussieht. Wenn ich auf das rote Dreieck neben den kontinuierlichen Variablen gehe und „Mittelwert testen“ auswähle, gebe ich einen Wert für den hypothetischen Mittelwert ein. Ich breche das ab und kehre zum Skript-Editor zurück. In Zeile 1 teste ich, ob der Mittelwert gleich ist, und sende das in die dritte Spalte des Verteilungsfensters. Ich indiziere „dist“ mit der Zahl. Ich führe Zeile 1 aus. Im Berichtsfenster befindet sich der Einstichproben-t-Test für den Mittelwert. Dasselbe mache ich nun für die Luftfeuchtigkeit mit einem anderen hypothetischen Mittelwert von. Die Art und Weise, wie ich indiziere, wird etwas anders sein. Ich verwende den Spaltennamen als Zeichenfolge – als Index – anstelle der Position im Bericht. Ich führe also „line“ aus und erhalte den T-Test für Luftfeuchtigkeit. Das sind nur einige Beispiele für die Verteilungsplattform und das Skripting der Analyseebene mit Befehlen aus dem roten Dreieckmenü. Fahren wir mit der Einwegplattform fort. Ich schließe das Verteilungsskript und den Verteilungsbericht, verwende aber weiterhin die Datentabelle „Concrete“. Im Journal klicke ich auf „Einfaktorielles ANOVA-Skript“. Das war zunächst recht umfangreich. Wir haben den gesamten Start in einer Zeile. Wir senden die Nachricht an die Datentabelle „Concrete“. Die Nachricht lautet „One-Way Platform Launch“ mit „Strength“ in der Y-Rolle und „Concrete Type“ in der X-Rolle. Mit diesem Booleschen Argument fordern wir die Aktivierung der Mittelwertrauten an. Die Objektreferenz der Analyseebene speichern wir in „ow“. Ich führe also die Zeile „Zeile“ aus. So erhalten wir unser Ausgabefenster und natürlich den Namen der Plattform. Wenn Sie mit der Maus darüberfahren, wird Folgendes in ow gespeichert: Die grünen Mittelwertrauten – wenn ich auf das rote Dreieck neben „Einfaktorielle Analyse“ gehe, finden Sie sie unter „Anzeigeoptionen“, „Mittelwertrauten“. Standardmäßig wären diese nicht aktiviert, wenn ich die Varianzanalyse nicht bereits durchgeführt hätte. Mein Skript kann sie aber aktivieren. Dieses Skriptfenster muss jetzt nicht so breit sein. Sehen wir uns noch ein paar weitere Beispiele an. Im roten Dreieckmenü hier haben wir die Möglichkeit, das Alpha-Niveau festzulegen. Es gibt drei Standardwerte. Außerdem gibt es noch „Sonstiges“, das Sie optional auswählen können. In diesem Beispiel sende ich die Nachricht „Alpha-Niveau festlegen“ an ow und setze es auf … Beachten Sie, dass die Höhe dieser grünen Mittelwertrauten das Konfidenzintervall des Mittelwerts darstellt, also das Minus-Alpha-Konfidenzintervall des Mittelwerts. Der Standard-Alpha-Wert ist: Wenn ich den Alpha-Wert auf setze, wird das Konfidenzintervall. Sie werden also größer. Ich führe also die Zeile aus. Wir sehen, wie sich die Höhe der mittleren Rauten ändert. Ein weiterer Bericht, den wir für die One-Way-Plattform anfordern können, ist der Quantilbericht, wenn ich auf das rote Dreieck gehe. Ich aktiviere ihn in der Zeile. Beachten Sie, dass die Befehle in diesem Menü ohne Untermenüs ein Boolesches Argument in Klammern akzeptieren können oder, wie Sie in der Zeile für die ANOVA sehen, die gleichbedeutend mit Mittelwerten ist, überhaupt kein Argument akzeptieren müssen. Menüpunkte mit Untermenüs akzeptieren hingegen diese Untermenüpunkte als Argumente. Ich werde gleich darauf eingehen, warum wir dieses Boolesche Argument verwenden sollten, obwohl es nicht erforderlich ist. Aber jetzt führe ich die Zeile aus. Damit erhalte ich die Quantilberichtstabelle und füge Boxplots hinzu. Und denken Sie daran: ANOVA und Mittelwert sind Synonyme. Dies ist also nur ein weiterer Befehl aus dem roten Dreieckmenü. Ich habe die Klammern im Booleschen Argument aber noch einmal weggelassen. Was passiert also, wenn ich die Zeile ausführe? Ich führe sie aus. Und ich erhalte die Varianzanalyse. Ich sollte noch einmal darauf hinweisen, dass wir den Plattformnamen im Protokoll bei jeder Interaktion sehen. Was passiert nun, wenn ich die Zeile erneut ausführe? Ich erhalte eine Meldung im Protokoll – eine Meldung mit einem leeren Booleschen Argument, das eine bereits aktivierte Option aktiviert. Diese Option bleibt aktiviert. Es wird lediglich erwähnt, dass Sie in früheren Versionen von JMP tatsächlich hin- und hergeschaltet hätten, indem Sie diese Zeile wiederholt ausgeführt hätten, ohne ein Boolesches Argument angeben zu müssen. Wenn Sie sich also Skripte ansehen, die in älteren Versionen geschrieben wurden, werden Sie das möglicherweise bemerken. Wir empfehlen jedoch, immer das Boolesche Argument zu verwenden, damit in Ihrem Skript klar erkennbar ist, dass ich diese Option aktiviere und nicht ausschalte. Und wenn ich es dann entfernen möchte, führe ich eine Zeile mit dem Booleschen Argument aus. So schalte ich den Quantilbericht aus. Ich ersetze also in Zeile ‚das‘ durch ‚ein‘ und führe nur diese Zeile aus. Die Quantiloption ist damit entfernt. Wir haben in einer vorherigen Demonstration gesehen, dass man Nachrichten an ein Objekt kaskadieren kann. Wir können aber auch eine Liste von Nachrichten an ein Objekt senden. Ich erstelle also eine neue Zeile im Skript-Editor. Die Variable ow, die die Objektreferenz meiner Analyseebene speichert, empfängt die Nachricht. Es wird eine Liste mit ungleichen Varianzen sein. Ich aktiviere sie mit dem Booleschen Argument. Im roten Dreieckmenü finde ich „Ungleiche Varianzen“. Damit erhalten wir die Heteroskedastizitätstests. Danach setze ich ein Komma und eine schließende Klammer vor das Boolesche Argument für „Ungleiche Varianzen“. Ich setze das Alpha-Level auf den Standardwert zurück. Ich gebe „Alpha-Level festlegen“ ein und setze in Klammern: „Ich muss die Klammer schließen, da ich den Cursor aus dieser Codezeile herausgezogen habe, bevor ich fertig war.“ Dann fahre ich mit dem Pfeil über die Liste – ich verschiebe das, um die ganze Zeile zu sehen – und setze ein Semikolon. So kann ich diese Zeile erneut mit der Eingabetaste auf dem Ziffernblock ausführen. Unten im Fenster befindet sich nun der „Ungleiche Varianztest“. Oben sehen Sie, dass wir das Alpha-Level auf „Ungleiche Varianztest“ zurückgesetzt haben. Das sind nun unsere Konfidenzintervalle. Die kleinen blauen Linien stammen vom „Ungleiche Varianztest“. Hier einige Beispiele für Skripting mit den roten Dreieckbefehlen in der One-Way Platform: Schließen wir das Berichtsfenster und das Skript, ohne die Änderungen zu speichern. Im Journal klicke ich auf „Bivariates Skript“. Wir arbeiten wieder mit der Datentabelle „Concrete“. Die Variable, die die Objektreferenzen dieser Analyseebene speichert, ist biv. Ich sende „Bivariate“ an die Datentabelle mit „Stärke“ in der Y-Rolle und „Feuchtigkeit“ in der X-Rolle. Ich fordere „Linie anpassen“ an, die aus dem roten Dreieckmenü beim Plattformstart kommt. Ich führe die Linien durch. Der Plattformname wird im Protokoll angezeigt. Wenn ich mit der Maus über biv fahre, sehe ich das. Wir haben also „Stärke“ gegen „Feuchtigkeit“ aufgetragen und die Regressionslinie angepasst. Und dann einige der anderen Nachrichten – wenn ich also auf das rote Dreieck gehe, sehe ich „Linie anpassen“. Ich kann alle diese Befehle nachträglich senden. Ich hätte „Linie anpassen“ eigentlich auch nach dem Start senden können. Aber ich verwende „Polynom anpassen“. Sie sehen, dass es dieses Untermenü gibt. Wir müssen also diese Argumente verwenden. Und in der Zeile sende ich die Nachricht an biv, „Polynom anpassen“, also das quadratische Polynom zweiter Ordnung. Ich führe diese Linie aus. Das ergibt eine zweite Anpassung. Wenn ich wieder nach oben scrolle, sehen Sie, dass die zweite Anpassung über dem Diagramm liegt. Hier habe ich zwei rote Dreieckmenüs, eines für die lineare Anpassung und eines für die polynomische Anpassung. Sie haben eigene Befehle, die sich von denen der bivariaten Anpassung oben im Fenster unterscheiden. Wenn ich beispielsweise eine schattierte Anpassung der Konfidenzbänder der linearen Anpassungen haben möchte – der Befehl lautet „Konfidenz schattierte Anpassung“ –, muss ich etwas Besonderes tun. Ich muss zuerst mit der linearen Anpassung kommunizieren. Das Ergebnis der linearen Anpassung, das diese Nachricht empfängt, wird dann als Nachricht an die bivariate Anpassung gesendet. Das Skript dafür – wir bezeichnen das erste einfach als „Kurve“. Wir verwenden den Index „Konfidenz schattierte Anpassung“. Diese Nachricht wird in Klammern gesetzt. Und das ist die Nachricht, die biv empfängt. Ohne diese Klammern würde biv versuchen, „Kurve“ zu verstehen. Diesen Begriff finden Sie natürlich weder in den Untermenüs noch im Hauptmenü. Auch „Konfidenz-Schattierte Anpassung“ werden Sie hier nicht finden. Er ist mit dieser Kurve verknüpft, die im Bericht als „Lineare Anpassung“ bezeichnet wird. Wenn ich also die gesamte Linie ausführe, erhalte ich schattierte Konfidenzbänder auf meiner Regressionslinie. Ähnlich verhält es sich mit einem dieser roten Dreieckmenüs – ich klicke aber auf das neben „Polynomische Anpassung“. Dort können wir die Linienfarbe ändern. Die Standardfarbe ist Rot für die erste Anpassung, Grün für die zweite und so weiter. Angenommen, ich möchte sie in Blau ändern. Auch hier kann ich das an die zweite Kurve senden, es in Klammern setzen, und das ist die Nachricht, die an Bivariate weitergeleitet wird. Ich führe also „Linie“ aus. Und Sie sehen, dass sich die Linienfarbe geändert hat. Das ist auch schon etwas. Wenn Sie wissen möchten, wie Sie ein Skript erstellen und es nicht erst nach dem Start als Nachricht an die Plattform senden müssen, sondern es in den Start einbinden möchten, können Sie dies interaktiv tun und JMP das Skript anschließend im Skriptfenster speichern lassen und so damit arbeiten. In diesem Fall wäre „Confid Shaded Fit“ ein Argument für „Fit Line“. Außerdem würden Sie das Polynom als Argument für „Launch“ anpassen. Die Linienfarbe wäre ebenfalls ein Argument dafür. Als Letztes betrachten wir hier die bivariate Plattform, allerdings mit einer Variable in der Rolle „By“, sodass wir für jede Ebene dieser Variable separate bivariate Objekte erhalten. Ich schließe also das Skriptfenster und den bivariaten Bericht. Im Kursjournal klicke ich auf „Grouped Bivariate Script“. Wie im vorherigen Skript starte ich die bivariate Plattform, indem ich die Nachricht an die Datentabelle „Concrete“ sende und das Ergebnis in der Variable „biv“ mit „Strength“ in der Y-Rolle und „X“ in der Luftfeuchtigkeitsrolle speichere. Zusätzlich füge ich den Typ „Concrete“ in die Analyserolle „By“ ein. Sehen wir uns an, wie das aussieht, wenn ich Linien durchführe. Wir haben also sechs bivariate Objekte in diesem Berichtsfenster. Im Protokoll sehe ich, dass eine Liste mit sechs Elementen zugewiesen wurde. Wie sieht diese Liste aus? Ich gehe zurück zum Skript-Editor und bewege den Mauszeiger über „biv“. Es ist eine Liste mit sechs bivariaten Objekten. Ich kann also eine Nachricht an „biv“ senden. Alle Objekte reagieren, wie in der Zeile, wenn ich „Fit Line“ sende. Im Protokoll wird die Liste aller Objekte angezeigt, die geantwortet haben. Im Fenster falte ich alle linearen Anpassungen zusammen, indem ich die Strg-Taste gedrückt halte und auf die Schaltfläche zum Öffnen der Gliederung neben der ersten linearen Anpassung klicke. Da ich die Strg-Taste gedrückt halte, werden alle Berichte im Fenster angezeigt, damit ich einfacher scrollen kann. Sie sehen, dass wir die bivariate Anpassung für „Consolidated Reinforced“, „Consolidated Standard“, „EZMix Reinforced“, „EZMix Standard“ usw. haben. Was passiert, wenn ich nur einige Objekte ansprechen möchte, nicht alle bivariaten Objekte? Dafür verwende ich Indizes. Ich könnte einen einzelnen Indizes verwenden, um nur ein Objekt anzusprechen. Sehen wir uns zwei Beispiele an, bei denen mehr als ein Objekt reagieren soll. In der Zeile für den Indizes geben wir die Indexwerte der Objekte an, die reagieren sollen. Das erste und dritte bivariate Objekt sollen dem quadratischen Modell, dem Gradpolynom, entsprechen. Ich führe also die Zeile aus. Und wieder drücke ich die Strg-Taste, um das Gliederungselement der polynomischen Anpassung auszublenden und das Scrollen zu erleichtern. Das erste Objekt, das erste bivariate Objekt, hat also eine polynomische Anpassung. Der zweite nicht. Der dritte schon. Und natürlich auch der vierte, fünfte und sechste nicht. Im letzten Beispiel verwende ich die Indexfunktion und ihren Operator, den Infix-Operator mit zwei Doppelpunkten. Dies zählt von der ersten zur zweiten Zahl in Schritten von. Das Ergebnis ist „Spline anpassen“ im roten Dreieckmenü unter „Flexibel“. Sie sehen alle Argumente, die Sie angeben können. Wir arbeiten also mit einem relativ flexiblen Spline für bivariate Anpassungen. Ich führe die Zeile „Spline anpassen“ aus. Beachten Sie auch hier das Protokoll – ich habe vergessen, darauf hinzuweisen. Wenn ich eine Nachricht an zwei Objekte sende, erhalte ich eine Liste mit zwei Objekten. Und gerade, als ich eine Nachricht an drei Objekte sende, erhalte ich eine Liste mit den drei Objekten. Wenn wir uns das ansehen, sehen wir, dass die erste und zweite bivariate Anpassung keinen Spline ergaben. Die dritte schon. Die vierte schon. Die fünfte schon. Und die sechste nicht. Wir können also eine By-Rolle verwenden und separate Analysen und Objekte für jede Ebene dieser By-Variable erstellen. Anschließend können wir mit allen gemeinsam oder mit einzelnen Objekten kommunizieren. Dies waren nur einige Beispiele für den Start und die Interaktion mit der Analyseebene in einigen der gängigen JMP-Plattformen.