Has anyone defined a spline function (i.e. defineFuction) in PMML?
There is quite a few parameters that need to be defined, with a fairly lengthy math. For example, for a predictor with a 3-knot restrictive cubic spline, I have seven parameters (including two coefficients, three knots, one reference point and one predictor name). The math includes a bit of exponential, max statements, etc.
Here is an example of my Javascript code to calculate the value from a 3-knot RCS.
function spline3(exp_value, exp_mean, exp_coef, exp_coef1, knot1, knot2, knot3) {
var step1 = exp_coef*(exp_value-exp_mean);
var step2 = Math.pow((knot3 - knot1),(2/3));
var step3 = Math.pow(Math.max((exp_value - knot1)/step2,0), 3);
var step4 = ((knot2 - knot1) * Math.pow(Math.max((exp_value - knot3)/step2,0), 3));
var step5 = (knot3 - knot1) * Math.pow(Math.max((exp_value - knot2)/ step2 ,0), 3);
var step6 = (knot3 - knot2);
var output = (step3 + step4 - step5/step6) * exp_coef1 + step1;
return output ;
}