Subscribe Bookmark RSS Feed

How to get nonlinear prediction with two variables in JMP?

hemi_timken_com

Community Member

Joined:

Apr 6, 2016

How to get nonlinear prediction with two variables in JMP?

3 REPLIES
billw_jmp

Staff

Joined:

Jul 2, 2014

Hello Hemi,

My suggestions below are based on a best guess as to what you want to accomplish.

One option you can try is to transform either your response data or your inputs of interest or both.  Try using either a log, Ln, or square root transformation to try and to make the data more linear. 

You can do all of this directly in the Fit Model platform.  By doing this in Fit Model you can use as many variables as you want to build the model. 

You can right click on any variable you want to transform in the column pick list and create a temporary transformation column to be used in the analysis.  If this transformation works you can then save the column to the data table by right clicking on the temporary column and choosing to save the column.  If you choose to transform your response data make sure to select the column as a response in the Fit Model platform, highlight the  "Y" column and then go to the Transform drop down in the lower middle of the dialogue box.  By setting the transformation this way your predicted response will be reported out in the original (not transformed) values.

Another option is to build a formula in a new column that incorporates the variables of interest.  You can then use that formula for the "X" in the nonlinear platform to develop your model.  This is especially useful and important if you are using a first principles equation that has additional parameters associated with it.

Whatever you choose to do make sure to save your prediction formula back to your data table.  Go to Graph > Profiler and select your prediction formula column for Y,Prediction Formula.  Be sure to select Expand Intermediate Formulas in the lower left and select OK.  This will allow you see how multiple variables influence the overall prediction.

Bill

DaveLee

Community Trekker

Joined:

Jun 11, 2014

Hi Hemi,

I often use a non-linear model to fit data.  I'll attach a snippet of code with the hope that it will point you in a direction.  I create a formula column and then run a Non_linear Fit.

Fade=Current Data Table();

Fade<<New Column("Stretched Exponential", Numeric, Continuous, Formula(Parameter( {a=1, b=-0.01, c=0.2}, a*exp(b*:Hours^c))));

f=Fade<<Nonlinear(

    Y( :Name("Std Light Output1") ),  //This is our measure of light output for an OLED panel

    X( :Name( "Stretched Exponential" ) ),

    Iteration Limit( 100000 ),

    Unthreaded( 1 ),

    Newton,

    Finish,

    By( :Dev ID ),

    Custom Inverse Prediction( Response( 0.9, 0.95 ),

    Term Value( Hours( . ) ) )

);

f_rep = f <<report;

rep=Report( f[1] )[Outline Box (3)][Table Box(1)] << Make Combined Data Table;

rep=current data table()<<Set Name("MSE Report");

rep=current data table();

rep<<Save(::results || " MSE Report.jmp");

life=Report( f[1] )[Outline Box (6)][Table Box(1)] << Make Combined Data Table;

life<<Current Data Table<<Set Name("Combined Life Predictions");

life=Current Data Table();

life<<New Column("Exp No", character, formula(Substr(  :Dev ID , 1, 10 )));

life<<Save(::results || " Combined T90 Predictions.jmp");

Let me know if you have any questions.


Dave

DaveLee

Community Trekker

Joined:

Jun 11, 2014

I also found an example of fitting data to a Weibull Distribution via the Non-Linear platform.