Sumário


1 Objetivo

Neste experimento, investigamos a relação entre a distância de um ímã até um sensor de efeito Hall e a respectiva tensão de saída gerada pelo sensor. O sensor é utilizado em sistemas de automação para medir deslocamentos, e o fabricante sugere que, entre 1 mm e 5 mm, essa relação é aproximadamente linear. Para validar essa hipótese, foi conduzido um experimento com cinco níveis fixos de distância (1 a 5 mm), cada um com quatro repetições, totalizando 20 observações organizadas em um Delineamento Inteiramente Casualizado (DIC).

O objetivo principal é ajustar modelos de regressão linear e polinomial que expliquem a variação da tensão com base na distância, avaliando a qualidade dos ajustes por meio da análise de variância (ANOVA), testes de normalidade e homogeneidade dos resíduos, e análise de falta de ajuste. Além disso, buscamos estimar a tensão correspondente à distância de 3,5 mm e determinar se a predição é confiável. A análise oferece subsídios importantes para a calibração e aplicação prática do sensor em sistemas de medição de precisão.


2 Preparação dos Dados

# Carregando bibliotecas
library(ExpDes.pt)
library(ggplot2)
library(car)
## Carregando pacotes exigidos: carData
library(nortest)
library(lmtest)
## Carregando pacotes exigidos: zoo
## 
## Anexando pacote: 'zoo'
## Os seguintes objetos são mascarados por 'package:base':
## 
##     as.Date, as.Date.numeric
library(gt)
library(dplyr)
## 
## Anexando pacote: 'dplyr'
## O seguinte objeto é mascarado por 'package:car':
## 
##     recode
## Os seguintes objetos são mascarados por 'package:stats':
## 
##     filter, lag
## Os seguintes objetos são mascarados por 'package:base':
## 
##     intersect, setdiff, setequal, union
# Criando os dados
distancia <- rep(1:5, each = 4)
tensao <- c(476, 480, 478, 477,
            391, 390, 389, 392,
            310, 312, 311, 309,
            233, 231, 230, 232,
            151, 152, 153, 150)

dados <- data.frame(distancia, tensao)

dados |>
  gt() |>
  tab_style(
    style = list(
      cell_text(weight = "bold", color = "white"),
      cell_fill(color = "black")
    ),
    locations = cells_column_labels()
  ) |>
  tab_style(
    style = cell_text(align = "center"),
    locations = cells_body(columns = everything())
  ) |>
  data_color(
    columns = everything(),
    rows = 1:4,
    palette = "#F9EBEA"  # Rosa claro
  ) |>
  data_color(
    columns = everything(),
    rows = 5:8,
    palette = "#E8F8F5"  # Verde água
  ) |>
  data_color(
    columns = everything(),
    rows = 9:12,
    palette = "#FEF9E7"  # Amarelo claro
  ) |>
  data_color(
    columns = everything(),
    rows = 13:16,
    palette = "#EAEDED"  # Cinza claro
  ) |>
  data_color(
    columns = everything(),
    rows = 17:20,
    palette = "#F5EEF8"  # Lilás claro
  )
distancia tensao
1 476
1 480
1 478
1 477
2 391
2 390
2 389
2 392
3 310
3 312
3 311
3 309
4 233
4 231
4 230
4 232
5 151
5 152
5 153
5 150

2.1 Aplicação da Anava

# ANOVA com distancia como fator
distancia_fator <- as.factor(dados$distancia)
anava <- aov(tensao ~ distancia_fator, data = dados)
summary(anava)
##                 Df Sum Sq Mean Sq F value Pr(>F)    
## distancia_fator  4 263510   65877   34371 <2e-16 ***
## Residuals       15     29       2                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

2.2 Anava com regressão linear

