1. Carregamento e manipulação dos dados

Foi utilizado o conjunto de dados mtcars, disponível no próprio R, que contém 32 automóveis e 11 variáveis sobre consumo e características dos veículos.

Os nomes dos carros foram transformados em uma coluna chamada modelo. Também foram criadas as variáveis km_l, convertendo o rendimento de milhas por galão para quilômetros por litro, e transmissao, apresentando por extenso os tipos automática e manual.

Em seguida, foram selecionados os carros com quatro cilindros e ordenados pelo rendimento, do mais econômico para o menos econômico.

data(mtcars)

# Copiar a base e colocar os nomes dos carros em uma coluna
carros <- mtcars
carros$modelo <- rownames(carros)
rownames(carros) <- NULL

# Converter o rendimento de milhas por galão para km/l
carros$km_l <- carros$mpg * 0.425144

# Criar uma coluna com o tipo de transmissão
carros$transmissao <- ifelse(
  carros$am == 0,
  "Automática",
  "Manual"
)

# Filtrar carros com quatro cilindros
carros_4cil <- carros[carros$cyl == 4, ]

# Ordenar do mais econômico para o menos econômico
carros_4cil <- carros_4cil[
  order(carros_4cil$km_l, decreasing = TRUE),
]

# Mostrar as colunas de interesse
carros_4cil[, c("modelo", "cyl", "hp", "km_l", "transmissao")]
##            modelo cyl  hp      km_l transmissao
## 20 Toyota Corolla   4  65 14.412382      Manual
## 18       Fiat 128   4  66 13.774666      Manual
## 19    Honda Civic   4  52 12.924378      Manual
## 28   Lotus Europa   4 113 12.924378      Manual
## 26      Fiat X1-9   4  66 11.606431      Manual
## 27  Porsche 914-2   4  91 11.053744      Manual
## 8       Merc 240D   4  62 10.373514  Automática
## 3      Datsun 710   4  93  9.693283      Manual
## 9        Merc 230   4  95  9.693283  Automática
## 21  Toyota Corona   4  97  9.140596  Automática
## 32     Volvo 142E   4 109  9.098082      Manual
# Capturar os resultados para utilizar no texto
n_total <- nrow(carros)
n_filtrados <- nrow(carros_4cil)

carro_maior <- carros_4cil[which.max(carros_4cil$km_l), ]
carro_menor <- carros_4cil[which.min(carros_4cil$km_l), ]

# Calcular as medianas para a interpretação do boxplot
medianas_cil <- tapply(carros$km_l, carros$cyl, median)

# Preparar um resumo dos grupos e seus resultados
resumo_medianas <- paste(
  paste0(
    names(medianas_cil),
    " cilindros: ",
    formatC(
      medianas_cil,
      format = "f",
      digits = 2,
      decimal.mark = ","
    ),
    " km/l"
  ),
  collapse = "; "
)

Após a filtragem, foram mantidos 11 dos 32 automóveis. Entre os veículos selecionados, o Toyota Corolla apresentou o maior rendimento, com aproximadamente 14,41 km/l, enquanto o Volvo 142E apresentou o menor, com aproximadamente 9,10 km/l.

A ordenação facilita a comparação dos veículos, enquanto a conversão para km/l e a identificação dos tipos de transmissão tornam os resultados mais fáceis de interpretar.

2. Tabela interativa

A tabela apresenta os carros com quatro cilindros. É possível buscar um modelo, clicar nos títulos das colunas para ordenar os valores e navegar entre as páginas.

library(DT)

# Selecionar as colunas que serão exibidas
dados_tabela <- carros_4cil[
  , c("modelo", "cyl", "hp", "km_l", "transmissao")
]

# Criar a tabela interativa
tabela <- datatable(
  dados_tabela,
  rownames = FALSE,
  colnames = c(
    "Modelo", "Cilindros", "Potência (hp)",
    "Rendimento (km/l)", "Transmissão"
  ),
  options = list(
    pageLength = 5,
    lengthMenu = c(5, 10, 20),
    searching = TRUE,
    ordering = TRUE,
    paging = TRUE,
    order = list()
  )
)

# Exibir o rendimento com duas casas decimais
formatRound(tabela, columns = "km_l", digits = 2)

3. Equações utilizadas em análise de dados

3.1. Regressão linear múltipla

\[ y_i = \beta_0 + \beta_1 x_{i1} + \beta_2 x_{i2} + \cdots + \beta_p x_{ip} + \varepsilon_i \]

A regressão linear múltipla representa uma variável resposta a partir de várias variáveis explicativas.

  • \(y_i\): valor da variável resposta para a observação \(i\).
  • \(x_{ij}\): valor da variável explicativa \(j\) para a observação \(i\).
  • \(\beta_0\): intercepto do modelo.
  • \(\beta_j\): coeficiente associado à variável explicativa \(j\).
  • \(\varepsilon_i\): erro não explicado pelo modelo.
  • \(p\): quantidade de variáveis explicativas.

No conjunto mtcars, esse modelo poderia representar o rendimento em km/l a partir do peso, da potência e do número de cilindros.

3.2. Estimação por mínimos quadrados

\[ \hat{\boldsymbol{\beta}} = \underset{\boldsymbol{\beta}}{\operatorname{arg\,min}} \sum_{i=1}^{n} \left( y_i - \beta_0 - \sum_{j=1}^{p}\beta_j x_{ij} \right)^2 \]

