Finden des Scheitelpunkts eines bivariaten DiagrammsHallo zusammen,
Ich versuche, einen Scheitelpunkt aus einem bivariaten Diagramm zu ermitteln
Bisher bekomme ich den Parameter mit einem Skript extrahiert und ihn per Excel-Tabelle berechnet.
Ich bin mir ziemlich sicher, dass die Funktion zum Suchen von Scheitelpunkten in JMP enthalten ist, aber ich konnte sie nicht finden.
Gibt es eine Möglichkeit, den Scheitelpunkt direkt abzurufen?
Danke
dt = Current data Table ();
biv=Bivariate(
Y( :contrast_100cm ),
X( :Offset_Z ),
Fit Polynomial( 2, {Line Color( {212, 73, 88} )} ),
Where( :site == "Para#4" )
);
rbiv = biv << report;
rbiv[tablebox(4)]<<MAKE data="https://community.jmp.com/" table=""></MAKE>
Erweiterte statistische ModellierungAutomatisierung und SkripterstellungDatenmischung und -bereinigungMassenanpassungQualitäts- und VerfahrenstechnikBetreff: Scheitelpunkt eines bivariaten Diagramms findenEs funktionierte
Vielen DankBetreff: Scheitelpunkt eines bivariaten Diagramms findenWie ich schon oft gepostet habe, ist das An Report senden() Und Versenden() Argumente sind für JMP gedacht, um Anpassungen zu speichern. Sie sind nicht für Benutzer bestimmt. Natürlich können Sie sie verwenden. Aber es gibt bessere Möglichkeiten.
Es scheint, dass Sie die Antwort zur Handlung hinzufügen möchten. Dieses Beispiel zeigt, wie das geht.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// fit quadratic polynomial interpolating function
biv = dt << Bivariate(
Y( :weight ),
X( :height ),
Fit Line
);
// get reference to report layer
rbiv = biv << Report;
// get parameter estimates
parm = rbiv["Parameter Estimates"][Number Col Box( 1 )] << Get As Matrix;
// compute x intercept
ans = -parm[1] / parm[2];
rbiv[FrameBox(1)] << Add Graphics Script(
Text( { 52.5, 160 }, "X intercept is " || Char( ans ) )
);Betreff: Scheitelpunkt eines bivariaten Diagramms findenHallo Makrbailey,
Kann ich um weitere Dinge bitten?
Ich habe das Skript leicht geändert, um eine lineare Funktion zu lösen, und es hat ordnungsgemäß funktioniert.
Ich habe jedoch festgestellt, dass die Überprüfung des Ergebnisses über das Protokoll nicht so praktisch ist wie die Überprüfung über die Baumbox.
Soweit ich weiß, ist die Versandfunktion die richtige, um eine Baumkiste zum Melden zu erstellen.
Also habe ich das Skript wie folgt geändert. Es funktioniert jedoch nicht.
und ich möchte die Antworten für jede Site erhalten (es gibt 4 Sites). Also habe ich es versucht, aber es hat auch nicht funktioniert.
Könnten Sie mir bitte Ihre Hand reichen, um das Problem zu lösen?
Vielen Dank
-> Mein Ziel
1. Fügen Sie die Anhänge jeder Site hinzu.
2. Dem Bericht hinzufügen.
-> Mein Skript
Namen standardmäßig hier( 1 );
dt = Aktuelle Datentabelle();
// Quadratische Polynom-Interpolationsfunktion anpassen
biv = dt << Bivariate(
Y( :CALU_CALU_intr_cy ),
X( :OC-Offset Y um ),
Linie anpassen( {Linienfarbe( {212, 73, 88} )} ),
von(:site),
);
// Verweis auf Berichtsebene abrufen
rbiv = biv << Bericht;
// Parameterschätzungen abrufen
parm = rbiv["Parameterschätzungen"][Number Col Box( 1 )] << Get As Matrix;
// x-Achsenabschnitt berechnen
ans = -parm[1] / parm[2];
rbiv< {"ans"},
„ans“,
Rahmenbox,
{Markergröße(3)}
);
Danke
Betreff: Scheitelpunkt eines bivariaten Diagramms findenDer Zeigen() Die Funktion schreibt Text basierend auf ihren Argumenten in das Protokollfenster, das standardmäßig nicht geöffnet ist. Wählen Ansicht > Protokoll wenn Sie Windows verwenden oder Fenster > Protokoll wenn Sie Macintosh verwenden.
Ich habe das Skript geändert, um den x-Achsenabschnitt zu schätzen, vorausgesetzt, dass er in der realen Ebene existiert. Es ist lediglich die quadratische Lösung für die Wurzeln.
Names Default To Here( 1 );
// example of data
x = -5::5;
dt = New Table( "Non-Linear Data",
New Column( "X", Numeric, Continuous, Values( x ) ),
New Column( "Y", Numeric, Continuous, Values( x^2 - x - 12 ) )
);
// fit quadratic polynomial interpolating function
biv = dt << Bivariate(
Y( :Y ),
X( :X ),
Fit Polynomial( 2 )
);
// get reference to report layer
rbiv = biv << Report;
// get parameter estimates
parm = rbiv["Parameter Estimates"][NumberColBox( 1 )] << Get As Matrix;
// compute x intercept
ans = parm[2]^2 - 4*parm[3]*parm[1];
x intercepts = If( ans > 0,
(-parm[2] + { -1, 1 } * Sqrt( ans )) / (2*parm[3]);
);
Show( parm, x intercepts );Betreff: Scheitelpunkt eines bivariaten Diagramms findenVielen Dank für die freundliche Antwort.
Da Sie jeden Code durch Bemerkungen erklärt haben, war er leicht zu verstehen.
Ich habe versucht, Ihren Code zu ändern, um das herauszufinden x-Achsenabschnitt in linearer Funktion.
aber es kam nichts heraus.
Eigentlich weiß ich wirklich nicht, wie die „Show-Funktion“ funktioniert.
Könnten Sie mir bitte helfen, dieses Problem zu lösen?
Danke
Betreff: Scheitelpunkt eines bivariaten Diagramms findenDanke für deine Antwort.
Ich habe das Skript getestet und festgestellt, dass es genau das ist, was ich gesucht habe.
(Auch wenn ich nicht den gesamten Code verstanden habe)
Ich habe jedoch festgestellt, dass der Offset_Z-Wert, der anhand der Antwortoberfläche berechnet wird, geringfügig von meiner manuellen Berechnung (durch Differential) abweicht.
Der Unterschied lag unter 0,0003, also war das keine große Sache
Nochmals vielen Dank für Ihre Hilfe
Betreff: Scheitelpunkt eines bivariaten Diagramms findenOder ein anderer Ansatz besteht darin, „Modell anpassen“ zu verwenden und das Antwortoberflächenmakro zu verwenden, damit JMP das Antwortoberflächenattribut festlegt. Anschließend erhalten Sie eine Antwortoberflächenausgabe, die nach den kritischen Werten auflöst.
Ich habe dieses Skript von JMP mit einigen von mir erfundenen Daten erstellen lassen.
Fit Model(
Y( :contrast_100cm ),
Effects( :Offset_Z & RS, :Offset_Z * :Offset_Z ),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Leverage" ),
Run(
:contrast_100cm << {Summary of Fit( 0 ), Analysis of Variance( 0 ),
Parameter Estimates( 0 ), Lack of Fit( 0 ), Scaled Estimates( 0 ),
Plot Actual by Predicted( 0 ), Plot Residual by Predicted( 0 ),
Plot Studentized Residuals( 0 ), Plot Effect Leverage( 0 ),
Plot Residual by Normal Quantiles( 0 ), Box Cox Y Transformation( 0 )}
),
SendToReport(
Dispatch(
{"Response contrast_100cm", "Whole Model"},
"Summary of Fit",
OutlineBox,
{Close( 1 )}
),
Dispatch(
{"Response contrast_100cm", "Whole Model"},
"Analysis of Variance",
OutlineBox,
{Close( 1 )}
),
Dispatch(
{"Response contrast_100cm", "Whole Model"},
"Parameter Estimates",
OutlineBox,
{Close( 1 )}
),
Dispatch(
{"Response contrast_100cm"},
"Response Surface",
OutlineBox,
{Close( 0 )}
)
)
)
Hier ist der Teil der Ausgabe, der den kritischen Wert findet.

Betreff: Scheitelpunkt eines bivariaten Diagramms findenJMP verfügt nicht über einen Solver als solchen. Sie passen jedoch eine quadratische Polynom-Interpolationsfunktion an, sodass Sie nur die erste Ableitung in Bezug auf Offset_Z auf Null setzen und nach Offset_Z auflösen müssen. Ich gehe davon aus, dass Sie mit „Scheitelpunkt“ das Minimum oder Maximum der Funktion meinen.
Names Default To Here( 1 );
// example of data
dt = Current Data Table();
// fit quadratic polynomial interpolating function
biv = dt << Bivariate(
Y( :contrast_100cm ),
X( :Offset_Z ),
Fit Polynomial( 2, {Line Color( {212, 73, 88} )} ),
Where( :site == "Para#4" )
);
// get reference to report layer
rbiv = biv << Report;
// get parameter estimates
parms = rbiv[NumberColBox( 1 )] << Get As Matrix;
// compute extremum
extremum = -parms[2] / (2*parms[3]);
Show( parms, extremum );