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

Showing results for

- JMP User Community
- :
- Discussions
- :
- Nonlinear Path Parametric Degradation with one glo...

- 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

Jul 26, 2017 11:56 AM
(850 views)

I am gearing up to run a nonlinear path parametric degradation analysis.

I have one parameter, n, that I want to fit Globally, but another parameter b0 I want to Fit by System ID

So I want the second part of this (the global fit to n):

but the first parameter b0, fit like this:

I've mocked up what I'd ideally be able to do:

where the parameter b0 is indexed by DUT but the parameter n is not.

Any help here would be vastly appreciated.

1 ACCEPTED SOLUTION

Accepted Solutions

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

Jul 26, 2017 1:27 PM
(1638 views)

Solution

Good idea ... unfortunately, some of the data being fit contains negative values.

I actually did figure out though, that what I need to do was compare the script for the both b0 and n global parameters against the script with both b0 and n FIT by System ID. Then I tried melding the two scripts ... and it worked! (see below)

the red is where I made changes ... first removing the [DUT] index from n, and then simply reducing the lists to hit all 8 DUTs worth of b0 and only a single instance of n.

Degradation(

Y( :shift ), Time( :duration ),Label( :DUT ), Upper Spec Limit( 20 ), Lower Spec Limit( -20 ),

Application( Repeated Measures Degradation ), Connect Data Markers( 1 ), Show Fitted Lines( 0 ), Show Spec Limits( 1 ),

Show Median Curves( 0 ), Show Legend( 0 ), No Tab List( 0 ), Set Upper Spec Limit( 20 ), Set Lower Spec Limit( -20 ), Set Censoring Time( . ),

Show Residual Plot( 1 ), Show Inverse Prediction Plot( 1 ), Inverse Prediction Interval( No Interval ), Inverse Prediction Alpha( 0.05 ),

Path Specifications(

Simple Linear(

Add Custom X Scale(

{{"Linear", Function( {x}, x ), Function( {x}, x )}}),

Add Custom Y Scale({{"Linear", Function( {x}, x ), Function( {x}, x )}}),

Slope( Different ),Intercept( Different ),Select X Scale( "Linear" ),Select Y Scale( "Linear" )),

Nonlinear Path(Add Formula(

Formula Name( "ShiftModel" ),Formula(

Parameter({b0 = 1, n = 0.6},

duration ^ **n** * b0[DUT] )),

Initial Values([0.009, 0.017, 0.026, 0.007, 0.015, 0.025, 0.019, 0.008, **0.600**]),

Lower([-0.016, -0.009, -0.002, -0.017, -0.011, -0.004, -0.008, -0.015, **-12.797**]),

Upper([0.035, 0.043, 0.054, 0.033, 0.041, 0.054, 0.047, 0.032, **13.998**]),

Fitting Method( QuasiNewton BFGS ),

Fixed([0, 0, 0, 0, 0, 0, 0, 0,** 0**])),

Select Formula( "ShiftModel" ))),

Nonlinear Path( 1 ),Mean Path( 1 ),

SendToReport(Dispatch({"Overlay", "Model Specification"},"ShiftModel",TextEditBox,{Fixed Size( 1, 102, 16 )})))

2 REPLIES

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

Jul 26, 2017 12:43 PM
(839 views)

I understand your first statement and picture of a non-linear degradation path. I do not understand your second example but that is OK.

What if you use a log transformations? Then your model: Duration^n * b0(DUT) becomes linear as: log( b0(DUT) ) + n * Log( Duration ). Use a different intercept and a common slope option for the linear path. Then back transform if you like.

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

Jul 26, 2017 1:27 PM
(1639 views)

Good idea ... unfortunately, some of the data being fit contains negative values.

I actually did figure out though, that what I need to do was compare the script for the both b0 and n global parameters against the script with both b0 and n FIT by System ID. Then I tried melding the two scripts ... and it worked! (see below)

the red is where I made changes ... first removing the [DUT] index from n, and then simply reducing the lists to hit all 8 DUTs worth of b0 and only a single instance of n.

Degradation(

Y( :shift ), Time( :duration ),Label( :DUT ), Upper Spec Limit( 20 ), Lower Spec Limit( -20 ),

Application( Repeated Measures Degradation ), Connect Data Markers( 1 ), Show Fitted Lines( 0 ), Show Spec Limits( 1 ),

Show Median Curves( 0 ), Show Legend( 0 ), No Tab List( 0 ), Set Upper Spec Limit( 20 ), Set Lower Spec Limit( -20 ), Set Censoring Time( . ),

Show Residual Plot( 1 ), Show Inverse Prediction Plot( 1 ), Inverse Prediction Interval( No Interval ), Inverse Prediction Alpha( 0.05 ),

Path Specifications(

Simple Linear(

Add Custom X Scale(

{{"Linear", Function( {x}, x ), Function( {x}, x )}}),

Add Custom Y Scale({{"Linear", Function( {x}, x ), Function( {x}, x )}}),

Slope( Different ),Intercept( Different ),Select X Scale( "Linear" ),Select Y Scale( "Linear" )),

Nonlinear Path(Add Formula(

Formula Name( "ShiftModel" ),Formula(

Parameter({b0 = 1, n = 0.6},

duration ^ **n** * b0[DUT] )),

Initial Values([0.009, 0.017, 0.026, 0.007, 0.015, 0.025, 0.019, 0.008, **0.600**]),

Lower([-0.016, -0.009, -0.002, -0.017, -0.011, -0.004, -0.008, -0.015, **-12.797**]),

Upper([0.035, 0.043, 0.054, 0.033, 0.041, 0.054, 0.047, 0.032, **13.998**]),

Fitting Method( QuasiNewton BFGS ),

Fixed([0, 0, 0, 0, 0, 0, 0, 0,** 0**])),

Select Formula( "ShiftModel" ))),

Nonlinear Path( 1 ),Mean Path( 1 ),

SendToReport(Dispatch({"Overlay", "Model Specification"},"ShiftModel",TextEditBox,{Fixed Size( 1, 102, 16 )})))