turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- JMP User Community
- :
- Discussions
- :
- Discussions
- :
- Nonlinear Regression

Topic Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Jan 19, 2009 12:10 PM
(2122 views)

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?

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

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Jan 21, 2009 5:25 AM
(2077 views)
| Posted in reply to message from stevecaffrey 01/19/2009 03:10 PM

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;

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!

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

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.

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.