cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Browse apps to extend the software in the new JMP Marketplace
Choose Language Hide Translation Bar
chewchan0
Level I

Capability Analysis:Count of samples beyond Upper & Lower Limit instead of PPM or Percetage

Hi,

I am trying to get the Count of samples that are fall above Upper limit and Lower Limit in Capability Indices。

http://www.jmp.com/support/help/Capability_Platform_Options.shtml

However, in the capability indices report table it only able to show PPM.  In my case I cannot use PPM because I am stacking few columns with same limit in one single column.  This will make the PPM calculation wrong

Is there any way that can use script the to retrieved the count so that I can recalculate in another data table?


1 ACCEPTED SOLUTION

Accepted Solutions
txnelson
Super User

Re: Capability Analysis:Count of samples beyond Upper & Lower Limit instead of PPM or Percetage

The Count of the Samples can be indirectly calculated.  The count is not specified, but the Portion is specified.  So if the N is multiplied by the Portion value, you will get the Count of the Samples.

12815_pastedImage_0.png

Interactively, this can be done by right clicking on the table and selecting Make into Data Table.  Then simple create a new column in the new data table, and specify the formula

      % Actual * xxxxx

where xxxxx is the value of N from the Summary Statistics paragraph

12816_pastedImage_3.png

The following is an example of scripting what you want:

Names Default To Here( 1 );

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

dt << dis = Distribution(

       Continuous Distribution( Column( :PNP3 ) ),

       SendToReport( Dispatch( {"Distributions", "PNP3", "Capability Analysis"},

       " Long Term Sigma", OutlineBox, {Close( 1 )} ) )

);


// Create the new data table

dtstats = Report( dis )["Capability Analysis"][1] << make into data table;


// Strip off the N value from the Summary Statistics table

Count = (Report( dis )["Summary Statistics"][1][1][2] << get)[6];


// Create the new column

dtstats << New Column( "Count of the Samples", formula( :Name( "% Actual" ) * count ) );


// Delete the formula to convert the results from virtual values to real values

dtstats:Count of the Samples << delete property( "Formula" );

Jim

View solution in original post

4 REPLIES 4
txnelson
Super User

Re: Capability Analysis:Count of samples beyond Upper & Lower Limit instead of PPM or Percetage

The Count of the Samples can be indirectly calculated.  The count is not specified, but the Portion is specified.  So if the N is multiplied by the Portion value, you will get the Count of the Samples.

12815_pastedImage_0.png

Interactively, this can be done by right clicking on the table and selecting Make into Data Table.  Then simple create a new column in the new data table, and specify the formula

      % Actual * xxxxx

where xxxxx is the value of N from the Summary Statistics paragraph

12816_pastedImage_3.png

The following is an example of scripting what you want:

Names Default To Here( 1 );

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

dt << dis = Distribution(

       Continuous Distribution( Column( :PNP3 ) ),

       SendToReport( Dispatch( {"Distributions", "PNP3", "Capability Analysis"},

       " Long Term Sigma", OutlineBox, {Close( 1 )} ) )

);


// Create the new data table

dtstats = Report( dis )["Capability Analysis"][1] << make into data table;


// Strip off the N value from the Summary Statistics table

Count = (Report( dis )["Summary Statistics"][1][1][2] << get)[6];


// Create the new column

dtstats << New Column( "Count of the Samples", formula( :Name( "% Actual" ) * count ) );


// Delete the formula to convert the results from virtual values to real values

dtstats:Count of the Samples << delete property( "Formula" );

Jim
chewchan0
Level I

Re: Capability Analysis:Count of samples beyond Upper & Lower Limit instead of PPM or Percetage

Hi Jim,
Thanks for reply.
I had tried your scripts.  However, it seems my JMP 12 seems didn't able to show the new data table.
I am not sure is due to my licenses which currently pending for renewal.

// Create the new data table

dtstats = Report( dis )["Capability Analysis"][1] << make into data table;


Another question, can above method to be used and automated by following user's Y column selection?
I plan to used the below report.

Capability Indices Report

chewchan0
Level I

Re: Capability Analysis:Count of samples beyond Upper & Lower Limit instead of PPM or Percetage

Hi Jim,

I found another scripts from you regarding Capability Indices Report from another user.

I had modified from there.


Thank you.

Re: Capability Analysis:Count of samples beyond Upper & Lower Limit instead of PPM or Percetage

Jim already gave you a nice solution, but I wanted to let you know another way to get the same results using the Process Capability platform.  Here is a picture with the observed count highlighted in yellow:

12846_pastedImage_8.png

I have placed the script to reproduce this report below.  Note that the "Observed Count" column in the Nonconformance report is a hidden column by default but can be easily shown by right clicking in the table and selecting it.  The script below unhides the column for you.  The other hidden columns are Observed PPM, Expected Within PPM, Expected Overall PPM, Expected Within Count, and Expected Overall Count.  This is available starting with JMP 12.

Names Default To Here( 1 );

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

dt << Process Capability(

    Process Variables( :PNP3 ),

    Spec Limits(

        PNP3(

            LSL( 118.677820430348 ),

            Target( 130.289793286446 ),

            USL( 141.901766142544 )

        )

    ),

    Individual Detail Reports( 1 ),

    Capability Box Plots( 0 ),

    Goal Plot( 0 ),

    SendToReport(

        Dispatch(

            {"Individual Detail Reports", "PNP3 Capability", "Nonconformance"},

            "Observed Count",

            NumberColBox,

            {Visibility( "Visible" )}

        )

    )

);