diff --git a/scripts/05_atribut.R b/scripts/05_atribut.R index de37617e975796902fe61d658a1316fd7b288a72..4495a1d1ff14b78cb08274c9b8ee7a032d74c7e1 100644 --- a/scripts/05_atribut.R +++ b/scripts/05_atribut.R @@ -29,8 +29,8 @@ ylim <- extendrange(c(p, unlist(L)), f = 0.1) plot(p ~ i, type = "o", ylim = ylim) with(L, abline(h = c(LC, LIC, LSC), lty = c(1, 2, 2))) -# r <- c(15, 23) -r <- identify(x = i, y = p, n = 2) +# r <- identify(x = i, y = p, n = 2) +r <- c(15, 23) L <- list(LC = mean(p[-r])) L <- within(L, { @@ -139,3 +139,72 @@ curve(1 - exp(-lambda), abline(h = gamma, v = n * p, col = 2) #----------------------------------------------------------------------- +# Curva caracterÃstica de Operação. + +# Limites de controle do processo. +M +n <- 50 +p + +# Pr(D < n * LSC) - Pr(D <= n * LIC) +lim <- pmax(floor(n * c(M$LSC, M$LIC)), 0) +lim + +pgrid <- seq(0.001, 0.999, by = 0.001) +length(pgrid) + +beta <- pbinom(lim[1], size = n, prob = pgrid) - + pbinom(lim[2], size = n, prob = pgrid) + +plot(beta ~ pgrid, type = "l", + ylab = expression(beta), xlab = "p") +abline(h = 1 - 2 * pnorm(-3), lty = 2, col = 2) +abline(v = M, lty = 2, col = 2) + +# Comprimento médio de sequência. +# Prob. de mostrar fora de controle quando está em controle. +cms0 <- 1/(2 * pnorm(-3)) +cms0 + +# Se o processo agora tem p = 35. +bt <- pbinom(lim[1], size = n, prob = 0.15) - + pbinom(lim[2], size = n, prob = 0.15) +cm1 <- 1/(1 - bt) +cm1 + +#----------------------------------------------------------------------- +# Maneiras de calcular os limites de controle. + +M <- L +M$LC * n + +# Aproximação Normal. +M + +# Simulação. +s <- replicate(10000, { + rbinom(n = 1, size = n, prob = M$LC)/n +}) + +# Reamostragem. +r <- replicate(10000, { + sample(x0, replace = TRUE)/n +}) + +quantile(r, probs = pnorm(c(-3, 3))) +quantile(s, probs = pnorm(c(-3, 3))) + +# O tuque está no weights. +m <- length(x0) +n <- 50 +m0 <- glm(cbind(x0, 50 - x0) ~ 1, + family = "binomial", + weights = rep(1/m, m)) + +plot(profile(m0)) +abline(h = c(-3, 3), lty = 2, col = 2) + +# Intervalo de perfil de verossimilhança. +binomial()$linkinv(confint(m0, level = 1 - pnorm(-3))) + +#-----------------------------------------------------------------------