Subscribe Bookmark RSS Feed

Nonlinear Regression

stevecaffrey

Community Trekker

Joined:

Jun 23, 2011

I am trying to fit a one predictor (x) nonlinear model. Below some value of x my model form is different than above that x. Using an conditional if in the formula, I am setting that x value to a parameter to be estimated:

Parameter({theta1 = 1, theta2 = 1, b2 = 20, b3 = 1, b4 = 1},

If( :Pore Size - b2 < 0, 1 / (1 + theta1 * Exp(theta2 * ( :Pore Size - 10))),

1 / (1 + b3 * Exp(b4 * ( :Pore Size - 10)))))

But when I run nonlinear with this model, JMP will not vary b2--it keeps it fixed.

Any help out there?
2 REPLIES
markbailey

Staff

Joined:

Jun 23, 2011

I think you can do this regression. You are on the right track. You just need to expand the conditional test so that the two forms of the model are the second and third arguments (ignoring the Parameters for the moment):

If( criterion,
model1,
model2
);

I am not sure about b2 as a parameter. Is this criterion set independently or is it fit from the data? You might want to replace b2 with constant if it is the former use.

Another way is to use a Boolean expression as a multiplier in one model that includes both forms. In this way, the logic determines which form contributes to the model for a particular value of X:

(criterion)*model1 + Not(criterion)*model2;
Learn it once, use it forever!
stevecaffrey

Community Trekker

Joined:

Jun 23, 2011

Mark, good to hear from you! I'm working at Corning Glass now.

Anyway, I did stumble upon using the boolean multiplier approach. I was trying to set b2 from the data as an unknown point. I was trying to knit to functions together to fit the data better. I've found that nonlinear can be very sensitive--if I ask something that causes difficulty it can really be a pain as I'm attempting to fit 140+ curves at once.