Usamos o conjunto mtcars, nativo do R, com dados de 32
automóveis (revista Motor Trend, 1974).
data(mtcars)
# O nome do carro está nos nomes das linhas; vamos transformá-lo em uma coluna
carros <- data.frame(modelo = rownames(mtcars), mtcars, row.names = NULL)
head(carros[, c("modelo", "mpg", "cyl", "hp", "wt")])
## modelo mpg cyl hp wt
## 1 Mazda RX4 21.0 6 110 2.620
## 2 Mazda RX4 Wag 21.0 6 110 2.875
## 3 Datsun 710 22.8 4 93 2.320
## 4 Hornet 4 Drive 21.4 6 110 3.215
## 5 Hornet Sportabout 18.7 8 175 3.440
## 6 Valiant 18.1 6 105 3.460
Explicação: o conjunto tem 32
carros (linhas) e 12 colunas. Usaremos quatro
variáveis: mpg (consumo, em milhas por galão; quanto maior,
mais econômico), cyl (número de cilindros), hp
(potência) e wt (peso, em mil libras).
ordenado <- carros[order(-carros$mpg), c("modelo", "mpg", "hp")]
head(ordenado, 5)
## modelo mpg hp
## 20 Toyota Corolla 33.9 65
## 18 Fiat 128 32.4 66
## 19 Honda Civic 30.4 52
## 28 Lotus Europa 30.4 113
## 26 Fiat X1-9 27.3 66
Explicação: order(-carros$mpg) ordena
do maior para o menor consumo. O carro mais econômico é o Toyota
Corolla, com 33.9 mpg.
economicos <- subset(carros, mpg > 25, select = c(modelo, mpg, cyl, hp))
economicos
## modelo mpg cyl hp
## 18 Fiat 128 32.4 4 66
## 19 Honda Civic 30.4 4 52
## 20 Toyota Corolla 33.9 4 65
## 26 Fiat X1-9 27.3 4 66
## 27 Porsche 914-2 26.0 4 91
## 28 Lotus Europa 30.4 4 113
Explicação: subset() mantém apenas os
carros com consumo acima de 25 mpg. Restaram 6 carros
(19% do total).
carros$km_por_litro <- round(carros$mpg * 0.425, 2)
head(carros[, c("modelo", "mpg", "km_por_litro")])
## modelo mpg km_por_litro
## 1 Mazda RX4 21.0 8.92
## 2 Mazda RX4 Wag 21.0 8.92
## 3 Datsun 710 22.8 9.69
## 4 Hornet 4 Drive 21.4 9.09
## 5 Hornet Sportabout 18.7 7.95
## 6 Valiant 18.1 7.69
Explicação: criamos km_por_litro
convertendo milhas por galão para quilômetros por litro (1 mpg ≈ 0,425
km/L). O consumo médio da amostra é 8.5 km/L.
resumo <- aggregate(cbind(mpg, hp) ~ cyl, data = carros, FUN = mean)
kable(resumo, digits = 1, caption = "Médias de consumo e potência por número de cilindros")
| cyl | mpg | hp |
|---|---|---|
| 4 | 26.7 | 82.6 |
| 6 | 19.7 | 122.3 |
| 8 | 15.1 | 209.2 |
Explicação: aggregate() calcula a média
de mpg e hp para cada número de cilindros.
Quanto mais cilindros, menor o consumo e maior a
potência: carros de 4 cilindros rendem em média 26.7 mpg,
contra 15.1 mpg nos de 8 cilindros.
A tabela permite ordenar (clique no cabeçalho), buscar (campo “Buscar” e filtros por coluna) e paginar (botões e seletor de linhas por página).
datatable(
carros[, c("modelo", "mpg", "cyl", "hp", "wt")],
rownames = FALSE,
filter = "top",
options = list(pageLength = 5, lengthMenu = c(5, 10, 32))
)
Equação 1 – Média
\[\bar{x} = \frac{1}{n}\sum_{i=1}^{n} x_i\]
Significado: soma de todos os valores dividida pelo número de observações; resume o “centro” dos dados.
Equação 2 – Desvio padrão
\[s = \sqrt{\frac{1}{n-1}\sum_{i=1}^{n}\left(x_i - \bar{x}\right)^2}\]
Significado: mede o quanto os valores se afastam, em média, da média. Quanto maior, mais dispersos os dados.
Equação 3 – Correlação de Pearson
\[r = \frac{\sum_{i=1}^{n}(x_i-\bar{x})(y_i-\bar{y})}{\sqrt{\sum_{i=1}^{n}(x_i-\bar{x})^2}\,\sqrt{\sum_{i=1}^{n}(y_i-\bar{y})^2}}\]
Significado: mede a força e o sentido da relação linear entre duas variáveis. Varia de \(-1\) (relação inversa perfeita) a \(+1\) (relação direta perfeita).
Equação 4 – Regressão linear simples
\[\hat{y} = \beta_0 + \beta_1 x, \qquad \beta_1 = \frac{\sum_{i=1}^{n}(x_i-\bar{x})(y_i-\bar{y})}{\sum_{i=1}^{n}(x_i-\bar{x})^2}, \qquad \beta_0 = \bar{y} - \beta_1\bar{x}\]
Significado: a reta que melhor ajusta os pontos. \(\beta_1\) é a variação esperada em \(y\) para cada aumento de uma unidade em \(x\), e \(\beta_0\) é o valor previsto quando \(x = 0\).
Equação 5 – Erro quadrático médio (MSE)
\[\text{MSE} = \frac{1}{n}\sum_{i=1}^{n}\left(y_i - \hat{y}_i\right)^2\]
Significado: média dos quadrados dos erros de previsão. Quanto menor, melhor o modelo.
plot(carros$wt, carros$mpg, pch = 19, col = "steelblue",
xlab = "Peso (mil libras)", ylab = "Consumo (mpg)")
modelo <- lm(mpg ~ wt, data = carros)
abline(modelo, col = "red", lwd = 2)
Figura 1 – Relação entre peso e consumo, com reta de regressão linear.
Descrição: carros mais pesados têm menor consumo. A correlação é -0.87 e, pela reta, cada mil libras a mais reduz o consumo em cerca de 5.3 mpg.
boxplot(mpg ~ cyl, data = carros, col = c("lightgreen", "lightblue", "salmon"),
xlab = "Cilindros", ylab = "Consumo (mpg)")
Figura 2 – Distribuição do consumo por número de cilindros.
Descrição: o boxplot mostra que a mediana do consumo cai à medida que aumenta o número de cilindros.
Santana et al. (2023) Team et al. (2023) Shukla et al. (2024) Team (2000) Kelleher e Tierney (2018)