O método dos mínimos quadrados encontra os coeficientes que minimizam a soma dos quadrados das diferenças entre os valores observados e os valores previstos pelo modelo.

  • \(\hat{\boldsymbol{\beta}}\): conjunto de coeficientes estimados.
  • \(n\): quantidade de observações.
  • \(\operatorname{arg\,min}\): indica os valores dos coeficientes que tornam a expressão a menor possível.

No exemplo dos automóveis, o método ajustaria os coeficientes para reduzir as diferenças entre o rendimento real e o previsto.

3.3. Raiz do erro quadrático médio — RMSE

\[ \operatorname{RMSE} = \sqrt{ \frac{1}{n} \sum_{i=1}^{n} \left(y_i - \hat{y}_i\right)^2 } \]

A RMSE mede a magnitude dos erros de previsão de um modelo. Quanto menor o valor, menores são os erros segundo essa medida, quando os modelos são avaliados nas mesmas observações.

  • \(y_i\): valor observado.
  • \(\hat{y}_i\): valor previsto.
  • \(n\): quantidade de observações avaliadas.

Se a variável prevista for o rendimento em km/l, a RMSE também será expressa em km/l. O uso do quadrado dá maior peso aos erros grandes.

3.4. Coeficiente de correlação de Pearson

\[ r_{xy} = \frac{ \sum_{i=1}^{n}(x_i-\bar{x})(y_i-\bar{y}) }{ \sqrt{ \left[\sum_{i=1}^{n}(x_i-\bar{x})^2\right] \left[\sum_{i=1}^{n}(y_i-\bar{y})^2\right] } } \]

O coeficiente de Pearson mede a direção e a intensidade da associação linear entre duas variáveis quantitativas.

  • \(x_i\) e \(y_i\): valores das duas variáveis na observação \(i\).
  • \(\bar{x}\) e \(\bar{y}\): médias dessas variáveis.
  • \(r_{xy}\): correlação, com valores entre \(-1\) e \(1\).

Valores próximos de \(1\) indicam associação linear positiva; próximos de \(-1\), associação linear negativa; e próximos de zero, associação linear fraca ou ausente.

No mtcars, podemos investigar a associação entre peso e rendimento. A correlação, por si só, não demonstra uma relação de causa e efeito.

3.5. Função de densidade da distribuição normal

\[ f(x) = \frac{1}{\sigma\sqrt{2\pi}} \exp\left[ -\frac{(x-\mu)^2}{2\sigma^2} \right], \qquad \sigma > 0 \]

Essa função descreve a densidade de uma distribuição normal, que apresenta uma curva simétrica em formato de sino.

  • \(x\): valor da variável.
  • \(\mu\): média da distribuição.
  • \(\sigma\): desvio padrão.
  • \(\sigma^2\): variância.
  • \(\exp\): função exponencial.

As probabilidades correspondem às áreas sob a curva em determinados intervalos. Essa distribuição é utilizada em diversos métodos estatísticos, mas sua apresentação não significa que as variáveis do mtcars necessariamente tenham distribuição normal.

4. Figuras relacionadas à análise de dados

4.1. Relação entre peso e rendimento

O gráfico de dispersão apresenta a relação entre o peso dos carros e seu rendimento em km/l. Cada ponto representa um automóvel.

plot(
  x = carros$wt,
  y = carros$km_l,
  main = "Peso e rendimento dos automóveis",
  xlab = "Peso (milhares de libras)",
  ylab = "Rendimento (km/l)",
  pch = 19,
  col = "steelblue"
)
Relação entre peso e rendimento dos automóveis.

Relação entre peso e rendimento dos automóveis.

Observa-se uma tendência de menor rendimento nos carros mais pesados. Isso indica uma associação negativa entre essas variáveis na base analisada, sem estabelecer, por si só, uma relação de causa e efeito.

4.2. Rendimento por número de cilindros

O boxplot compara a distribuição do rendimento entre os grupos de carros com 4, 6, 8 cilindros.

boxplot(
  km_l ~ factor(cyl),
  data = carros,
  main = "Rendimento por número de cilindros",
  xlab = "Número de cilindros",
  ylab = "Rendimento (km/l)",
  col = c("lightblue", "lightgreen", "salmon")
)
Distribuição do rendimento por número de cilindros.

Distribuição do rendimento por número de cilindros.

A linha dentro de cada caixa representa a mediana. A caixa apresenta os 50% centrais dos valores, entre o primeiro e o terceiro quartis. Pontos além dos limites dos bigodes, quando presentes, indicam possíveis valores atípicos pelo critério do boxplot.

As medianas de rendimento por grupo foram: 4 cilindros: 11,05 km/l; 6 cilindros: 8,38 km/l; 8 cilindros: 6,46 km/l. A comparação desses valores permite identificar quais grupos apresentam maior rendimento mediano na base analisada.

5. Referências bibliográficas

DT: An R Interface to the DataTables Library. n.d. Accessed October 10, 2026. https://rstudio.github.io/DT/.
James, Gareth, Daniela Witten, Trevor Hastie, and Robert Tibshirani. 2021. An Introduction to Statistical Learning: With Applications in R. 2nd ed. Springer. https://www.statlearning.com/.
Motor Trend Car Road Tests — mtcars. n.d. R Project. Accessed October 10, 2026. https://stat.ethz.ch/R-manual/R-patched/library/datasets/html/mtcars.html.
NIST, and SEMATECH. n.d. NIST/SEMATECH e-Handbook of Statistical Methods. Accessed October 10, 2026. https://www.itl.nist.gov/div898/handbook/.
Xie, Yihui, J. J. Allaire, and Garrett Grolemund. 2018. R Markdown: The Definitive Guide. Chapman; Hall/CRC. https://pkg.yihui.org/rmarkdown-book/.