1 Dados: Carregamento & Manipulação (detalhado)

1.1 1.1 Carregar dados

Usaremos mtcars, dataset básico do R.

O conjunto de dados utilizado neste relatório é o mtcars, que acompanha o R por padrão.
Ele reúne informações sobre o desempenho e as características de 32 modelos de automóveis lançados na década de 1970.

Cada linha representa um carro diferente, e as colunas contêm variáveis como:

  • mpg: milhas por galão (indicador de consumo de combustível);
  • cyl: número de cilindros do motor;
  • disp: deslocamento do motor em polegadas cúbicas;
  • hp: potência bruta (em horsepower);
  • drat: relação do diferencial (axle ratio);
  • wt: peso do veículo (em milhares de libras);
  • qsec: tempo (em segundos) para percorrer 1/4 de milha;
  • vs: tipo de motor (0 = em V, 1 = em linha);
  • am: tipo de transmissão (0 = automática, 1 = manual);
  • gear e carb: número de marchas e carburadores, respectivamente.

Este dataset é ideal para demonstrações de estatística descritiva, regressões e visualizações, porque apresenta variáveis quantitativas e categóricas que se relacionam de forma interessante — por exemplo, entre potência, peso e consumo de combustível.

dados_brutos <- mtcars
head(dados_brutos, 5)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2

Campos (resumo): mpg (consumo), cyl (cilindros), hp (potência), wt (peso), qsec (1/4 de milha), etc.

1.2 1.2 Limpeza & novas variáveis

  • Selecionar colunas relevantes
  • Criar potência/peso e eficiência relativa
  • Filtrar 4/6/8 cilindros
  • Ordenar por mpg (maior → menor)

Nesta etapa, realizo uma transformação nos dados para facilitar as análises posteriores.
O objetivo é comparar a eficiência dos carros em termos de consumo e potência, criando novas métricas:

  • pot_peso: relação entre potência e peso, que mostra o desempenho relativo de cada carro;
  • eff_rel: eficiência relativa, ou seja, o quanto o carro é mais ou menos econômico em comparação à média da amostra.

Também ordenei os veículos do mais econômico para o menos econômico, facilitando a visualização dos padrões.

dados <- dados_brutos %>%
  tibble::rownames_to_column(var = "modelo") %>%
  select(modelo, mpg, cyl, disp, hp, wt, qsec, am, gear) %>%
  mutate(
    pot_peso = hp / wt,           # potência por 1000 lb
    eff_rel  = mpg / mean(mpg)    # mpg relativo à média
  ) %>%
  filter(cyl %in% c(4, 6, 8)) %>%
  arrange(desc(mpg))

dados %>% 
  gt::gt() %>% 
  gt::fmt_number(columns = c(mpg, disp, hp, wt, qsec, pot_peso, eff_rel), decimals = 2)
