Your original question appears to be about a spline, fit to the noisy data, and finding the first minimum of that spline. For the example data, this seems to work:
dt = Open( "Z:/Minima_JMP.jmp" );
dt << sort( by( x ), replacetable( 1 ) );
obj = dt << Bivariate(
Y( :Y ),
X( :X ),
Fit Spline( 26.8534445, {Line Color( {66, 112, 221} )} ),
Automatic Recalc( 1 ),
SendToReport( Dispatch( {}, "Bivar Plot", FrameBox, {Frame Size( 1653, 240 )} ) )
);
obj << (Curve["Smoothing Spline Fit, lambda=26.8534445"] << Save Predicteds);
For( irow = 2, irow < N Rows( dt ), irow += 1,
If( dt:Spline Predictor for Y[irow] > dt:Spline Predictor for Y[irow - 1],
Write( Eval Insert( "the inflection upward trend begins around row ^irow^" ) );
// choose one of these...
dt << selectrows( 1 :: irow );
// dt<<deleterows(1::irow);
Break();
)
);
If( irow >= N Rows( dt ),
Write( "not found?" )
);
The selected points in the graph are also selected rows in the data table; press delete in the table. Or, choose the <<deleterows statement.
In the log: the inflection upward trend begins around row 231
That is after sorting the table by ascending X.
You'll get different answers by adjusting the spline's tension (lambda=...). Make sure to delete the predicted column before rerunning the script, or close the table without saving.
This idea will break if the actual shape of the data doesn't match your example; if it is already trending up at the beginning, etc.
This may not be the correct way to do what you need; I think you'll have to explain what sort of process the data comes from and why you want to find this point in the data in order to get other people to add some ideas.
Craige