On 11 Feb 2010, at 06:53, Vikrant Shimpi wrote:

Dear Luka ,
I am using qcc package in R to plot SPC charts. BUt while plotting R chart I had a error. My question is it necessary while plotting R Chart the group sample size must be < 25 ?. Because when I took group sample size as 1000 it gave me error, till I took group sample size as 26, But as sooon as I changed the group sample size to 25 the R chart was plotted successfully. I had a discussion in the R forum, at the end of it was suggested to write to you regarding the error. I am giving the link for the same.


http://n4.nabble.com/problems-with-SPC-charts-in-R-td1467901.html#a1469800



Also I am attaching the dataset and the code which gave me error while plotting R chart.

R code is as follows: -

SAMPLE_SIZE<-1000
y<-read.csv("data.csv",sep=",",header=TRUE)
y<-subset(y, !is.null(y[,1]),)
unique_b_vals = unique(y[,2])
final_set <- NULL
for(b_val in unique_b_vals)
{
temp1 = subset(y,week==b_val,)
temp1 = temp1[sample(dim(temp1)[1], SAMPLE_SIZE),]
if (is.null(final_set))
 final_set <<- temp1
else
 final_set <<- rbind(final_set,temp1)
print(b_val)
}

First of all, here I got an error:

Error in sample(dim(temp1)[1], SAMPLE_SIZE) :
cannot take a sample larger than the population when 'replace = FALSE'

The final_set matrix has however dimension

> dim(final_set)
[1] 17000     3

and I will continue with this.

library(qcc)
attach(final_set)
a<- qcc.groups(ST,week)
dim(a)
obj <- qcc(a[,],type="R")

summary(obj)
detach(final_set)


Here I am selecting a sample of size 1000 for each group. And it gives me following error


Error in limits.R(center = 62614.0571428571, std.dev = NA_real_, sizes = c(1000L, :
group size must be less than 51 when giving nsigmas


Yes and it must be like that. You shouldn't use R charts for monitoring dispersion using sample sizes larger than 20, and for sample sizes greater than 25 you get an error. From theory, R chart used the distribution of relative range for estimating sigma, which is tabulated up to a sample size of 25

> qcc.options("exp.R.unscaled")

The number 51 comes from another tabulated data

> qcc.options("se.R.unscaled")

In this case you must simply use an S chart:

> obj <- qcc(a,type="S")


Some sparse notes:
- don't use a[,] to select a whole matrix, simply a, i.e. qcc(a)
- don't use <<- for assignment (it has another meaning...), <- is enough

I hope this help.

Luca Scrucca


--------------------------------------------------
Luca Scrucca
Dipartimento di Economia, Finanza e Statistica
Sezione di Statistica
Università degli Studi di Perugia
Via A. Pascoli, 20
06123 PERUGIA  (ITALY)
Tel. +39-075-5855233
Fax: +39-075-5855950
E-mail:   l...@stat.unipg.it
Web page: http://www.stat.unipg.it/luca

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to