modelo mpg cyl disp hp wt qsec am gear pot_peso eff_rel
Toyota Corolla 33.90 4 71.10 65.00 1.83 19.90 1 4 35.42 1.69
Fiat 128 32.40 4 78.70 66.00 2.20 19.47 1 4 30.00 1.61
Honda Civic 30.40 4 75.70 52.00 1.61 18.52 1 4 32.20 1.51
Lotus Europa 30.40 4 95.10 113.00 1.51 16.90 1 5 74.69 1.51
Fiat X1-9 27.30 4 79.00 66.00 1.94 18.90 1 4 34.11 1.36
Porsche 914-2 26.00 4 120.30 91.00 2.14 16.70 1 5 42.52 1.29
Merc 240D 24.40 4 146.70 62.00 3.19 20.00 0 4 19.44 1.21
Datsun 710 22.80 4 108.00 93.00 2.32 18.61 1 4 40.09 1.13
Merc 230 22.80 4 140.80 95.00 3.15 22.90 0 4 30.16 1.13
Toyota Corona 21.50 4 120.10 97.00 2.46 20.01 0 3 39.35 1.07
Hornet 4 Drive 21.40 6 258.00 110.00 3.21 19.44 0 3 34.21 1.07
Volvo 142E 21.40 4 121.00 109.00 2.78 18.60 1 4 39.21 1.07
Mazda RX4 21.00 6 160.00 110.00 2.62 16.46 1 4 41.98 1.05
Mazda RX4 Wag 21.00 6 160.00 110.00 2.88 17.02 1 4 38.26 1.05
Ferrari Dino 19.70 6 145.00 175.00 2.77 15.50 1 5 63.18 0.98
Merc 280 19.20 6 167.60 123.00 3.44 18.30 0 4 35.76 0.96
Pontiac Firebird 19.20 8 400.00 175.00 3.85 17.05 0 3 45.51 0.96
Hornet Sportabout 18.70 8 360.00 175.00 3.44 17.02 0 3 50.87 0.93
Valiant 18.10 6 225.00 105.00 3.46 20.22 0 3 30.35 0.90
Merc 280C 17.80 6 167.60 123.00 3.44 18.90 0 4 35.76 0.89
Merc 450SL 17.30 8 275.80 180.00 3.73 17.60 0 3 48.26 0.86
Merc 450SE 16.40 8 275.80 180.00 4.07 17.40 0 3 44.23 0.82
Ford Pantera L 15.80 8 351.00 264.00 3.17 14.50 1 5 83.28 0.79
Dodge Challenger 15.50 8 318.00 150.00 3.52 16.87 0 3 42.61 0.77
Merc 450SLC 15.20 8 275.80 180.00 3.78 18.00 0 3 47.62 0.76
AMC Javelin 15.20 8 304.00 150.00 3.44 17.30 0 3 43.67 0.76
Maserati Bora 15.00 8 301.00 335.00 3.57 14.60 1 5 93.84 0.75
Chrysler Imperial 14.70 8 440.00 230.00 5.34 17.42 0 3 43.03 0.73
Duster 360 14.30 8 360.00 245.00 3.57 15.84 0 3 68.63 0.71
Camaro Z28 13.30 8 350.00 245.00 3.84 15.41 0 3 63.80 0.66
Cadillac Fleetwood 10.40 8 472.00 205.00 5.25 17.98 0 3 39.05 0.52
Lincoln Continental 10.40 8 460.00 215.00 5.42 17.82 0 3 39.64 0.52

Como ler os resultados: - pot_peso: mais alto → carro tende a responder melhor (mais “esperto”).
- eff_rel:
- > 1 → mais econômico que a média
- < 1 → menos econômico
- Ordenar por mpg destaca quem bebe menos.

1.3 1.3 Resumo por cilindros

resumo_cyl <- dados %>%
  group_by(cyl) %>%
  summarise(
    n           = n(),
    mpg_medio   = mean(mpg),
    hp_medio    = mean(hp),
    peso_medio  = mean(wt),
    prop_manual = mean(am)
  )

resumo_cyl %>% gt::gt() %>% 
  gt::fmt_number(c(mpg_medio, hp_medio, peso_medio, prop_manual), 2) %>%
  gt::fmt_percent(columns = prop_manual, decimals = 0)
cyl n mpg_medio hp_medio peso_medio prop_manual
4 11 26.66364 82.63636 2.285727 73%
6 7 19.74 122.29 3.12 43%
8 14 15.10000 209.21429 3.999214 14%

Leitura: mais cilindros → mais potência e peso; em geral, cai o mpg.


2 Tabela Interativa (DT)

2.1 2.1 DataTable com busca/ordenar/paginar

DT::datatable(
  dados,
  extensions = c("Buttons"),
  options = list(
    pageLength = 10,
    dom = 'Bfrtip',
    buttons = c('copy', 'csv', 'excel', 'print'),
    autoWidth = TRUE
  ),
  rownames = FALSE
)

3 Equações (LaTeX)

3.1 3.1 Regressão Linear (Normal Equation)

\[ \hat{\boldsymbol{\beta}} = (X^\top X)^{-1} X^\top \mathbf{y} \]
Significado: coeficientes que minimizam o erro quadrático na regressão linear (quando \(X^\top X\) é invertível).

3.2 3.2 Gradiente Descendente

\[ \boldsymbol{\theta}^{(t+1)} = \boldsymbol{\theta}^{(t)} - \eta \,\nabla_{\boldsymbol{\theta}} \mathcal{L}\!\left(\boldsymbol{\theta}^{(t)}\right) \]
Significado: regra iterativa para minimizar a perda \(\mathcal{L}\) com taxa \(\eta\).

3.3 3.3 Teorema de Bayes

\[ P(A \mid B) = \frac{P(B \mid A)\,P(A)}{P(B)} \]
Significado: atualiza a probabilidade de uma hipótese após observar evidência.