# Aplicando ANOVA com regressão polinomial
reganava <- dic(trat = dados$distancia, resp = dados$tensao, quali = FALSE)
## ------------------------------------------------------------------------
## Quadro da analise de variancia
## ------------------------------------------------------------------------
##            GL     SQ    QM    Fc      Pr>Fc
## Tratamento  4 263510 65877 34371 1.6324e-29
## Residuo    15     29     2                 
## Total      19 263539                       
## ------------------------------------------------------------------------
## CV = 0.44 %
## 
## ------------------------------------------------------------------------
## Teste de normalidade dos residuos ( Shapiro-Wilk ) 
## Valor-p:  0.1092351 
## De acordo com o teste de Shapiro-Wilk a 5% de significancia, os residuos podem ser considerados normais.
## ------------------------------------------------------------------------
## 
## ------------------------------------------------------------------------
## Teste de homogeneidade de variancia 
## valor-p:  0.9849772 
## De acordo com o teste de bartlett a 5% de significancia, as variancias podem ser consideradas homogeneas.
## ------------------------------------------------------------------------
## 
## Ajuste de modelos polinomiais de regressao
## ------------------------------------------------------------------------
## 
## Modelo Linear
## ===========================================
##    Estimativa Erro.padrao    tc     valor.p
## -------------------------------------------
## b0  555.8000    0.7260    765.5594     0   
## b1  -81.1500    0.2189    -370.7193    0   
## -------------------------------------------
## 
## R2 do modelo linear
## --------
## 0.999632
## --------
## 
## Analise de variancia do modelo linear
## ===================================================================
##                      GL      SQ           QM         Fc     valor.p
## -------------------------------------------------------------------
## Efeito linear        1  263,412.9000 263,412.9000 137432.82    0   
## Desvios de Regressao 3    96.9000      32.3000      16.85    5e-05 
## Residuos             15   28.7500       1.9167                     
## -------------------------------------------------------------------
## ------------------------------------------------------------------------
## 
## Modelo quadratico
## ==========================================
##    Estimativa Erro.padrao    tc    valor.p
## ------------------------------------------
## b0  563.5500    1.4846    379.5860    0   
## b1  -87.7929    1.1314    -77.5968    0   
## b2   1.1071     0.1850     5.9844  0.00003
## ------------------------------------------
## 
## R2 do modelo quadratico
## --------
## 0.999893
## --------
## 
## Analise de variancia do modelo quadratico
## ===================================================================
##                      GL      SQ           QM         Fc     valor.p
## -------------------------------------------------------------------
## Efeito linear        1  263,412.9000 263,412.9000 137432.82    0   
## Efeito quadratico    1    68.6429      68.6429      35.81    3e-05 
## Desvios de Regressao 2    28.2571      14.1286      7.37    0.00589
## Residuos             15   28.7500       1.9167                     
## -------------------------------------------------------------------
## ------------------------------------------------------------------------
## 
## Modelo cubico
## ==========================================
##    Estimativa Erro.padrao    tc    valor.p
## ------------------------------------------
## b0  575.1000    3.4053    168.8855    0   
## b1 -104.0179    4.4512    -23.3685    0   
## b2   7.2946     1.6521     4.4153  0.0005 
## b3  -0.6875     0.1824    -3.7689  0.0019 
## ------------------------------------------
## 
## R2 do modelo cubico
## --------
## 0.999996
## --------
## 
## Analise de variancia do modelo cubico
## ===================================================================
##                      GL      SQ           QM         Fc     valor.p
## -------------------------------------------------------------------
## Efeito linear        1  263,412.9000 263,412.9000 137432.82    0   
## Efeito quadratico    1    68.6429      68.6429      35.81    3e-05 
## Efeito cubico        1    27.2250      27.2250      14.2    0.00186
## Desvios de Regressao 1     1.0321       1.0321      0.54    0.47437
## Residuos             15   28.7500       1.9167                     
## -------------------------------------------------------------------
## ------------------------------------------------------------------------

2.3 Análise de Resíduos

# Análise dos resíduos
residuos <- residuals(anava)

# Teste de Normalidade - Shapiro-Wilk
shapiro.test(residuos)
## 
##  Shapiro-Wilk normality test
## 
## data:  residuos
## W = 0.9222, p-value = 0.1092
# Teste de Homogeneidade - Bartlett
bartlett.test(tensao ~ distancia_fator, data = dados)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  tensao by distancia_fator
## Bartlett's K-squared = 0.36845, df = 4, p-value = 0.985
# Teste de Independência - Durbin-Watson
durbinWatsonTest(anava)
##  lag Autocorrelation D-W Statistic p-value
##    1       -0.423913      2.663043   0.462
##  Alternative hypothesis: rho != 0
par(mfrow = c(2, 2))
plot(anava)

