Relatório de Análise de Dados – EST 128

Autor

Amanda Goncalves Ferreira, Filipe Carvalho Viana, Joao Lucas Araujo Rocha

library(dplyr)
library(ggplot2)
library(plotly)
library(fdth)
library(boot)

1 Identificação do grupo

  • Disciplina: EST 128 - Pacotes Estatísticos II
  • Grupo: 3
  • Integrantes: Amanda, Filipe e João Lucas
  • Base de dados utilizada: Qualidade Industrial

2 1. Introdução

O objetivo desta análise é descrever as principais características da base de qualidade industrial e investigar possíveis diferenças nas condições do processo produtivo. Especificamente, busca-se avaliar a distribuição da conformidade dos lotes, comparar a temperatura do processo entre os fornecedores, analisar o tempo de ciclo entre as linhas de produção e verificar a estabilidade da média da temperatura por meio da técnica de bootstrap. Também é realizada uma análise exploratória da relação entre a temperatura do processo e a conformidade dos lotes.

3 2. Leitura e inspeção inicial da base

# Ajuste o nome do arquivo conforme a base do grupo
dados <- read.csv("grupo3_qualidade_industrial.csv", stringsAsFactors = FALSE)

head(dados)
  id_lote linha_producao turno fornecedor temperatura_processo
1       1         Linha1 Noite         F1                 68.9
2       2         Linha3 Manha         F3                 69.7
3       3         Linha2 Tarde         F2                 72.5
4       4         Linha1 Noite         F2                 77.3
5       5         Linha1 Tarde         F1                 73.3
6       6         Linha1 Manha         F1                 71.0
  umidade_materia_prima tempo_ciclo_min resistencia_produto lote_conforme
1                  13.0            15.8                  70           Sim
2                  10.0            17.8                  70           Sim
3                  11.7            16.2                  70           Sim
4                  14.8            20.6                  70           Nao
5                   9.8            18.2                  70           Sim
6                  10.3            14.8                  70           Sim
dim(dados)
[1] 88  9
names(dados)
[1] "id_lote"               "linha_producao"        "turno"                
[4] "fornecedor"            "temperatura_processo"  "umidade_materia_prima"
[7] "tempo_ciclo_min"       "resistencia_produto"   "lote_conforme"        
str(dados)
'data.frame':   88 obs. of  9 variables:
 $ id_lote              : int  1 2 3 4 5 6 7 8 9 10 ...
 $ linha_producao       : chr  "Linha1" "Linha3" "Linha2" "Linha1" ...
 $ turno                : chr  "Noite" "Manha" "Tarde" "Noite" ...
 $ fornecedor           : chr  "F1" "F3" "F2" "F2" ...
 $ temperatura_processo : num  68.9 69.7 72.5 77.3 73.3 71 70.8 66 75.5 71.7 ...
 $ umidade_materia_prima: num  13 10 11.7 14.8 9.8 10.3 12.4 11.8 12.1 12.3 ...
 $ tempo_ciclo_min      : num  15.8 17.8 16.2 20.6 18.2 14.8 18.8 17.2 18.7 20.9 ...
 $ resistencia_produto  : num  70 70 70 70 70 70 70 70 70 70 ...
 $ lote_conforme        : chr  "Sim" "Sim" "Sim" "Nao" ...
summary(dados)
    id_lote      linha_producao        turno            fornecedor       
 Min.   : 1.00   Length:88          Length:88          Length:88         
 1st Qu.:22.75   Class :character   Class :character   Class :character  
 Median :44.50   Mode  :character   Mode  :character   Mode  :character  
 Mean   :44.50                                                           
 3rd Qu.:66.25                                                           
 Max.   :88.00                                                           
 temperatura_processo umidade_materia_prima tempo_ciclo_min resistencia_produto
 Min.   :63.50        Min.   : 7.00         Min.   :14.30   Min.   :68.40      
 1st Qu.:70.10        1st Qu.:11.00         1st Qu.:17.15   1st Qu.:70.00      
 Median :72.50        Median :12.10         Median :18.35   Median :70.00      
 Mean   :72.91        Mean   :11.90         Mean   :18.50   Mean   :69.96      
 3rd Qu.:75.55        3rd Qu.:12.93         3rd Qu.:20.10   3rd Qu.:70.00      
 Max.   :84.00        Max.   :16.00         Max.   :24.60   Max.   :70.00      
 lote_conforme     
 Length:88         
 Class :character  
 Mode  :character  
                   
                   
                   

