cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
See how to use to use Text Explorer to glean valuable information from text data at April 25 webinar.
Choose Language Hide Translation Bar
View Original Published Thread

Calculate Moving R2

shasheminassab
Level IV

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!!