cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • JMP will suspend normal business operations for our Winter Holiday beginning on Wednesday, Dec. 24, 2025, at 5:00 p.m. ET (2:00 p.m. ET for JMP Accounts Receivable).
    Regular business hours will resume at 9:00 a.m. EST on Friday, Jan. 2, 2026.
  • We’re retiring the File Exchange at the end of this year. The JMP Marketplace is now your destination for add-ins and extensions.

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