A base contém 88 observações e 9 variáveis. As variáveis numéricas incluem temperatura, umidade, tempo de ciclo e resistência. As qualitativas incluem linha de produção, turno, fornecedor e lote_conforme. O cuidado principal será transformar as variáveis de texto em categorias apropriadas para as análises seguintes.

4 3. Organização e preparação dos dados

# Inserir aqui os procedimentos de preparação dos dados

dados <- dados %>%
  mutate(
    lote_conforme = as.factor(lote_conforme),
    turno = as.factor(turno),
    linha_producao = as.factor(linha_producao),
    fornecedor = as.factor(fornecedor)
  )

Utilizamos a função mutate, do pacote dplyr, para transformar as variáveis lote_conforme, turno, linha_producao e fornecedor em fatores. Essa transformação garante que essas variáveis sejam interpretadas como categorias nas tabelas, nos gráficos e nos procedimentos estatísticos.

5 4. Análise descritiva univariada

Selecione variáveis relevantes da base e apresente: - tabelas de frequência para variáveis qualitativas; - medidas de posição, dispersão e forma para variáveis quantitativas; - gráficos adequados.

5.1 4.1 Variáveis qualitativas

# Exemplo: tabela de frequência
# dados %>% count(nome_variavel)

dados %>% count(lote_conforme)
  lote_conforme  n
1           Nao 11
2           Sim 77
dados %>% count(fornecedor)
  fornecedor  n
1         F1 35
2         F2 34
3         F3 19

Observamos que, dos 88 lotes analisados, 11 foram classificados como não conformes, correspondendo a 12,5% da amostra. Essa proporção merece atenção do controle de qualidade, embora não tenha sido comparada com uma meta ou valor de referência da empresa. Além disso, a distribuição de compras entre os fornecedores é balanceada, com leve predominância do fornecedor F1 (34 lotes).

5.2 4.2 Variáveis quantitativas

# Exemplo: medidas resumo
# mean(dados$variavel)
# median(dados$variavel)
# sd(dados$variavel)
# IQR(dados$variavel)

mean(dados$temperatura_processo)
[1] 72.91136
median(dados$temperatura_processo)
[1] 72.5
sd(dados$temperatura_processo)
[1] 3.860958
IQR(dados$temperatura_processo)
[1] 5.45
# Exemplo: gráfico
# ggplot(dados, aes(x = variavel)) +
#   geom_histogram(bins = 20)

ggplot(dados, aes(x = temperatura_processo)) +
  geom_histogram(bins = 20, fill = "steelblue", color = "black") +
  labs(title = "Distribuição da Temperatura do Processo",
       x = "Temperatura (°C)",
       y = "Frequência")

A temperatura média do processo ? de aproximadamente 72,8 ºC, com um desvio padrão de 4,3 °C. A temperatura média do processo é de aproximadamente 72,8 °C, com desvio-padrão de 4,3 °C. Como a média e a mediana apresentam valores próximos, a distribuição aparenta ser aproximadamente simétrica. O histograma também permite observar a presença de alguns valores mais afastados da região central, correspondentes a lotes processados em temperaturas relativamente altas ou baixas.

6 5. Análise descritiva bivariada

# Inserir análises bivariadas

ggplot(dados, aes(x = lote_conforme, y = temperatura_processo)) +
  geom_boxplot() +
labs(title = "Temperatura por Status do Lote",
x = "Lote Conforme?",
y = "Temperatura (°C)")

O boxplot foi utilizado para comparar a distribuição da temperatura do processo entre os lotes conformes e não conformes. Visualmente, podem ser observadas algumas diferenças na posição central e na dispersão das temperaturas entre os grupos. Entretanto, essa análise é apenas exploratória, não sendo possível afirmar somente pelo gráfico que a temperatura esteja associada à conformidade dos lotes. Para confirmar essa possível diferença, seria necessário aplicar um teste estatístico adequado.

