- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Saving R-Square values from smoothing spline fit
Hi all,
Is there a way to save the R-Square value from the smoothing spline fit in JSL? I'd like to be able to reference it at a later point.
Thanks!
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Saving R-Square values from smoothing spline fit
The Output Display's Tree Structure for the output you are looking for, is different than the example I gave. If you right click on the gray triangle beside the Bivariate Fit of NPN1 By PNP1 outline box(), and then select
Edit==>Show Tree Structure
You can see the Tree Structure for all of the output.
Below is the script using your output
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
biv = Bivariate(
Y( :NPN1 ),
X( :PNP1 ),
Fit Spline( 100000, {Line Color( {204, 121, 41} )}, {Save Predicteds})
);
// Offset into the report object and get the RSquare value
RSquare = (Report(biv)["Smoothing Spline Fit, lambda=100000"][NumberColBox(1)]<<get)[1] ;
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Saving R-Square values from smoothing spline fit
All display data in an output table from a JMP platform is available to JSL. Here is a simple example that retrieves the Smoother RSquare value
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
biv = Bivariate(
Y( :NPN1 ),
X( :PNP1 ),
Kernel Smoother( 1, 1, 0.343642611683849, 0 )
);
// Offset into the report object and get the RSquare value
RSquare = Num(Report(biv)["Local Smoother"][numberbox(1)]<<get text);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Saving R-Square values from smoothing spline fit
Thanks for the reply Jim. The example you gave helps a bit, but it doesn't work exactly the same for a Fit Spline(). What's the problem with the syntax in the following..
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
biv = Bivariate(
Y( :NPN1 ),
X( :PNP1 ),
Fit Spline( 100000, {Line Color( {204, 121, 41} )}, {Save Predicteds})
);
// Offset into the report object and get the RSquare value
RSquare = Num(Report(biv)["Smoothing Spline Fit, lambda=100000"][numberbox(1)]<<get text);
The error implies a problem with the numberbox(1).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Saving R-Square values from smoothing spline fit
The R-square value is contained in a number col box in this case, not a number box. You find the container for the value you want by viewing the tree structure. See this page for instructions on that: https://www.jmp.com/support/help/14/view-the-display-tree.shtml
You just need to replace the last line with this:
RSquare = (Report(biv)["Smoothing Spline Fit, lambda=100000"][numbercolbox(1)]<< Get)[1];
The << Get message to the number col box will return a list of values. You can alternatively use "<< Get As Matrix". The [1] returns the first list item, which is the R-squared value.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Saving R-Square values from smoothing spline fit
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Saving R-Square values from smoothing spline fit
The Output Display's Tree Structure for the output you are looking for, is different than the example I gave. If you right click on the gray triangle beside the Bivariate Fit of NPN1 By PNP1 outline box(), and then select
Edit==>Show Tree Structure
You can see the Tree Structure for all of the output.
Below is the script using your output
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
biv = Bivariate(
Y( :NPN1 ),
X( :PNP1 ),
Fit Spline( 100000, {Line Color( {204, 121, 41} )}, {Save Predicteds})
);
// Offset into the report object and get the RSquare value
RSquare = (Report(biv)["Smoothing Spline Fit, lambda=100000"][NumberColBox(1)]<<get)[1] ;
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Saving R-Square values from smoothing spline fit
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Saving R-Square values from smoothing spline fit
If I add a "by(:SITE)" in the "Bivariate" function, then I will have five plots in the report. How can I extract all five Rsquare value and save it as a new column in the table?
Thanks,
Zihao
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Saving R-Square values from smoothing spline fit
The Bivariate Platform creates a separate tree structure for each of the By levels. To access the RSquare value, all that has to be done, is to point to the RSquare value as in the single Bivariate execution, but to add a subscript for which one of the RSquares outputs you want. Below is a simple modification to the script, to place the RSquare values for all 5 sites into a new data table
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
biv = Bivariate(
Y( :NPN1 ),
X( :PNP1 ),
Fit Spline( 100000, {Line Color( {204, 121, 41} )}, {Save Predicteds} ),
by( :site )
);
// Offset into the report object and get the RSquare value
RSquare = {};
For( i = 1, i <= N Items( biv ), i++,
Insert Into(
RSquare,
(Report( biv[i] )["Smoothing Spline Fit, lambda=100000"][Number Col Box( 1 )]
<< get)[1]
)
);
dtRSquare = New Table( "RSquareTable", New Column( "RSquares", values( RSquare ) ) );
To fully understand how to deal with the Output Display Trees created by JMP, strongly suggest that you read the section on Display Trees in the Scripting Guide
Help==>Books==>Scripting Guide