Hi,
I am creating control charts using Proc Shewart. I created a data set containing limits.
When these limits are being applied to my data, they vary because the sample size varies. I would like my limits to not vary according to sample size, just to take the Process mean and the standard deviation specified in the limits table to create the limits. Stability in the limits will make it easier for our operators to interpret.
I think there should be an easy way to do this, but I don't know what it is!
Thank you!
Kim
Hi Kimberley,
Could you post a code snippet of what you're trying to do? There are many different charts which can be produced by proc shewhart, and they have different default behavior for control limits based upon the underlying statistical assumptions. I see the "xsxhart" tag- is that really the "xschart" statement?
In the SAS/QC user's guide, there are a couple examples in the "xschart" section showing control charts with fixed limits.
title 'Mean and Standard Deviation Charts for Power Output';
proc shewhart data=Turbine;
xschart KWatts*Day ;
run;
If you wish to set your own limits, such as when you have limits created on an initial set of data, and wish to apply them to a new set of data, the the answer is to use the "LIMITS=" option to the PROC SHEWHART statement
This option will read in a dataset produced by a previous run of the procedure. Here is an example for a p-chart:
First, generate the dataset with the limits you want using the OUTLIMITS dataset.
This example uses the pchart statement, but it should be almost identical for the xschart statement if that's what you're using.
title 'Proportion of Circuit Failures';
proc shewhart data=CircOne;
pchart Fail*Batch / subgroupn = 500
outindex = 'Trial Limits'
outlimits = Faillim1
odstitle = title;
run;
Then read that data set, "Faillim1", in when running PROC SHEWHART the next time. (see the documentation for a more complicated version)
title 'p Chart with Revised Limits for Failed Circuits';
proc shewhart data=CircOne limits=Faillims1;
pchart Fail*Batch / subgroupn = 500
readindex = 'Revised Limits'
vref = 0.0156 0.032226
vreflabels = ('Trial P' 'Trial UCL')
vreflabpos = 3
odstitle = title
nolegend;
label Fail = 'Fraction Failed'
Batch = 'Batch Index';
run;
ods graphics off;
Let me know if this helps, but it sounds like you might have figured it out. Please post any code if you have any specific issues you'd like help with.
I found my own answer I think. I am using the LIMITN=n option, which I will set for my average sample size, unless someone has a better idea! feedback appreciated, Thanks!
Hi Kimberley,
Could you post a code snippet of what you're trying to do? There are many different charts which can be produced by proc shewhart, and they have different default behavior for control limits based upon the underlying statistical assumptions. I see the "xsxhart" tag- is that really the "xschart" statement?
In the SAS/QC user's guide, there are a couple examples in the "xschart" section showing control charts with fixed limits.
title 'Mean and Standard Deviation Charts for Power Output';
proc shewhart data=Turbine;
xschart KWatts*Day ;
run;
If you wish to set your own limits, such as when you have limits created on an initial set of data, and wish to apply them to a new set of data, the the answer is to use the "LIMITS=" option to the PROC SHEWHART statement
This option will read in a dataset produced by a previous run of the procedure. Here is an example for a p-chart:
First, generate the dataset with the limits you want using the OUTLIMITS dataset.
This example uses the pchart statement, but it should be almost identical for the xschart statement if that's what you're using.
title 'Proportion of Circuit Failures';
proc shewhart data=CircOne;
pchart Fail*Batch / subgroupn = 500
outindex = 'Trial Limits'
outlimits = Faillim1
odstitle = title;
run;
Then read that data set, "Faillim1", in when running PROC SHEWHART the next time. (see the documentation for a more complicated version)
title 'p Chart with Revised Limits for Failed Circuits';
proc shewhart data=CircOne limits=Faillims1;
pchart Fail*Batch / subgroupn = 500
readindex = 'Revised Limits'
vref = 0.0156 0.032226
vreflabels = ('Trial P' 'Trial UCL')
vreflabpos = 3
odstitle = title
nolegend;
label Fail = 'Fraction Failed'
Batch = 'Batch Index';
run;
ods graphics off;
Let me know if this helps, but it sounds like you might have figured it out. Please post any code if you have any specific issues you'd like help with.
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.
Find more tutorials on the SAS Users YouTube channel.