2.4 Curva Ajustada

ggplot(dados, aes(x = distancia, y = tensao)) +
  geom_point(size = 3, color = "darkblue") +
  stat_smooth(method = "lm", formula = y ~ poly(x, 3, raw = TRUE),
              se = FALSE, color = "darkgreen") +
  labs(title = "Tensão de Saída vs Distância (Sensor Hall - DIC)",
       x = "Distância (mm)",
       y = "Tensão de Saída (mV)") +
  theme_minimal()

# exibe a reta do gráfico
plot(dados$distancia,dados$tensao, type = "l")

# Cria o modelo linear para exibir os coeficientes lm(y, x)
my_mod <- lm(dados$tensao~dados$distancia, dados) 

my_coef <- coef(my_mod)            # Extract coefficients of model
my_coef                            # Print coefficients of model
##     (Intercept) dados$distancia 
##          555.80          -81.15
my_equation <- paste("y =",        # Extract equation of model
                     coef(my_mod)[[1]],
                     "+",
                     coef(my_mod)[[2]],
                     "* x")
my_equation                        # Print equation of model
## [1] "y = 555.8 + -81.15 * x"

3 Perguntas Propostas

3.1 Qual é a equação da reta ajustada? Interprete os coeficientes.

A equação da reta é y = 555.8 - 81.15x, conforme visto no item 2.4 acima. Os coeficientes B0 e B1 são respectivamente 555.8 e -81.15. Isso representa que no instante onde o sensor está mais próximo do ímã, a tensão é de 555,8mV. E à medida que vai se distanciando, a tensão cai 81,15mV por milímetro.

3.2 A regressao é estatisticamente significativa a 5%? Justifique com base na tabela da ANOVA.

A tabela da ANOVA apresenta um valor p menor que 2x10^(-16), o que claramente é menor que 0,05, portanto mostra que a regressão é estatisticamente significativa. Os testes das seções 2.2 e 2.3 também confirmam isso.

3.3 Construa um gráfico de dispersão com os pontos e a reta ajustada.

Esta etapa já foi feita na seção 2.4 deste relatório, porém, pedi à IA Chat GPT para gerar um gráfico com base nos dados e na equação. O resultado abaixo foi apresentado pelo programa e me parece relativamente correto, surpreendente dentro das limitações de criação de imagens das IAs.

# Imagem no código
knitr::include_graphics("graf_chat.png")

3.4 Avalie se a regressão linear é apropriada.

Os valores de R² para os modelos linear, quadrático e cúbico sçao respectivamente 0.999632, 0.999893 e 0.999996 conforme apresentado pela função reganava. É válido ressaltar que o alto valor de R² do modelo cúbico não necessariamente indica que ele é o melhor modelo que descreve a distribuição dos dados. Eu escolheria o modelo quadrático como o melhor, sendo um meio termo entre os 3 apresentados, e com resultados satisfatórios e significativos.

3.5 Estime a tensão de saída para 3,5 mm de distância. Essa predição é confiável?

Usando o modelo linear y = 555.8 - 81.15x, o valor de tensão para uma distância de 3,5mm seria de y = 271.775.

Utilizando o modelo quadrático y = 563.5 - 87.7929x + 1.1071x², o valor de tensão a 3,5mm é igual a y = 269.786825

E para o modelo cúbico y = 575.1 - 104.0179x + 7.2946x² - 0.6875x³, a tensão para essa distância de 3,5mm terá um valor de y = 270.91963

Com base nos modelos gerados, e nos gráficos das seções acima, pode-se dizer que o modelo escolhido é confiável está dentro da normalidade.

4 Conclusão

O experimento realizado demonstrou de forma clara e estatisticamente robusta a relação entre a distância de um ímã e a tensão de saída de um sensor Hall. A aplicação da ANOVA e dos modelos de regressão permitiu validar que essa relação segue um comportamento sistemático e previsível, com forte evidência de significância estatística.

