cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Learn how to build custom Python data connectors and further customize JMP’s Data Connector Framework with the Python Data Connector Demo, available now in the JMP Marketplace!
  • See how to create experiments to support product design and ID useful product features. Register for June 12 webinar, 2pm US Eastern Time.

Discussions

Solve problems, and share tips and tricks with other JMP users.
Choose Language Hide Translation Bar
shasheminassab
Level IV

Calculate Moving R2

How can I calculate R2 between two variables (i.e. columns) in a moving window (e.g., 10 pairs of data at a time)?

 

Sina

5 REPLIES 5

Re: Calculate Moving R2

See this discussion about performing linear regression in a column formula. This approach could be extended to obtain R square or other results.

shasheminassab
Level IV

Re: Calculate Moving R2

Thanks @Mark_Bailey. What is the function to calculate R2 in JSL? (sorry I am new to JSL scripting and couldn't find it online).

ron_horne
Super User (Alumni)

Re: Calculate Moving R2

Re: Calculate Moving R2

I understand.

 

Here is an example based on the Big Class data table in the Sample Data folder. It fits a moving linear regression with a span of 5. It returns the R square value in each row. You can run this script to see how it works.

 

Names Default To Here( 1 );

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );

// example creates a new column with a moving R square with a span of 5
// for regression of :weight versus :height
dt << New Column( "Moving R Square",
	Numeric,
	Continuous,
	Formula(
		If( Row() > 2 & Row() < (N Row()-1),
			x = J( 5, 1, 1 ) || :height[Index( Row() - 2, Row() + 2 )]`;
			y = :weight[Index( Row() - 2, Row() + 2 )]`;
			sst = Sum( (y - Mean( y )) ^ 2 );
			b = (Inv( x` * x ) * x` * y);
			yhat = x * b;
			sse = Sum( (y - yhat) ^ 2 );
			(sst-sse) / sst;
		,
			Empty()
		)
	)
);

 

You can select the part of this script that is within the parentheses after the Formula argument and past that expression into a new column formula in your data table, then change the column names to match your X and Y data columns.

shasheminassab
Level IV

Re: Calculate Moving R2

Thank you @Mark_Bailey and @ron_horne . This was very helpful!!

Recommended Articles