Obtención de derivadas de una función suavizadora de núcleoHola de nuevo,
Estoy usando el suavizador de kernel para estimar algunos valores y generar la fórmula de predicción en una nueva columna. Funciona muy bien para mi propósito.
obj = dt_clean << Bivariado ( Y ( : temperatura ), X ( : Z_res ) , por (: fecha ),invisible);
obj << Suavizador de núcleo ( 1 , 1 , . 2 , 0 );
obj << (curva[ 2 ] << Guardar fórmula de predicción );
Ahora necesito la derivada de esta función en cada punto de la variable X. Puedo hacerlo fácilmente en la tabla de datos usando la función de derivada en el editor de fórmulas. Sin embargo, necesito hacerlo con código JSL. He probado todo tipo de sintaxis, pero sin éxito. ¿Alguna sugerencia sobre cómo hacerlo en la comunidad?
Muchas gracias por cualquier ayuda que puedas brindarme, Yves.
Automatización y secuencias de comandosRe: Obtención de derivadas de una función suavizadora de núcleoPuedes llamar a esta función desde JSL que muestra la característica desde el Editor de fórmulas:

Re: Obtención de derivadas de una función suavizadora de núcleoGracias, Mark, por tu rápida respuesta. Estuve probando la función anterior, pero finalmente logré que funcionara. Primero, convertí la fórmula de predicción en una expresión, apliqué la función de derivada a la expresión del nombre y luego la guardé en una nueva columna. Para tu referencia, aquí tienes el código. ¡Gracias de nuevo!
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: Obtención de derivadas de una función suavizadora de núcleo¡Guau, muy bonito, gracias!
: - )

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