Alle-
Ich möchte ein Skript ausführen, das eine bivariate Anpassung ausführt, und die vorhergesagten Daten in einem Vektor speichern. Außerdem möchte ich vermeiden, das bivariate Fenster anzuzeigen.
Ich werde die Vorhersagen für zusätzliche Berechnungen verwenden und sie nicht in der Datentabelle speichern.
Folgendes habe ich bisher und es funktioniert nicht:
dt = Current Data Table();
kernelSmoother = Bivariate( Y( :Gas Rate ), X( :Days ), Kernel Smoother( 1, 1, 0.1, 4 ) );
data = kernelSmoother << curve[1] << Get values;
kernelSmoother << Close();
Bitte helfen Sie mir bei diesem Problem.
Vielen Dank.
-Alvaro
Hallo Alvaro,
Hier ist eine funktionale Option, um Ihr Ziel zu erreichen. Mit dem Befehl "Vorhersagen speichern" wird jedoch eine Spalte erstellt, die am Ende des Skripts gelöscht wird. Dies ist nicht die eleganteste Methode zum Codieren, funktioniert jedoch
Names Default to Here (1);
dt = New Table( "SMOOTHER", //DUMMY TABLE
Add Rows( 100 ),
New Column( "X",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[1.67141067952957, -0.76185849552488, -0.603569458585827,
-0.756591674648757, 1.67340127655787, 0.0724575048740926,
0.159151730633123, -0.142889975446617, -0.874252989365011,
2.20294936082557, 0.18772074392043, -1.95789244934657,
0.0565106299651629, -0.605593026877751, 0.215613648250195,
2.3340049358012, -1.45888459127005, 0.583985564786941,
-0.317617101142023, -1.01947851069745, -0.700371328441461,
-1.76311244328458, 1.27998808300495, -1.04925859492911,
0.0615589538740275, 0.462341043767196, -0.364022756931157,
1.02591441155842, -0.961981489749384, -1.39888051775824,
-0.865484355080553, 0.0575924079013767, 2.67743272934693,
0.4895074706041, -0.353930652223919, 1.20197971417602, -1.94239723119073,
-1.80497764170637, 0.25322439936394, -0.803259183745682,
0.39877828050007, -1.39955079023924, -0.563270821962345,
1.00706367759649, -0.920919695429428, 0.595171257889085,
-0.785001186597782, 0.208610084917619, -1.365985295334, 1.3245192372372,
-1.137335505516, 0.380940775706916, 0.20277798167723, 2.7906587946415,
-0.474281058783615, 0.83128552480405, 1.06220976388948, -1.0783438678021,
-0.328722058193142, -1.22317459147617, 0.333615959204505,
-0.724960155164842, -2.10379798294336, 1.25945379498795,
1.39315374582064, 0.555402221964133, 0.0260943614927882,
-1.26262871377769, 0.905999353008783, -1.22971363040978,
-0.0835673126007406, 1.15329782793192, -1.31994532927163,
-1.09423235562862, 0.917365400223469, 1.65907130186835,
-1.61042285504848, -0.591548656921071, 0.131205378825393,
0.032797267621596, 0.87921466697569, 2.0586778387245, 0.562803054567428,
0.615792486119142, -0.118419312940292, -1.04518110416241,
-0.787515369931859, -0.627189651196433, 2.15324102656227,
0.83620623786038, -0.012097864616955, -0.311798951269388,
-2.59148801545045, 1.04832591823423, -0.586188226264991,
0.939584870287117, -0.545152048029061, -0.475765043667705,
-0.732494093426154, 0.926602866805675]
)
),
New Column( "Y",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Sine( :X ) ),
Set Selected
)
);
biv = Bivariate( Y( :Y ), X( :X ), invisible); //Set the basic bivariate plot in invisible mode
biv << Kernel Smoother( 1, 1, 0.1, 4 , {Save predicteds}); // calls the Smoother with the option to save predicted
biv << Close window;
vect = [];
vect = Column (dt, "Predicted Y") << get values; //captures the predicted Y into a list
Show (vect);
dt << Delete Columns (:Predicted Y); //removes the Predicted Y column
Vielleicht haben andere Mitglieder des JMP-Forums eine elegantere Möglichkeit, dies zu erreichen.
Beste,
TS
Danke für diesen Vorschlag @ Thierry_S
Ich möchte vermeiden, die resultierenden Werte in die Datentabelle aufzunehmen, da ich die bivariate Funktion in verschiedene "Fälle" iterieren und anschließend den resultierenden Vektor in die Spalte einfügen möchte. Gibt es dafür eine bessere Lösung?
Meine Daten haben die folgende Struktur, daher möchte ich eine letzte Spalte mit allen angepassten Werten nach Fall erstellen.
-Alvaro
