Relatório

1. Dados e manipulação

Usamos o conjunto mtcars, nativo do R, com dados de 32 automóveis (revista Motor Trend, 1974).

Carregando os dados

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).

Ordenação

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.

Filtragem

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).

Criação de nova variável

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 por grupo

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")
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.

2. Tabela interativa (DT)

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))
)

3. Equações

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.

4. Figuras

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.

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.

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.

5. Referências

Santana et al. (2023) Team et al. (2023) Shukla et al. (2024) Team (2000) Kelleher e Tierney (2018)

Kelleher, John D, e Brendan Tierney. 2018. Data science. MIT press.
Santana, Maria, Juliana Lima, Andreiwid Correa, e Kellyton Brito. 2023. “Engajamento no TikTok dos candidatos às eleições Brasileiras de 2022–Resultados Iniciais”. Brazilian Workshop on Social Network Analysis and Mining (BraSNAM), 151–62.
Shukla, Manali, Ishika Goyal, Bhavya Gupta, e Jhanvi Sharma. 2024. “A comparative study of ChatGPT, Gemini, and Perplexity”. International Journal of Innovative Research in Computer Science and Technology 12 (4): 10–15.
Team, Gemini, Rohan Anil, Sebastian Borgeaud, et al. 2023. “Gemini: a family of highly capable multimodal models”. arXiv preprint arXiv:2312.11805.
Team, R Core. 2000. “R language definition”. Vienna, Austria: R foundation for statistical computing 3 (1): 116.