A intenção desse trabalho é analisar a prática de calibração a cada 5 anos e checagem a cada 2,5 anos de de balões volumétricos e se ela fornece dados para prever a distribuição da ocorrencia de falhas e o alargamento das frequências para os valores recomendados pela ASTM E 542.
Os dados foram retirados dos certificados de calibração. Todos os cálculos e gráficos foram feitos em Rstudio versão 1.3.959 e R base 3.6.3.
Os dados dos certificados de calibração de 150 balões volumétricos de vidro (borossilicato) foram manualmente coletadas de planilhas Excel e em seguidas exportados para o arquivo BV.csv. 8 Os termos “Verificação” e “Checagem” serão usados com o mesmo significado apesar da versão mais atual da ISO IEC 17025 se referir apenas a “Checagem” como o precedimento de confirmação metrológico.
setwd("/mnt/DADOS/Data Science/BV")
library(knitr)
library(readr)
BV <- read_csv("BV.csv", col_types = cols(data = col_date(format = "%d/%m/%Y"),
Erro = col_number(),
Tipo = col_factor(levels = c("Calibração",
"Verificação"))), locale = locale(decimal_mark = ",",
grouping_mark = ""))
BV$data = format(as.Date(BV$data,format="%d/%m/%Y"),"%Y")
BV$data = as.numeric(BV$data)
Tabela 1: Cabeçalho dos dados referentes aos 150 Balões e 10 anos de dados. Obs: o valor do “ErroP” se refere ao percentual de erro em relação ao ponto calibrado (volume), ou seja, um balão de 100mL com erro de 0,1mL e um outro de 50mL e erro de 0,05mL, possuem erros de 0,1%.
n
library(knitr)
kable(summary(BV))
| Volume | ID | data | Erro | ErroP | Tipo | |
|---|---|---|---|---|---|---|
| Min. : 5.00 | Length:455 | Min. :2008 | Min. :-0.330000 | Min. :0.0000 | Calibração :288 | |
| 1st Qu.: 25.00 | Class :character | 1st Qu.:2013 | 1st Qu.:-0.021550 | 1st Qu.:0.0340 | Verificação:167 | |
| Median : 50.00 | Mode :character | Median :2015 | Median : 0.006000 | Median :0.0695 | NA | |
| Mean : 81.36 | NA | Mean :2014 | Mean : 0.005793 | Mean :0.1003 | NA | |
| 3rd Qu.: 50.00 | NA | 3rd Qu.:2018 | 3rd Qu.: 0.030100 | 3rd Qu.:0.1284 | NA | |
| Max. :1000.00 | NA | Max. :2018 | Max. : 0.532900 | Max. :1.5280 | NA |
Foi realizado então uma plotagem para vizualização da distribuição total dos erros em mL conforme a ocorrência:
library(ggplot2)
library(ggthemes)
qplot(Erro, data=BV , geom ="histogram" , fill=Tipo, binwidth=0.02)
Figura 1. Os erros flutuam em torno da média, apesar das diferentes volumes de balões, não há tendência visível.
library(ggplot2)
g= qplot(ErroP, data=BV , geom ="histogram", fill = Tipo, binwidth=0.05 )
g + facet_wrap(~ Tipo, levels(c("Calibração", "Verificação" )))
Figura 2. lado a lado para comparação, dados de calibração e checagem, com valores de erros absolutos e relativos ao volume ensaiado:
Porém sabemos que os erros variam muito conforme a faixa de uso de cada balão. Podemos confirmar isso plotando o erro médio de cada volume ao longo da faixa de uso de cada balão
library(ggplot2)
g = invisible(ggplot(BV, aes(x=Volume, y=ErroP))+ stat_summary())
g + xlab("Volume ml em log10") + scale_x_continuous(trans="log10")
Figura 3. Distribuição de % de erros conforme volume do balão. Escala em Log10 para melhor visualização.
Vamos voltar aos valores totais e investigar se os dois principais grupos de dados, “Calibração” e “Verificação” apresentam a mesma média:
mean(subset(BV$ErroP, BV$Tipo == "Verificação"))
## [1] 0.09712635
mean(subset(BV$ErroP, BV$Tipo == "Calibração"))
## [1] 0.1021709
Confirmado.
Verifcando agora se os desvios padrão são os mesmos:
sd(subset(BV$ErroP, BV$Tipo == "Verificação"))
## [1] 0.1120128
sd(subset(BV$ErroP, BV$Tipo == "Calibração"))
## [1] 0.1266104
Também equivalentes. Testamos agora com um teste t. Porém antes devemos usar para o campo ErroP nos dados de calibração o mesmo número de medições disponíveis na verificação (167), já que se trata de um teste “pareado” ou seja, a população é a mesma.
Verif <- subset(BV,BV$Tipo=="Verificação")
Calib <- subset(BV,BV$Tipo=="Calibração")
Calib2 <- Calib[c(1:167),c(1:6)]
t.test(Calib2$ErroP,Verif$ErroP,paired = TRUE)
##
## Paired t-test
##
## data: Calib2$ErroP and Verif$ErroP
## t = 1.1478, df = 166, p-value = 0.2527
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.01181627 0.04463208
## sample estimates:
## mean of the differences
## 0.0164079
Com um valor-p de 0,25 consideramos que as duas médias são equivalentes.
Visualizamos agora um gráfico boxplot com a plotagem dos quartils:
library(ggplot2)
library(ggthemes)
g = ggplot(BV, aes(x=Tipo, y= ErroP)) + scale_x_discrete(name ="Tipo de dado")
g + geom_boxplot() + ylim(c(-0.1,2))
Figura 4. Boxplot da distribuição de erros % conforme o tipo de dado. Nota-se que acima de um erro de 0,25% há muito poucos outliers. O máximo do eixo y é o valor usado como critério de aceitaão no LCM (2% de erro sobre o valor nominal do balão). Cada caixa engloba 50% dos dados e as linhas verticais acima e abaixo os outros 50%. O restante é considerado outlier.
Resta agora saber se os valores se encotram estávei ao longo do tempo. Vamos visualizar o comportamento desses erros ao longo de 10 anos, traçando uma linha para cada balão volumétrico.
cols = rainbow(456, s=.6, v=.9)[sample(1:455,455)]
ggplot(BV, aes(data, ErroP,color=ID))+geom_line(show.legend = FALSE)+ scale_y_log10()+
ylim(c(-0.1,2))
Figura 5. Série histórica com os dados de ErroP para cada balão. Linhas aparentemente paralelas ao longo do período, variando entre os dados de calibração e verificação.
Investigamos agora se os grupos de “Verificação” e “Calibração” mostram, separadamente, tendências ao longo desses 10 anos. Usaremos uma regressão linear junto a cada grupo:
g <- ggplot(BV, aes(data,ErroP)) + geom_point(alpha=1/5)
g +geom_smooth(method=lm, color = 'red') + facet_wrap(~ Tipo, levels(c("Calibração", "Verificação" ))) +ylim(c(0,2))
Figura 6. Serie histórica dos erros com separação conforme o tipo de dado, regressão linear como a linha em vermelho.
Separamos agora os balões por volume para verificar tendências individualmente:
g1 <- ggplot(BV, aes(data,ErroP, color=Tipo)) + geom_point() +geom_smooth(method=lm, color = 'red')
g1 + facet_wrap(~Volume)+ylim(c(0,2))
Figura 7. Serie histórica dos erros com separação conforme o volume do balão, regressão linear como a linha em vermelho. Exceto o balão volumétrico de 5ml, todos os volumes apresentam estabilidade nos valores dos erros nos ultimos 10 anos. Para volumes abaixo de 200ml, ha pelo menos 3 mediões durante o período.
Criamos agora dois modelos com os dados de verificação e calibração, v1 e c1 respectivamente. O modelo executa uma regressão usando ErroP como resposta com base na data.
v1 = lm(Verif$ErroP ~Verif$data)
c1 = lm(Calib$ErroP ~Calib$data)
v1
##
## Call:
## lm(formula = Verif$ErroP ~ Verif$data)
##
## Coefficients:
## (Intercept) Verif$data
## -16.937164 0.008465
c1
##
## Call:
## lm(formula = Calib$ErroP ~ Calib$data)
##
## Coefficients:
## (Intercept) Calib$data
## -2.874107 0.001477
Podemos notar pelas inclinações que os valores são realmente muito baixos, A Verificação tem uma tendência positiva de 0,01% de aumento no Erro por ano, já a calibração somente 0,002%.
1- As verificações intermediárias efetuadas no laboratório são estatisticamente equivalentes aos valores de calibração.
2- A maior parte dos balões apresentam estabilidade nas calibrações e verificações, com baixa ou nenhuma tendência de alteração de volume.
3- De 455 medições apenas 6 (figuras 4 e 6) tiveram um erro acima de 0,5% sendo 3 balões de 5 mL (1 reincidente na calibração de 2013 e 2018), 1 de 25mL e 1 de 50mL. Isso suporta uma redução do erro aceitavel para 0,5% com mínimo descarte de ativos.
4- Estes dados confirmam que um emprego da faixa ASTM de 10 anos para calibração e 5 para verificação não trará nenhum impacto analítico ou metrológico aos ensaios acreditados do LCM
[1] R Core Team (2020). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL https://www.R-project.org/.
[2] H. Wickham. ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York, 2016.
[3] ISO/IEC 17025:2017, General requirements for the competence of testing and calibration laboratories.
[4] ASTM (2012) E 542 – 01. Standard Practice for Calibration of Laboratory Volumetric Apparatus.