cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Try the Materials Informatics Toolkit, which is designed to easily handle SMILES data. This and other helpful add-ins are available in the JMP® Marketplace
Choose Language Hide Translation Bar

Automated Extrapolation of Threshold

Imagine a scenario where you are trying to measure the accuracy of the penalty kicks of 10000 soccer players.

As you move farther from the goals, the less accurate the players will be and more shots will be missed.

I would like to extrapolate out the threshold distance where 10% of players start missing.

This is not a real world problem, it's a hopefully more easily understood description of my problem.

Attached data table yields the following plot.

Penalty_Kicks.png

I would like to figure out the x value (ie the distance) when the graph passes the 10% miss rate.

I know I can read from the graph using the Crosshairs, but I would like to be able to do this automatically/programmatically.

Using JMP16.0

2 REPLIES 2
txnelson
Super User

Re: Automated Extrapolation of Threshold

Here is a little script that I believe will give you the distance you are requesting.  It finds the row above and below the target value, and interpolates between them to find the approximated distance.

Names Default To Here( 1 );
dt = Current Data Table();
target = .1;

lowerMax = Max( dt:shots_Missed_%[dt << get rows where( :Shots_Missed_% <= target )] );
lowerRow = (dt << get rows where( :Shots_Missed_% <= target ))[Loc(
	dt:shots_Missed_%[dt << get rows where( :Shots_Missed_% <= target )],
	lowerMax
)[1]];

upperMin = Min( dt:shots_Missed_%[dt << get rows where( :Shots_Missed_% >= target )] );
upperRow = (dt << get rows where( :Shots_Missed_% >= target ))[Loc(
	dt:shots_Missed_%[dt << get rows where( :Shots_Missed_% >= target )],
	upperMin
)[1]];

Distance = Interpolate(
	target,
	:shots_Missed_%[lowerRow],
	:distance_m[lowerRow],
	:shots_Missed_%[upperRow],
	:distance_m[upperRow]
)
;
Jim

Re: Automated Extrapolation of Threshold

If you're looking for a non-scripting solution, you can use the Custom Inverse Prediction tool in the Fit Curve Platform to give you the predicted X for a given Y. This would require you to find a curve that fits your data well, though, which may not be what you are looking for. I attached an updated version of your file with the Fit Curve script saved.

Jed_Campbell_3-1671141107555.png