Subscribe Bookmark RSS Feed

Actual by predicted plot of specific model

Gabriela_MJ

Occasional Contributor

Joined:

Jan 4, 2017

Hello,

 

I have a column (type formula) which corresponds to the model of another column (response).

I would like to know if it is possible to graph the actual by predicted plot considering as "actual" the response column and the column which contains the formula as the "predicted". 

I only see these graph when the model is defined by jmp.

 

Thanks in advance.

1 ACCEPTED SOLUTION

Accepted Solutions
markbailey

Staff

Joined:

Jun 23, 2011

Solution

This could be done with column formulas but it would get messy. This script should do the trick:

dlg = Column Dialog(
	Title( "Evaluate Model" ),
	yCol = Col List( "Response",
		Data Type( Numeric ),
		Min Col( 1 ),
		Max Col( 1 )
	),
	mCol = Col List( "Model",
		Data Type( Numeric ),
		Min Col( 1 ),
		Max Col( 1 )
	)
);
If( dlg["Button"] == -1,
	Throw( "User cancelled" );
);
Remove From( dlg );
Eval List( dlg );
dt = Current Data Table();
response = yCol[1] << Get As Matrix;
model = mCol[1] << Get As Matrix;
residual = model - response;
sst = Sum( (response - Mean( response ) )^2 );
sse = Sum( residual^2 );
ssm = sst - sse;
r square = ssm / sst;
dt << New Column( "Residual", Values( residual ) );
New Window( "Evaluate Model",
	dt << Graph Builder(
		Variables( X( mCol[1] ), Y( yCol[1] ) ),
		Elements( Points( X, Y, Legend( 3 ) ) ),
		Show Control Panel( 0 )
	),
	dt << Graph Builder(
		Variables( X( :Residual ), Y( yCol[1] ) ),
		Elements( Points( X, Y, Legend( 3 ) ) ),
		Show Control Panel( 0 )
	),
	Text Box( "R square is " || Char( r square ) )
);
Learn it once, use it forever!
4 REPLIES
markbailey

Staff

Joined:

Jun 23, 2011

I think the solution might be simple.

  1. Select Graph > Graph Builder.
  2. Select the observed response and drag it to the Y drop zone.
  3. Select the model column and drag it to the X drop zone.

Let me know if I over-simplified your request.

Learn it once, use it forever!
Gabriela_MJ

Occasional Contributor

Joined:

Jan 4, 2017

Hello,

 

Thank's for your answer. I think I did not explain very well my objective. 

What I want to do, it is to evaluate my model. I would like to define the RSquare value of the model (if it is possible) and obtain the residual by predicted plot. Something like the jmp report for the fit least squares but considering the model that I defined as a formula.

 

Kind regards

markbailey

Staff

Joined:

Jun 23, 2011

Solution

This could be done with column formulas but it would get messy. This script should do the trick:

dlg = Column Dialog(
	Title( "Evaluate Model" ),
	yCol = Col List( "Response",
		Data Type( Numeric ),
		Min Col( 1 ),
		Max Col( 1 )
	),
	mCol = Col List( "Model",
		Data Type( Numeric ),
		Min Col( 1 ),
		Max Col( 1 )
	)
);
If( dlg["Button"] == -1,
	Throw( "User cancelled" );
);
Remove From( dlg );
Eval List( dlg );
dt = Current Data Table();
response = yCol[1] << Get As Matrix;
model = mCol[1] << Get As Matrix;
residual = model - response;
sst = Sum( (response - Mean( response ) )^2 );
sse = Sum( residual^2 );
ssm = sst - sse;
r square = ssm / sst;
dt << New Column( "Residual", Values( residual ) );
New Window( "Evaluate Model",
	dt << Graph Builder(
		Variables( X( mCol[1] ), Y( yCol[1] ) ),
		Elements( Points( X, Y, Legend( 3 ) ) ),
		Show Control Panel( 0 )
	),
	dt << Graph Builder(
		Variables( X( :Residual ), Y( yCol[1] ) ),
		Elements( Points( X, Y, Legend( 3 ) ) ),
		Show Control Panel( 0 )
	),
	Text Box( "R square is " || Char( r square ) )
);
Learn it once, use it forever!
M_Anderson

Staff

Joined:

Nov 21, 2014

You could try Fit Y by X. Put the real data in X, the model data in Y. Fit a line (red triangle). The slope is the RSquared and you can examine the residuals using the other plots.

Best,

M