Subscribe Bookmark RSS Feed

How can insert custom parameter in the stat summary.

vadim_livitz

New Contributor

Joined:

Jun 17, 2016

Besides commonly used quality capability performance indices (Cp, Cpk, Pp, Ppk), my company also uses K-index.  K=|Xbar-T|/(min(USL-T, T-LSL)). Basically it is similar to Ppk, except that it gives a non-statistical manager a quick glance of process mean deviation from the target in percent.  Some prefer not use the absolute numerator.  Then +/- sign indicate if process is under or over spec target,

Once I enter the LSL/USL in column properties or capability under distribution platform, I calculate K manually, which is time-consuming, especially if I have many specs.  Can I program this formula in the JSL?  I am fairly new to JSL and I want to learn how to do it.

3 REPLIES
txnelson

Super User

Joined:

Jun 22, 2012

You can do what you are talking about.  Here is a script that illustrates it.using the Semiconductor Capability sample data table:

Names Default To Here( 1 );

dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );

dis = dt << Distribution( Continuous Distribution( Column( :NPN1 ) ) );

// Calculate K

k = ((Report( dis )["Summary Statistics"][1][1][2] << get)[1] - (dt:NPN1 << get property( "Spec Limits" ))["Target"]) /

Min(

       ((dt:NPN1 << get property( "Spec Limits" ))["USL"]) - (dt:NPN1 << get property( "Spec Limits" ))["Target"],

       (dt:NPN1 << get property( "Spec Limits" ))["Target"] - (dt:NPN1 << get property( "Spec Limits" ))["LSL"]

);

// Put into the display

// Place the k value into a list

klist = {};

Insert Into( klist, k );

ob = Outline Box( "K Value", Table Box( Number Col Box( "K Value", klist ) ) );

Report( dis )["Capability Analysis"] << prepend( ob );


12688_pastedImage_0.png

Jim
vadim_livitz

New Contributor

Joined:

Jun 17, 2016

Thank you so much Jim.  That looks awesome!  I think this is what I need.  Can you please also advise me what is the best way to keep this script as "handy tool" in order to apply for different data tables.

Thank you,

txnelson

Super User

Joined:

Jun 22, 2012

Here is a script that will generate the Distribution output for all columns in a data table that has LSL, USL, and Target

Names Default To Here( 1 );

dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );

columnList = dt << get column names( numeric, string );

NW = New Window( "Distributions", HLB = H List Box() );

For( i = 1, i <= N Items( columnList ), i++,

       If(

              Is Empty( Try( (Column( dt, columnList[i] ) << get property( "Spec Limits" ))["USL"] ) ) == 0 & Is Empty(

                     Try( (Column( dt, columnList[i] ) << get property( "Spec Limits" ))["LSL"] )

              ) == 0 & Is Empty( Try( (Column( dt, columnList[i] ) << get property( "Spec Limits" ))["Target"] ) ) == 0,

              dis = Distribution( Continuous Distribution( Column( column(dt,columnList[i]) ) ) );

              // Calculate K

              k = ((Report( dis )["Summary Statistics"][1][1][2] << get)[1] - (Column( dt, columnList[i] ) << get property( "Spec Limits" ))["Target"]) /

              Min(

                     ((Column( dt, columnList[i] ) << get property( "Spec Limits" ))["USL"]) - (Column( dt, columnList[i] ) << get property( "Spec Limits" ))[

                     "Target"],

                     (Column( dt, columnList[i] ) << get property( "Spec Limits" ))["Target"] - (Column( dt, columnList[i] ) << get property( "Spec Limits" ))

                     ["LSL"]

              );

              // Put into the display

              // Place the k value into a list

              klist = {};

              Insert Into( klist, k );

              ob = Outline Box( "K Value", Table Box( Number Col Box( "K Value", klist ) ) );

              Report( dis )["Capability Analysis"] << prepend( ob );

              HLB << append( Report(dis) );

             

              dis << close window;

       )

);

Jim