cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Learn how to build custom Python data connectors and further customize JMP’s Data Connector Framework with the Python Data Connector Demo, available now in the JMP Marketplace!
  • See how to use Accelerated Life Testing (ALT) to evaluate reliability. Register for June 5 webinar, 2pm US Eastern Time.

Discussions

Solve problems, and share tips and tricks with other JMP users.
Choose Language Hide Translation Bar
galactus3000
Level IV

Capturing degradation fit parameters to table?

How do I capture reliability degradation fit parameters to table?

The four bolded lines are the crux of what I am trying to do.

Fitting the degradation and then simply capturing the fit parameters in a column.

 

Script below:

 

 

Degradation(
    Y( :current ),
    Time( :time ),
    Label( :DUT ),
    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( . ),
    Set Lower Spec Limit( . ),
    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( "modeledcurrent" ),
                Formula(
                    Parameter(
                        {b0 = 100, b1 = 40, b2 = 1},
                        b0[DUT] / (1 + Exp( (time - b1[DUT]) / b2[DUT] ))
                    )
                ),
                Fitting Method( QuasiNewton BFGS ),
                Fixed(
                    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
                )
            ),
            Select Formula( "modeledcurrent" )
        )
    ),
    Nonlinear Path( 1 ),
    Mean Path( 1 ),
    SendToReport(
        Dispatch(
            {"Overlay", "current Residuals by time"},
            "7",
            ScaleBox,
            {Min( -350 ), Max( 325 ), Inc( 50 ), Minor Ticks( 1 )}
        ),
        Dispatch(
            {"Overlay", "current Residuals by time"},
            "13",
            ScaleBox,
            {Min( -350 ), Max( 325 ), Inc( 50 ), Minor Ticks( 1 )}
        ),
        Dispatch(
            {"Overlay", "Model Specification"},
            "Empty",
            TextEditBox,
            {Fixed Size( 1, 100, 14 ), Set Text( "modeledcurrent" )}
        )
    )
);

Caption( "Picking off parameters from MPD curves" );
Wait( 0 );
prgStatus = New Window( "Progress",
    Show Menu( 0 ),
    Show Toolbars( 0 ),
    V List Box(
        align( center ),
        dlg_gb = Graph Box(
            Title( "200hr ttfs from MPD curves" ),
            FrameSize( 200, 30 ),
            X Scale( 0, 100 ),
            Y Scale( 0, 1 ),
            xaxis( Inside Ticks( 1 ) ),
            yaxis( Show Major Ticks( 0 ), Show Minor Ticks( 0 ), Show Labels( 0 ) ),
            xname( "% Complete" ),
            yname( "" )
        ),
        Button Box( "Cancel", prgStatus << Close Window )
    )
);

dt = Current Data Table();
p# = N Row( dt );
dt << New Column( "bee0", Numeric, Continuous, Format( "Fixed Dec", 8, 1 ) );
dt << New Column( "bee1", Numeric, Continuous, Format( "Fixed Dec", 8, 1 ) );
dt << New Column( "bee2", Numeric, Continuous, Format( "Fixed Dec", 8, 1 ) );

For( i = 1, i <= p#, i++,
    prgrs = (i / p#) * 100;
    Try(
        prgStatus[FrameBox( 1 )] << Add Graphics Script(
            {Fill Color( "green" ), Rect( 0, 1, prgrs, 0, 1 )}
        ),
        i = p# + 1
    );
    Wait( 0 );
    Try( :bee0[i] = b0[:DUT[i]] );
    Try( :bee1[i] = b1[:DUT[i]] );
    Try( :bee2[i] = b2[DUT[i]] )

    ;
);

 

 

How do I access the fit parameters?

 

Thanks in advance!

 

 

11 REPLIES 11
galactus3000
Level IV

Re: Capturing degradation fit parameters to table?

 

 

Re: Capturing degradation fit parameters to table?

You do not need to press or click any button in this case. There is a message in the Degradation platform protocol for this very purpose.

 

Names Default To Here( 1 );

// example case
dt = Open( "$SAMPLE_DATA/Reliability/GaAs Laser.jmp" );

// launch simple degradation analysis
degr = dt << Degradation(
	Y( :Current ),
	Time( :Hours ),
	Label( :Unit )
);

// use default model
degr << Generate Report for Current Model;

// get reference to report layer
degr rep = degr << Report;

// option 1: get estimates in new table
parameter table = degr rep["Reports"]["Estimate"][TableBox(1)] << Make Into Data Table;

// option 2: get estimates as matrix
parameter = degr rep["Reports"]["Estimate"][TableBox(1)][StringColBox(1)] << Get;
estiamte  = degr rep["Reports"]["Estimate"][TableBox(1)][NumberColBox(1)] << Get As Matrix;

Recommended Articles