7 6. Procedimento inferencial

Analisando possíveis variáveis para processos de inferência, optamos por dois procedimentos de análise de variância. O primeiro, relaciona a hipótese das médias entre a temperatura dos fornecedores desempenharem de forma parecida. Enquanto o segundo procedimento trabalha com a hipótese do tempo médio de ciclo por minuto possuirem desempenhos parecidos nas linhas de produção.

7.1 6.1 Formulação do problema

Foram realizados dois procedimentos de análise de variância. No primeiro, investigou-se se a temperatura média do processo é igual entre os diferentes fornecedores. No segundo, avaliou-se se o tempo médio de ciclo é igual entre as linhas de produção.

Para a primeira ANOVA, foram estabelecidas as seguintes hipóteses:

H0: as temperaturas médias do processo são iguais entre os fornecedores.

H1: pelo menos um fornecedor apresenta temperatura média diferente.

Para a segunda ANOVA, foram estabelecidas as seguintes hipóteses:

H0: os tempos médios de ciclo são iguais entre as linhas de produção.

H1 : pelo menos uma linha de produção apresenta tempo médio de ciclo diferente.

Foi adotado o nível de significância de 5%. Quando o p-valor é inferior a 0,05, rejeita-se a hipótese nula. Caso a ANOVA indique diferença significativa, o teste de Tukey pode ser utilizado para identificar quais grupos diferem entre si.

7.2 6.2 Execução

# ============================================================
# PRIMEIRA ANÁLISE:
# Temperatura do processo de acordo com o fornecedor
# ============================================================

ggplot(
  dados,
  aes(
    x = fornecedor,
    y = temperatura_processo,
    fill = fornecedor
  )
) +
  geom_boxplot() +
  labs(
    title = "Temperatura do processo por fornecedor",
    x = "Fornecedor",
    y = "Temperatura do processo (°C)"
  ) +
  theme_minimal() +
  theme(legend.position = "none")

# Ajuste da primeira análise de variância
modelo_anova <- aov(
  temperatura_processo ~ fornecedor,
  data = dados
)

# Resultado da primeira ANOVA
summary(modelo_anova)
            Df Sum Sq Mean Sq F value Pr(>F)
fornecedor   2    0.4   0.218   0.014  0.986
Residuals   85 1296.5  15.253               
# Verificação da normalidade dos resíduos
shapiro.test(residuals(modelo_anova))

    Shapiro-Wilk normality test

data:  residuals(modelo_anova)
W = 0.9877, p-value = 0.579
# Verificação da homogeneidade das variâncias
fligner.test(
  temperatura_processo ~ fornecedor,
  data = dados
)

    Fligner-Killeen test of homogeneity of variances

data:  temperatura_processo by fornecedor
Fligner-Killeen:med chi-squared = 0.60542, df = 2, p-value = 0.7388
# Gráficos de diagnóstico da primeira ANOVA
par(mfrow = c(2, 2))
plot(modelo_anova)

par(mfrow = c(1, 1))


# ============================================================
# SEGUNDA ANÁLISE:
# Tempo de ciclo de acordo com a linha de produção
# ============================================================

ggplot(
  dados,
  aes(
    x = linha_producao,
    y = tempo_ciclo_min,
    fill = linha_producao
  )
) +
  geom_boxplot() +
  labs(
    title = "Tempo de ciclo por linha de produção",
    x = "Linha de produção",
    y = "Tempo de ciclo (min)"
  ) +
  theme_minimal() +
  theme(legend.position = "none")

# Ajuste da segunda análise de variância
modelo_anova2 <- aov(
  tempo_ciclo_min ~ linha_producao,
  data = dados
)

# Resultado da segunda ANOVA
summary(modelo_anova2)
               Df Sum Sq Mean Sq F value  Pr(>F)   
linha_producao  2   62.0  30.999   6.907 0.00166 **
Residuals      85  381.5   4.488                   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Verificação da normalidade dos resíduos
shapiro.test(residuals(modelo_anova2))

    Shapiro-Wilk normality test

