Ableitungen einer KernelglättungsfunktionHallo nochmal,
Ich verwende den Kernel-Smoother, um einige Werte zu schätzen und die Vorhersageformel in einer neuen Spalte zu speichern. Für meinen Zweck funktioniert das sehr gut.
obj = dt_clean << Bivariat ( Y ( : Temperatur ), X ( : Z_res ) , von (: Datum ),invisible);
obj << Kernel Smoother ( 1 , 1 , . 2 , 0 );
obj << (curve[ 2 ] << Save Prediction Formula );
Ich benötige nun die Ableitung dieser Funktion an jedem Punkt der X-Variablen. Innerhalb der Datentabelle kann ich dies problemlos mit der Ableitungsfunktion im Formeleditor erledigen. Ich muss dies jedoch in JSL-Code umsetzen. Ich habe bereits verschiedene Syntaxvarianten ausprobiert, leider ohne Erfolg. Hat jemand aus der Community Vorschläge, wie ich das lösen kann?
Vielen Dank für jede Hilfe, die Sie mir zukommen lassen können, Yves.
Automatisierung und SkripterstellungBetreff: Ableitungen einer KernelglättungsfunktionSie können diese Funktion aus JSL aufrufen, die das Feature aus dem Formeleditor anzeigt:

Betreff: Ableitungen einer KernelglättungsfunktionVielen Dank, Mark, für deine schnelle Antwort. Ich hatte bereits mit der oben genannten Funktion experimentiert, konnte sie aber schließlich zum Laufen bringen, indem ich die Vorhersageformel in einen Ausdruck umgewandelt, die Ableitungsfunktion auf den Namensausdruck angewendet und sie dann in einer neuen Spalte gespeichert habe. Hier ist der Code. Nochmals vielen Dank!
formula_exp = column(4) << Get Formula;
der_expr=derivative( name expr(formula_exp), :Z_res) ;
dt_clean<< New Column( "Derivative", Formula( Name expr(der_expr)));
Betreff: Ableitungen einer KernelglättungsfunktionWow, echt nett, danke!
: - )

Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
gb = dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
);
gbb = Report(gb)[GraphBuilderBox(1)];
gbb << updateElement(1, 1, 2, {Save Formula});
nc= n cols(dt);
myFormula = column (dt,nc) << get formula;
Eval (Eval Expr(New Column( "derivative",
Formula(
f = As Constant(
Derivative( Expr(Name Expr(myFormula)),:height ));
f;
),
)));
gb << Add Variable( {:derivative, Role( "Y" )} )