Calcul des dérivées d'une fonction de lissage à noyauSalut à nouveau,
J'utilise un lisseur à noyau pour estimer certaines valeurs et j'enregistre la formule de prédiction dans une nouvelle colonne. Cela fonctionne très bien pour mon besoin.
obj = dt_clean << bivarié ( Y ( : température ), X ( : Z_res ) , par (: date ),invisible);
obj << Lisseur à noyau ( 1 , 1 , . 2 , 0 );
obj << (curve[ 2 ] << Enregistrer la formule de prédiction );
J'ai besoin de calculer la dérivée de cette fonction pour chaque valeur de la variable X. Je peux facilement le faire directement dans le tableau de données grâce à la fonction dérivée de l'éditeur de formules. Cependant, je dois l'intégrer dans du code JSL. J'ai essayé différentes syntaxes sans succès. Auriez-vous des suggestions ?
Merci beaucoup pour votre aide, Yves
Automatisation et scriptageRe: Calcul des dérivées d'une fonction de lissage à noyauVous pouvez appeler cette fonction depuis JSL, ce qui permet d'accéder à la fonctionnalité depuis l'éditeur de formules :

Re: Calcul des dérivées d'une fonction de lissage à noyauMerci Mark pour votre réponse rapide. J'avais essayé différentes approches avec la fonction ci-dessus, mais j'ai finalement réussi à la faire fonctionner en intégrant d'abord la formule de prédiction dans une expression, puis en appliquant la fonction dérivée à l'expression du nom et enfin en enregistrant le résultat dans une nouvelle colonne. Voici le code pour information. Merci encore !
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)));
Re: Calcul des dérivées d'une fonction de lissage à noyauWaouh, vraiment sympa, merci !
: - )

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" )} )