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.
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:
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.
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.
DT::datatable(
dados,
extensions = c("Buttons"),
options = list(
pageLength = 10,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'print'),
autoWidth = TRUE
),
rownames = FALSE
)
\[
\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).
\[
\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\).
\[
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.
\[
\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.
\[
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).
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)"
)
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))
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