O objetivo dessa seção é encontrar o erro para alguns gráficos de controle para variáveis e atributos e construir a curva característica de operação (CCO).
O valor de para o gráfico
depende da constante
, que é o número de desvios para os limites de controle, do valor de
, que é a constante a ser avaliada, ou seja, e é ela quem determina qual a chance de um ponto ultrapassar esse limite em função do desvio padrão e
é o tamanho da amostra utilizada.
Nesse exemplo, vamos utilizar o valor padrão de , assumindo
e um tamanho de amostra
. A função
beta.xbar
calcula o valor de nessas condições.
> beta.xbar<-function(L=3,k=2,n=6) { phi.1= (L-k*sqrt(n)) phi.2= (-L-k*sqrt(n)) beta<-pnorm(phi.1)- pnorm(phi.2) result<-round(c(beta,phi.1,phi.2),4) nomes<-c("beta","phi.1","phi.2") names(result)<-nomes print(result) }
Agora, basta utilizá-la:
> beta.xbar() beta phi.1 phi.2 0.0288 -1.8990 -7.8990
O valor de 0.0288 é o risco de que uma mudança na ordem de não seja percebida no gráfico de controle.
Fazendo
obtém-se o número de amostras necessárias para se detectar uma mudança na média na ordem de .
De forma geral, pode-se construir uma CCO para esse tipo de gráfico. Nesse caso, é possível definir o tamanho de amostra em função do risco assumido e da definição da variação na média.
> cco.xbar<-function(n.min=2,n.max=4,L=3) { k.x<-seq(0,4.5,length=100) beta.y<-seq(0,1,length=100) phi.1<-numeric() phi.2<-numeric() beta <-numeric() plot(k.x,beta.y,type="n",xlab="k",ylab=expression(beta)) abline(h=0) for(j in n.min:n.max) { for(i in 1:length(k.x)) { phi.1[i]<- L-k.x[i]*sqrt(j) phi.2[i]<- -L-k.x[i]*sqrt(j) } beta<-pnorm(phi.1)-pnorm(phi.2) legend(3,.8,leg=n.min:n.max,lty=n.min:n.max,pch=20,cex=1.2, title="n",pt.cex=1.0,ncol=2,pt.lwd=1.3) lines(k.x,beta,lty=j) } }
Para identificar um ponto, e encontrar o tamanho de amostra, utilize a função points
:
> points(1.0,.10,pch=4)
Para o gráfico de controle p, pode-se, também, encontrar o valor de .
Nesse caso, a distribuição utilizada, é a distribuição Binomial.
Para criar essa função, devemos fornecer o tamanho da amostra e os limites de controle do gráfico, além do valor da linha central.
> beta.p<-function(n=50,p=0.3,LSC=0.3697,LIC=0.0303) { D1<- pbinom(n*LSC, n, p, lower.tail = TRUE, log.p = FALSE) D2<- pbinom(n*LIC, n, p, lower.tail = TRUE, log.p = FALSE) beta<-D1-D2 result<-round(c(beta,D1,D2),4) nomes<-c("beta","D1","D2") names(result)<-nomes print(result) }
> beta.p() beta D1 D2 0.8594 0.8594 0.0000
Nesse caso, se (um processo fora de controle), tem-se o valor de
, ou seja, teremos um CMP=7, que indica o número médio de amostras para se identificar uma mudança dessa magnitude, através de um ponto fora de controle.
Para diminuir o valor de , pode-se aumentar o tamanho da amostra e/ou diminuir o intervalo de obtenção das amostras. Ao invés de coletar uma amostra a cada hora (sriam necesárias 7 horas para encontrar o problema), poderia-se reduzir para meia hora, ou seja, teríamos um intervalo de 3,5 horas para encontrar o problema.
A curva característica de operação pode ser obtida com a seguine função:
> cco.p<-function(n=50,LSC=0.3697,LIC=0.0303) { p.x<-seq(0,.8,length=100) beta.y<-seq(0,1,length=100) D1<-numeric() D2<-numeric() beta <-numeric() plot(p.x,beta.y,type="n",xlab="p",ylab=expression(beta)) abline(h=0) for(i in 1:length(p.x)) { D1[i]<- pbinom(n*LSC, n, p.x[i]) D2[i]<- pbinom(n*LIC, n, p.x[i]) } beta<-D1-D2 text(c(.5,.5,.5),c(.8,.75,.7),c("n"=n,LSC,LIC),adj=c(0,05)) text(c(.48,.48,.48),c(.8,.75,.7),c('n=','LSC=','LIC='),adj=c(1,05)) lines(p.x,beta) result<-list(beta,p.x) nomes<-c("beta","p") names(result)<-nomes return(result) }
A curva pode ser gerada com
> cco.p()
Observe que ela representa a curva apenas para os parâmetros fornecidos.
Para o gráfico de controle c, utilizamos a distribuição Poisson para encontrar o valor de :
> beta.c<-function(c=15,LSC=33.22,LIC=6.48) { D1<- ppois(LSC, c) D2<- ppois(LIC, c ) beta<-D1-D2 result<-round(c(beta,D1,D2),4) nomes<-c("beta","D1","D2") names(result)<-nomes print(result) }
na função beta.c
, devemos fornecer o parâmetro c (número de não-conformes) e os limites de controle. Como os limites necessitam ser números inteiros, o R automaticamente faz o arredondamento.
> beta.c() beta D1 D2 0.9924 1.0000 0.0076
Para c=15, teremos um
.
Também, para o gráfico c, pode-se construir a CCO. Basta apenas fornecer os limites de controle:
> cco.c<-function(LSC=33.22,LIC=6.48) { c.x<-seq(0,49.5,by=.5) beta.y<-seq(0,1,length=100) D1<-numeric() D2<-numeric() beta <-numeric() plot(c.x,beta.y,type="n",xlab="c",ylab=expression(beta)) abline(h=0) for(i in 1:length(c.x)) { D1[i]<- ppois(LSC, c.x[i]) D2[i]<- ppois(LIC, c.x[i]) } beta<-D1-D2 text(c(40,40),c(.85,.8),c(LSC,LIC),adj=c(0,05)) text(c(40,40),c(.85,.8),c('LSC=','LIC='),adj=c(1,05)) lines(c.x,beta) result<-list(beta,c.x) nomes<-c("beta","c") names(result)<-nomes return(result) }
Utilize, então a função cco.c()
. Se for de interesse, pode-se encontrar um valor de para um determinado parâmetro
, fazendo:
> betas<-cco.c() > names( betas) > betas$beta[which(betas$c==49.5)] # por exemplo
qcc
(exemplos: pistonrings, orangejuice2, circuit), determine a chance de se cometer o erro tipo II.
adilson dos anjos 2008-09-18