cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
JMP is taking Discovery online, April 16 and 18. Register today and join us for interactive sessions featuring popular presentation topics, networking, and discussions with the experts.
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
uday_guntupalli
Level VIII

Re: Capturing degradation fit parameters to table?

@galactus3000,
   While this doesn't directly answer your question, I think this is helpful for you .

 

https://community.jmp.com/t5/JSL-Cookbook/Extract-Statistics-from-an-Analysis-into-a-Report/ta-p/415...

Best
Uday
galactus3000
Level IV

Re: Capturing degradation fit parameters to table?

thanks ... closer but not there yet .... how do I now extract the values I want?

script below ... I've created analysis and report level variables dgr and reportdgr

but now how do I get the parameters from this variable reportdgr? (see pic below script)

 

 

dt=currentdatatable();


dgr=dt<<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" )}
//		)
//	)
);
reportdgr=dgr<<Report;
reportdgr[Outline Box("Overlay")][Outline Box("Model Specification")]<<close(0);

  CaptureDegradationWindow.JPG

uday_guntupalli
Level VIII

Re: Capturing degradation fit parameters to table?

Use Show Tree Structure() . This should give you the reference name of the Parameter block in your window.

You can then extract values by referring to that box

 

https://community.jmp.com/t5/Discussions/How-to-extract-Parameter-Estimates-of-Reciprocals-i-e-make-...

Best
Uday
galactus3000
Level IV

Re: Capturing degradation fit parameters to table?

ah ... so I am primarily interested in NumberColEditBox(1) highlighted below

ModelSpecificationTreeStructure.JPG

galactus3000
Level IV

Re: Capturing degradation fit parameters to table?

In order to fit the model, I need to "press" ButtonBox(5) which is labeled Fit Model

how do I do this?

 I tried

dgr<<Fit Model;

but this didn't work?

galactus3000
Level IV

Re: Capturing degradation fit parameters to table?

still looking for answers on this

ian_jmp
Staff

Re: Capturing degradation fit parameters to table?

Try 'Help > Scripting Index' then search for "Button Box". You should see that you can send it a 'Click' message which has the same effect as pressing the button manually.

galactus3000
Level IV

Re: Capturing degradation fit parameters to table?

Ian,

Thanks for the response.  Upon refering to scripting index, the <<click command for ButtonBox seems elusive.  Not seeing it.

Charlie

 

txnelson
Super User

Re: Capturing degradation fit parameters to table?

Here is a screen capture from the Scripting Index that details the "Click" for the Button Box()

Click.PNG

Jim