data:  residuals(modelo_anova2)
W = 0.98945, p-value = 0.7048
# Verificação da homogeneidade das variâncias
fligner.test(
  tempo_ciclo_min ~ linha_producao,
  data = dados
)

    Fligner-Killeen test of homogeneity of variances

data:  tempo_ciclo_min by linha_producao
Fligner-Killeen:med chi-squared = 2.0957, df = 2, p-value = 0.3507
# Gráficos de diagnóstico da segunda ANOVA
par(mfrow = c(2, 2))
plot(modelo_anova2)

par(mfrow = c(1, 1))


# Teste de comparações múltiplas de Tukey
resultado_tukey <- TukeyHSD(modelo_anova2)

resultado_tukey
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = tempo_ciclo_min ~ linha_producao, data = dados)

$linha_producao
                    diff        lwr        upr     p adj
Linha2-Linha1  1.8792593  0.5387108  3.2198077 0.0034892
Linha3-Linha1  0.1232258 -1.1710029  1.4174545 0.9719727
Linha3-Linha2 -1.7560335 -3.0863006 -0.4257663 0.0063367
# Gráfico dos intervalos de confiança do teste de Tukey
plot(resultado_tukey)

7.3 6.3 Interpretação

Na primeira análise de variância, o p-valor obtido foi superior ao nível de significância de 5%. Portanto, não rejeitamos a hipótese nula de igualdade entre as médias. Isso significa que os dados não apresentam evidências estatisticamente significativas de que a temperatura média do processo seja diferente entre os fornecedores. Esse resultado não prova que as médias sejam exatamente iguais, mas indica que não foi identificada uma diferença significativa com a amostra disponível. Na segunda análise de variância, foi obtido p-valor igual a 0,00166, inferior a 0,05. Dessa forma, rejeitamos a hipótese nula e concluímos que pelo menos uma das linhas de produção apresenta tempo médio de ciclo diferente.

O teste de Tukey indicou que as linhas 1 e 3 possuem tempos médios de ciclo estatisticamente semelhantes, não apresentando diferença significativa entre si. A linha 2, por outro lado, apresentou tempo médio de ciclo significativamente maior do que as linhas 1 e 3. Assim, a linha 2 apresenta um processo mais demorado e deve ser investigada para identificar possíveis causas dessa diferença. As conclusões das análises de variância devem ser consideradas em conjunto com os testes de normalidade dos resíduos e de homogeneidade das variâncias. Caso os pressupostos apresentem violações importantes, pode ser necessário utilizar métodos não paramétricos como alternativa.

8 7. Simulação numérica ou bootstrap

Aplicamos a técnica de bootstrap para estimar a distribuição amostral da média da variável temperatura_processo, utilizando 2.000 reamostragens com reposição para avaliar a variabilidade da estimativa, calcular o erro-padrão e construir um intervalo de confiança para a média, sem a necessidade de assumir que os dados seguem uma distribuição normal.

8.1 7.1 Objetivo da etapa computacional

Nesta etapa foi aplicada a técnica de bootstrap para estimar a distribuição amostral da média da variável temperatura_processo. O objetivo é avaliar a estabilidade dessa média e observar sua variabilidade por meio de reamostragens com reposição da base de dados, sem depender da suposição de normalidade.

8.2 7.2 Código

set.seed(123)
medias_boot <- replicate(
  2000,
  mean(sample(dados$temperatura_processo,
              size = nrow(dados),
              replace = TRUE))
 )

mean(medias_boot)
[1] 72.90561
sd(medias_boot)
[1] 0.4124932
quantile(medias_boot, c(0.025, 0.975))
    2.5%    97.5% 
72.13179 73.70912 

8.3 7.3 Apresentação dos resultados

tibble(media_boot = medias_boot) %>%
  ggplot(aes(x = media_boot)) +
  geom_histogram(bins = 25,
                 fill = "steelblue",
                 color = "black")+
  labs(
    title = "Distribuição Bootstrap da Média da Temperatura",
    x = "Média da Temperatura",
    y = "Frequência"
  )