3.4 3.4 Entropia Cruzada (binária)

\[ \mathcal{L} = -\big[y\log(\hat{p}) + (1-y)\log(1-\hat{p})\big] \]
Significado: erro para previsões probabilísticas; comum em logística e redes neurais.

3.5 3.5 F1-Score

\[ F_1 = 2 \cdot \frac{\text{Precisão} \cdot \text{Revocação}}{\text{Precisão} + \text{Revocação}} \]
Significado: média harmônica entre Precisão e Revocação (bom para desbalanceamento).


4 Figuras: Ciência de Dados

4.1 4.1 Dispersão: Consumo vs. Potência

ggplot(dados, aes(x = hp, y = mpg)) +
  geom_point(size = 2, alpha = 0.8) +
  geom_smooth(method = "lm", se = TRUE) +
  labs(
    title = "Relação entre Consumo (mpg) e Potência (hp)",
    x = "Potência (hp)", y = "Consumo (mpg)"
  )

4.2 4.2 Mapa de Correlação

num_vars <- dados %>% select(mpg, cyl, disp, hp, wt, qsec, pot_peso, eff_rel)
corr <- cor(num_vars)
corr_df <- as.data.frame(as.table(corr))
names(corr_df) <- c("Var1", "Var2", "value")

ggplot(corr_df, aes(Var1, Var2, fill = value)) +
  geom_tile() +
  geom_text(aes(label = sprintf("%.2f", value)), size = 3) +
  scale_fill_gradient2(limits = c(-1,1)) +
  labs(title = "Mapa de Correlação", x = "", y = "") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))


5 Referências

5.1 5.1 Bibliografia

  1. Hastie, Tibshirani & Friedman (2009). The Elements of Statistical Learning. Springer.
  2. James et al. (2021). An Introduction to Statistical Learning (2e). Springer.
  3. Bishop (2006). Pattern Recognition and Machine Learning. Springer.
  4. Wickham, Çetinkaya-Rundel & Grolemund (2023). R for Data Science (2e). O’Reilly.
  5. Kuhn & Johnson (2019). Feature Engineering and Selection. Chapman & Hall/CRC.

6 Apêndice

6.1 Sessão

sessionInfo()
## R version 4.5.1 (2025-06-13 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 11 x64 (build 26100)
## 
## Matrix products: default
##   LAPACK version 3.12.1
## 
## locale:
## [1] LC_COLLATE=Portuguese_Brazil.utf8  LC_CTYPE=Portuguese_Brazil.utf8   
## [3] LC_MONETARY=Portuguese_Brazil.utf8 LC_NUMERIC=C                      
## [5] LC_TIME=Portuguese_Brazil.utf8    
## 
## time zone: America/Fortaleza
## tzcode source: internal
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] tibble_3.3.0  gt_1.1.0      scales_1.4.0  DT_0.34.0     tidyr_1.3.1  
## [6] ggplot2_4.0.0 dplyr_1.1.4  
## 
## loaded via a namespace (and not attached):
##  [1] Matrix_1.7-3       gtable_0.3.6       jsonlite_2.0.0     compiler_4.5.1    
##  [5] tidyselect_1.2.1   xml2_1.4.1         jquerylib_0.1.4    splines_4.5.1     
##  [9] yaml_2.3.10        fastmap_1.2.0      lattice_0.22-7     R6_2.6.1          
## [13] labeling_0.4.3     generics_0.1.4     knitr_1.50         htmlwidgets_1.6.4 
## [17] bslib_0.9.0        pillar_1.11.1      RColorBrewer_1.1-3 rlang_1.1.6       
## [21] cachem_1.1.0       xfun_0.54          fs_1.6.6           sass_0.4.10       
## [25] S7_0.2.0           cli_3.6.5          mgcv_1.9-3         withr_3.0.2       
## [29] magrittr_2.0.4     crosstalk_1.2.2    digest_0.6.37      grid_4.5.1        
## [33] rstudioapi_0.17.1  nlme_3.1-168       lifecycle_1.0.4    vctrs_0.6.5       
## [37] evaluate_1.0.5     glue_1.8.0         farver_2.1.2       rmarkdown_2.30    
## [41] purrr_1.1.0        tools_4.5.1        pkgconfig_2.0.3    htmltools_0.5.8.1