Hallo Community,
Ich bin relativ neu bei jmp und habe eine Frage zum Konturplot.
Ich habe 20 Experimente durchgeführt, deren Design zentral zusammengesetzt war. Ich habe ein Response-Surface-Modell an meine Daten angepasst.
Ich habe dann das Modell verwendet, um Vorhersagen über meinen gesamten Designraum zu generieren. Ich habe dann ein Konturdiagramm der Vorhersagen erstellt.
Gibt es eine Möglichkeit, meine experimentellen Datenpunkte, beispielsweise mit einem x markiert, zum Konturdiagramm hinzuzufügen? Gibt es auch eine Möglichkeit, diese Datenpunkte mit dem Wert der abhängigen Variablen zu kennzeichnen, die ich in meinen Experimenten gefunden habe?
Anbei ist ein Bild, das ich in Farbe gezeichnet habe, um zu veranschaulichen, was ich tun möchte. Ich weiß nicht, wie ich programmieren soll, daher wäre eine Antwort mit Menüauswahl und / oder Screenshots am hilfreichsten. Danke sehr
Danke für Ihre Antwort. Ich war nicht in der Lage, das Skript zu verstehen. Aber ich habe einen Weg gefunden, es zu tun. Ich habe meine Konturdiagramme mit Konturdiagramm aus dem Diagrammmenü erstellt. Ich habe auch Streudiagramme meiner unabhängigen Variablen erstellt. Ich habe die Rahmeninhalte aus dem Streudiagramm in die Contor-Plots kopiert. Dann habe ich die Punkte manuell mit Textanmerkungen beschriftet.
Hi @Alexandrus ,
Willkommen in der Community! Dies ist ein bisschen doozy für einen neuen JMP-Benutzer, weil wir viel JMP-Skripting machen müssen, aber los geht's:
Ich gehe davon aus, dass Sie den Konturprofiler in Modell anpassen und nicht in einem separaten benutzerdefinierten Profiler anzeigen.In beiden Fällen gelten die gleichen allgemeinen Schritte.Ich verwende den benutzerdefinierten RSM-Beispieldatensatz aus der Beispieldatenbibliothek.
Öffnen Sie zunächst ein neues Skript und erstellen Sie einen Variablenverweis auf Ihre Datentabelle.Hier öffne ich nur die benutzerdefinierte RSM-Tabelle.
dt = Open("$Sample_Data\Design Experiment\Custom RSM.jmp");Sie müssen das Skript für den Bericht abrufen, der Ihren Profiler enthält.Wenn es von Fit Model stammt, sieht das Skript so aus: Fit Model(Y(:Y), Effects(...),...); Wir müssen einen Verweis auf das Berichtsfenster erhalten, damit wir den Inhalt des Profilers anpassen können.So habe ich es mit dem benutzerdefinierten RSM-Beispiel gemacht:
rpt = (
dt << Fit Model(
Y( :Y ),
Effects(
:X1 & RS,
:X2 & RS,
:X3 & RS,
:X1 * :X1,
:X1 * :X2,
:X2 * :X2,
:X1 * :X3,
:X2 * :X3,
:X3 * :X3
),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Screening" ),
Run(
Contour Profiler(
1,
Term Value(
X1( 0, Lock( 0 ), Show( 1 ) ),
X2( 0, Lock( 0 ), Show( 1 ) ),
X3( 0, Lock( 0 ), Show( 1 ) )
),
Contour Value( Y( 62.703, Min( 52.5 ), Max( 75 ) ) ),
Grid Density( "40 x 40" ),
Contour Grid( 50, 80, 5, Y ),
Horizontal Factor( :X1 ),
Vertical Factor( :X2 ),
Y Colors( 21 ),
Up Dots( 0 )
),
:Y << {Summary of Fit( 1 ), Analysis of Variance( 1 ),
Parameter Estimates( 1 ), Effect Details( 0 ), Sorted Estimates( 0 ),
Scaled Estimates( 0 ), Plot Actual by Predicted( 1 ), Plot Regression( 0 ),
Plot Residual by Predicted( 1 ), Plot Residual by Row( 1 ),
Plot Studentized Residuals( 0 ), Plot Effect Leverage( 0 ),
Box Cox Y Transformation( 1 ), Show VIF( 1 )}
)
)
) << Report;Beachten Sie, dass ich dem Skript "Modell anpassen" "rpt = (dt <<" vorangestellt und dann Folgendes in das Back-End eingefügt habe: ") << Report;".Die Variable „rpt“ enthält nun einen Verweis auf das Reportfenster für Fit Model.
Als nächstes müssen wir die Werte der Variablen abrufen, die Sie im Contour Profiler darstellen.In meinem Beispiel sind die 2 Variablen x1 und x2.Ich brauche auch die Y-Werte für meine Punktbeschriftungen.
//plotted points
x1_vals = :x1 << Get Values;
x2_vals = :x2 << Get Values;
//values used in labels
y_vals = :y << Get Values;
Jetzt kann ich ein Grafikskript hinzufügen, um die Punkte und den Text im Profiler wie folgt zu zeichnen:
rpt["Contour Profiler"][FrameBox(1)] << Add Graphics Script(
Marker(x1_vals, x2_vals);
for(i=1,i<=N Row(dt),i++,
text(eval list({x1_vals[i],x2_vals[i]+0.05}),char(y_vals[i]));
)
);
Die Dinge in Klammern helfen mir, den Anzeigebaum hinunter zu navigieren, um zu der Framebox zu gelangen, die den Plot enthält.Ich verwende Marker(), um die Punkte hinzuzufügen.Ich verwende die Schleife, um die Etiketten hinzuzufügen.
Das Endergebnis sieht so aus:
Beachten Sie, dass ich einige Punkte und Beschriftungen übereinander gezeichnet habe, weil ich einen dritten Faktor habe, X3.Wir könnten dies weiter anpassen, um zu verhindern, dass die Labels übereinander liegen, aber Sie möchten wahrscheinlich auch den Wert für x3 zu all diesen Labels hinzufügen.Grundsätzlich skaliert diese Lösung nicht sehr gut für mehr als 2 Faktoren, aber wenn Sie nur 2 haben, sollte dies wirklich gut funktionieren.