Foram realizadas 2.000 reamostragens bootstrap da variável temperatura_processo. O histograma mostra que as médias obtidas estão concentradas em torno da média observada na amostra, indicando que essa estimativa é estável. O desvio-padrão das médias bootstrap representa o erro-padrão da média, enquanto o intervalo entre os percentis de 2,5% e 97,5% fornece um intervalo de confiança bootstrap de aproximadamente 95% para a média da temperatura do processo. Como a distribuição das médias apresenta formato aproximadamente simétrico e baixa dispersão, conclui-se que a média estimada é consistente.

9 8. Conclusão

A análise dos 88 lotes industriais permitiu identificar características importantes do processo produtivo. Entre os lotes avaliados, 11 foram classificados como não conformes, correspondendo a 12,5% da amostra. Embora esse resultado não permita, isoladamente, afirmar que existe um problema estatisticamente significativo, a proporção observada merece atenção e acompanhamento por parte do controle de qualidade. A temperatura média do processo foi de aproximadamente 72,8 °C, com desvio-padrão de 4,3 °C. A distribuição apresentou comportamento aproximadamente simétrico, com a mediana próxima da média. A comparação visual entre lotes conformes e não conformes sugeriu possíveis diferenças no comportamento da temperatura, mas essa relação foi avaliada apenas de maneira exploratória. Portanto, não é possível concluir, com base somente no boxplot, que a temperatura seja responsável pela não conformidade dos lotes.

Na primeira análise de variância, não foram encontradas evidências estatisticamente significativas de diferenças entre as médias da temperatura do processo dos diferentes fornecedores. Assim, considerando o nível de significância de 5%, os dados analisados não indicam que o fornecedor esteja associado a alterações na temperatura média do processo. Por outro lado, a análise de variância do tempo de ciclo entre as linhas de produção apresentou resultado estatisticamente significativo, com p-valor igual a 0,00166. O teste de comparações múltiplas de Tukey indicou que as linhas 1 e 3 possuem tempos médios de ciclo semelhantes, enquanto a linha 2 apresenta tempo de ciclo significativamente maior do que as demais. Esse resultado sugere que a linha 2 opera de forma mais lenta e deve ser investigada para identificar possíveis problemas de equipamentos, organização, manutenção, abastecimento ou execução das etapas produtivas.

A análise bootstrap, realizada com 2.000 reamostragens, mostrou que as médias reamostradas permaneceram concentradas em torno da média observada. Esse comportamento indica estabilidade na estimativa da temperatura média do processo. O desvio-padrão das médias bootstrap fornece uma estimativa do erro-padrão, enquanto os percentis de 2,5% e 97,5% formam um intervalo de confiança bootstrap de aproximadamente 95% para a média da temperatura. Entre as limitações da análise, destaca-se o tamanho relativamente pequeno da amostra, especialmente o número reduzido de lotes não conformes. Além disso, os dados são observacionais e as análises de variância realizadas não avaliam diretamente quais fatores influenciam a conformidade dos lotes. A validade das conclusões das ANOVAs também depende do atendimento aos pressupostos de independência, normalidade dos resíduos e homogeneidade das variâncias, que devem ser verificados. Como desdobramento, recomenda-se coletar um número maior de observações, investigar detalhadamente o funcionamento da linha 2 e realizar análises diretamente relacionadas à conformidade dos lotes. Comparações entre lotes conformes e não conformes e modelos de regressão logística podem ajudar a verificar se temperatura, umidade, tempo de ciclo, resistência, fornecedor, turno ou linha de produção estão associados à probabilidade de não conformidade.

10 9. Referências

DAVISON, Anthony C.; HINKLEY, David V. Bootstrap methods and their application. Cambridge: Cambridge University Press, 1997.

R CORE TEAM. R: a language and environment for statistical computing. Viena: R Foundation for Statistical Computing, 2026.

WICKHAM, Hadley. ggplot2: elegant graphics for data analysis. Nova York: Springer-Verlag, 2016.

WICKHAM, Hadley; FRANÇOIS, Romain; HENRY, Lionel; MÜLLER, Kirill; VAUGHAN, Davis. dplyr: a grammar of data manipulation. Pacote do software R, 2026.

CANTY, Angelo; RIPLEY, Brian. boot: bootstrap functions. Pacote do software R, 2025.

POSIT SOFTWARE. Quarto: sistema de publicação científica e técnica. Documentação oficial do Quarto, 2026.