A análise comparativa entre os modelos linear, quadrático e cúbico mostrou que todos se ajustam muito bem aos dados, apresentando coeficientes de determinação (R²) extremamente altos. No entanto, ao considerar o princípio da parcimônia — ou seja, a escolha de modelos mais simples quando oferecem desempenho similar — o modelo quadrático se destacou como o mais apropriado. Ele equilibra adequadamente qualidade de ajuste e simplicidade, capturando nuances que o modelo linear não alcança, mas sem o sobreajuste potencial do modelo cúbico.

A análise de resíduos confirmou a adequação do modelo, com resíduos normalmente distribuídos, variâncias homogêneas e ausência de autocorrelação. Além disso, a predição para uma distância intermediária (3,5 mm) mostrou-se coerente entre os três modelos, reforçando a confiabilidade do ajuste.

Portanto, conclui-se que o sensor de efeito Hall avaliado possui um comportamento previsível e estável dentro da faixa de 1 mm a 5 mm, sendo o modelo quadrático o mais adequado para representar essa relação. Esses resultados podem ser utilizados com segurança em aplicações práticas que demandem medições precisas de posição ou deslocamento com base na saída do sensor.

5 Código

Código

# Carregando bibliotecas
library(ExpDes.pt)
library(ggplot2)
library(car)
library(nortest)
library(lmtest)
library(gt)
library(dplyr)

# Criando os dados
distancia <- rep(1:5, each = 4)
tensao <- c(476, 480, 478, 477,
            391, 390, 389, 392,
            310, 312, 311, 309,
            233, 231, 230, 232,
            151, 152, 153, 150)

dados <- data.frame(distancia, tensao)

dados |>
  gt() |>
  tab_style(
    style = list(
      cell_text(weight = "bold", color = "white"),
      cell_fill(color = "black")
    ),
    locations = cells_column_labels()
  ) |>
  tab_style(
    style = cell_text(align = "center"),
    locations = cells_body(columns = everything())
  ) |>
  data_color(
    columns = everything(),
    rows = 1:4,
    palette = "#F9EBEA"  # Rosa claro
  ) |>
  data_color(
    columns = everything(),
    rows = 5:8,
    palette = "#E8F8F5"  # Verde água
  ) |>
  data_color(
    columns = everything(),
    rows = 9:12,
    palette = "#FEF9E7"  # Amarelo claro
  ) |>
  data_color(
    columns = everything(),
    rows = 13:16,
    palette = "#EAEDED"  # Cinza claro
  ) |>
  data_color(
    columns = everything(),
    rows = 17:20,
    palette = "#F5EEF8"  # Lilás claro
  )

# ANOVA com distancia como fator
distancia_fator <- as.factor(dados$distancia)
anava <- aov(tensao ~ distancia_fator, data = dados)
summary(anava)

# Aplicando ANOVA com regressão polinomial
reganava <- dic(trat = dados$distancia, resp = dados$tensao, quali = FALSE)

# Análise dos resíduos
residuos <- residuals(anava)

# Teste de Normalidade - Shapiro-Wilk
shapiro.test(residuos)

# Teste de Homogeneidade - Bartlett
bartlett.test(tensao ~ distancia_fator, data = dados)

# Teste de Independência - Durbin-Watson
durbinWatsonTest(anava)

par(mfrow = c(2, 2))
plot(anava)

ggplot(dados, aes(x = distancia, y = tensao)) +
  geom_point(size = 3, color = "darkblue") +
  stat_smooth(method = "lm", formula = y ~ poly(x, 3, raw = TRUE),
              se = FALSE, color = "darkgreen") +
  labs(title = "Tensão de Saída vs Distância (Sensor Hall - DIC)",
       x = "Distância (mm)",
       y = "Tensão de Saída (mV)") +
  theme_minimal()

# exibe a reta do gráfico
plot(dados$distancia,dados$tensao, type = "l")

# Cria o modelo linear para exibir os coeficientes lm(y, x)
my_mod <- lm(dados$tensao~dados$distancia, dados) 

my_coef <- coef(my_mod)            # Extract coefficients of model
my_coef                            # Print coefficients of model

my_equation <- paste("y =",        # Extract equation of model
                     coef(my_mod)[[1]],
                     "+",
                     coef(my_mod)[[2]],
                     "* x")
my_equation                        # Print equation of model

# Imagem no código
knitr::include_graphics("graf_chat.png")