Resumo: Este documento traz alguns exemplos de manipulação de dados, utilização de relatórios, citação de referências bibliográficas e imagens.


Abas Principais

1. Manipulação de Dados

Apresentação do Conjunto de Dados

Exemplo: dataset mtcars, nativo do R, o qual contém dados sobre 32 modelos de automóveis (diferentes observações) coletados pela revista Motor Trend em 1974. Cada linha representa um carro e cada coluna uma característica técnica.

# Carregar o dataset mtcars
data(mtcars)

# Verificar a estrutura dos dados
str(mtcars)
## 'data.frame':    32 obs. of  11 variables:
##  $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
##  $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
##  $ disp: num  160 160 108 258 360 ...
##  $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
##  $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
##  $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
##  $ qsec: num  16.5 17 18.6 19.4 17 ...
##  $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
##  $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
##  $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
##  $ carb: num  4 4 1 1 2 1 4 2 2 4 ...

A função str() mostra que que mtcars possui 32 observações e 11 variáveis numéricas. As principais variáveis são:

Variável Descrição
mpg Consumo (milhas por galão)
cyl Número de cilindros
disp Cilindrada (pol³)
hp Potência (cavalos de força)
wt Peso (1000 lbs)
gear Número de marchas
am Transmissão (0 = automático, 1 = manual)

Estatísticas Descritivas

# Estatísticas das variáveis selecionadas
summary(mtcars[, c("mpg", "hp", "wt", "cyl")])
##       mpg              hp              wt             cyl       
##  Min.   :10.40   Min.   : 52.0   Min.   :1.513   Min.   :4.000  
##  1st Qu.:15.43   1st Qu.: 96.5   1st Qu.:2.581   1st Qu.:4.000  
##  Median :19.20   Median :123.0   Median :3.325   Median :6.000  
##  Mean   :20.09   Mean   :146.7   Mean   :3.217   Mean   :6.188  
##  3rd Qu.:22.80   3rd Qu.:180.0   3rd Qu.:3.610   3rd Qu.:8.000  
##  Max.   :33.90   Max.   :335.0   Max.   :5.424   Max.   :8.000

A função summary oferece, por fim, as estatísticas básicas das variáveis que selecionamos acima.


Manipulação 1: Filtragem

# Carros com potência > 150 hp E transmissão manual (am == 1)
carros_manual <- mtcars %>%
  filter(hp > 150, am == 1)

cat("Número de carros filtrados:", nrow(carros_manual), "\n")
## Número de carros filtrados: 3
print(carros_manual[, c("mpg", "cyl", "hp", "wt", "am")])
##                 mpg cyl  hp   wt am
## Ford Pantera L 15.8   8 264 3.17  1
## Ferrari Dino   19.7   6 175 2.77  1
## Maserati Bora  15.0   8 335 3.57  1

Após aplicar filter(), restaram 3 carros com mais de 150 cv e câmbio manual. Esses veículos representam o segmento de alto desempenho do dataset.


Manipulação 2: Ordenação

# Ordenação: do maior para o menor consumo (mpg)
mtcars_ordenado <- mtcars %>%
  arrange(desc(mpg)) %>%
  select(mpg, cyl, hp, wt)

head(mtcars_ordenado, 10)
##                 mpg cyl  hp    wt
## Toyota Corolla 33.9   4  65 1.835
## Fiat 128       32.4   4  66 2.200
## Honda Civic    30.4   4  52 1.615
## Lotus Europa   30.4   4 113 1.513
## Fiat X1-9      27.3   4  66 1.935
## Porsche 914-2  26.0   4  91 2.140
## Merc 240D      24.4   4  62 3.190
## Datsun 710     22.8   4  93 2.320
## Merc 230       22.8   4  95 3.150
## Toyota Corona  21.5   4  97 2.465

Ao ordenar de forma decrescente por mpg, os 10 carros mais econômicos ficam no topo. No total (ou seja, além do head), pode-se apontar que os carros mais eficientes em, em média, 6.1875 cilindros e menor peso.

Manipulação 3: Agrupamento e Sumarização

# Agrupamento por tipo de transmissão

mtcars_ajustado <- mtcars %>%
  mutate(
    # Tipo de transmissão
    transmissao   = ifelse(am == 1, "Manual", "Automático")
  )

resumo_grupo <- mtcars_ajustado %>%
  group_by(transmissao) %>%
  summarise(
    n_carros        = n(),
    media_mpg       = round(mean(mpg), 2),
    media_hp        = round(mean(hp), 2),
    media_peso_lbs  = round(mean(wt) * 1000, 0),
    .groups         = "drop"
  )

resumo_grupo
## # A tibble: 2 × 5
##   transmissao n_carros media_mpg media_hp media_peso_lbs
##   <chr>          <int>     <dbl>    <dbl>          <dbl>
## 1 Automático        19      17.2     160.           3769
## 2 Manual            13      24.4     127.           2411

2. Tabela Interativa (DT)

Tabela com Filtros e Paginação

A tabela abaixo utiliza o pacote DT para exibir o dataset mtcars de forma interativa.

# Preparando o data frame para exibição
tabela_exibir <- mtcars_ajustado %>%
  select(
    Transmissão   = transmissao,
    Cilindros           = cyl,
    `Consumo (mpg)`     = mpg,
    `Potência (hp)`     = hp,
    `Peso (×1000 lbs)`  = wt,
    Marchas             = gear
  )

# Criando a tabela
datatable(
  tabela_exibir,
  rownames   = TRUE,
  filter     = "top",                        # Filtros por coluna no topo
  extensions = c("Buttons", "ColReorder"),
  options    = list(
    pageLength    = 10,
    lengthMenu    = list(c(5, 10, 15, 32), c("5", "10", "15", "Todos")),
    dom           = "Blfrtip",               # Botões + comprimento + filtro + tabela + info + paginação
    buttons       = list("csv", "excel", "pdf", "print"),
    colReorder    = TRUE,                    # Permite reordenar colunas arrastando
    scrollX       = TRUE,
    autoWidth     = TRUE,
    language      = list(
      url = "//cdn.datatables.net/plug-ins/1.13.6/i18n/pt-BR.json"
    )
  ),
  caption = htmltools::tags$caption(
    style = "caption-side: top; text-align: left; font-size: 14px; font-weight: bold;",
    "Tabela 1 — Dataset mtcars"
  )
) %>%
  # Formatação condicional: barras de dados para colunas numéricas
  formatStyle(
    "Consumo (mpg)",
    background = styleColorBar(tabela_exibir$`Consumo (mpg)`, "#27ae60"),
    backgroundSize   = "100% 88%",
    backgroundRepeat = "no-repeat",
    backgroundPosition = "center"
  ) %>%
  formatStyle(
    "Potência (hp)",
    background = styleColorBar(tabela_exibir$`Potência (hp)`, "#e74c3c"),
    backgroundSize   = "100% 88%",
    backgroundRepeat = "no-repeat",
    backgroundPosition = "center"
  )

Experimente clicar nos cabeçalhos das colunas para ordenar. Use os campos de busca no topo de cada coluna para filtrar, podendo exportar os dados com os botões CSV, Excel ou PDF.


3. Equações em LaTeX

Apresento, abaixo, algumas equações complexas recuperadas do estudo da ciência de dados e do Machine Learning.


Equação 1: Função de Verossimilhança Logarítmica (Log-Likelihood)

\[ \ell(\boldsymbol{\theta} \mid \mathbf{x}) = \sum_{i=1}^{n} \log f(x_i \mid \boldsymbol{\theta}) \]

A equação de verossimilhança logarítmica \(\ell(\boldsymbol{\theta} \mid \mathbf{x})\) mede o quanto um conjunto de parâmetros \(\boldsymbol{\theta}\) é plausível dado os dados observados \(\mathbf{x} = (x_1, \ldots, x_n)\). A transformação logarítmica converte o produto de probabilidades em uma soma, tornando a otimização numericamente mais estável. Ela é utilizada para estimar parâmetros em distribuições.

Vide: Datacamp Fisher (1922)


Equação 2: Gradiente Estocástico (SGD) (Regra de Atualização)

\[ \boldsymbol{\theta} = \boldsymbol{\theta} - \eta \nabla_{\boldsymbol{\theta}} \mathcal{J}\!\left(\boldsymbol{\theta};\, x_{(i)}, y_{(i)}\right) \]

Esta é a regra de atualização do Stochastic Gradient Descent (SGD). A cada iteração, os parâmetros \(\boldsymbol{\theta}\) são ajustados na direção oposta ao gradiente. O escalar \(\eta\) (eta) é a taxa de aprendizado, que controla o tamanho do passo. Este algoritmo é muito utilizado na otimização em aprendizado de máquina.

Vide: Geeks4Geeks Bottou (2010)


Equação 3: Entropia de Shannon

\[ H(X) = -\sum_{k=1}^{K} p(x_k)\, \log_b p(x_k) \]

A Entropia de Shannon \(H(X)\) quantifica a incerteza ou informação média associada à variável aleatória discreta \(X\), que assume \(K\) valores possíveis com probabilidades \(p(x_k)\). Quando todas as classes são equiprováveis, a entropia é máxima; quando uma classe é certa (\(p=1\)), a entropia é zero. Na Ciência de Dados, é usada em algoritmos de árvore de decisão para selecionar o atributo que maximiza o ganho de informação a cada divisão.

Vide: Nebius Shannon (1948)


Equação 4: Kernel Gaussiano (RBF) para SVM

\[ K(\mathbf{x}_i, \mathbf{x}_j) = \exp\!\left(-\frac{\|\mathbf{x}_i - \mathbf{x}_j\|^2}{2\sigma^2}\right) \]

O kernel de Base Radial Gaussiana (RBF) calcula a similaridade entre dois vetores \(\mathbf{x}_i\) e \(\mathbf{x}_j\) no espaço de entrada. É usado em Support Vector Machines (SVM).

Vide: arXiv Boser, Guyon, and Vapnik (1992)


Equação 5: Critério de Informação de Akaike (AIC)

\[ \text{AIC} = 2k - 2\ln\!\left(\hat{L}\right) \]

O Critério de Informação de Akaike (AIC) é uma medida de qualidade relativa de modelos estatísticos. \(k\) é o número de parâmetros estimados e \(\hat{L}\) é o valor máximo da função de verossimilhança do modelo. É um método matemático para avaliar o quão bem um modelo se encaixa nos dados a partir dos quais foi gerado.

Vide: Scribbr Akaike (1974)


4. Figuras

Figura 1: Histograma com curva de densidade para mtcars

A figura mostra a distribuição empírica do consumo dos carros.

ggplot(mtcars, aes(x = mpg)) +
  geom_histogram(aes(y = after_stat(density)),
                 bins = 10, fill = "#2980b9", color = "white", alpha = 0.8) +
  geom_density(color = "#e74c3c", linewidth = 1.2) +
  labs(title = "Distribuição do Consumo (mpg)",
       x = "Milhas por Galão", y = "Densidade") +
  theme_minimal()
Figura 1

Figura 1


Figura 2: Matriz de Correlação (Heatmap) entre as variáveis de mtcars

Exibe a força e a correlação entre as variáveis de mtcars. As células azuis indicam correlação positiva, as vermelhas indicam correlação negativa, e as próximas do branco indicam ausência de relação linear.

# Calcula a matriz de correlação
cor_matrix <- cor(mtcars)

# Converte para formato longo
cor_df <- as.data.frame(as.table(cor_matrix))
names(cor_df) <- c("Var1", "Var2", "Correlacao")

ggplot(cor_df, aes(x = Var1, y = Var2, fill = Correlacao)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(Correlacao, 2)), size = 3) +
  scale_fill_gradient2(low = "#e74c3c", mid = "white", high = "#2980b9",
                       midpoint = 0, limits = c(-1, 1)) +
  labs(title = "Matriz de Correlação: Mtcars",
       x = NULL, y = NULL, fill = "Correlação") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))
Figura 2

Figura 2


5. Referências Bibliográficas

Trago algumas referências que dizem respeito ao estudo da ciência de dados e Machine Learning (outras foram citadas no decorrer do texto da aba de equações).


[1] JAMES, Gareth. An introduction to statistical learning with applications in R. 2013.

James (2013)


[2] WICKHAM, Hadley et al. R for data science. Sebastopol: O’Reilly, 2017.

Wickham, Grolemund, et al. (2017)


[3] GOODFELLOW, Ian; BENGIO, Yoshua; COURVILLE, Aaron. Deep feedforward networks. Deep learning, v. 1, p. 161-217, 2016.

Goodfellow, Bengio, and Courville (2016)


[4] HASTIE, Trevor. The elements of statistical learning: data mining, inference, and prediction. 2009.

Hastie (2009)


[5] ROKACH, Lior; MAIMON, Oded; SHMUELI, Erez. Machine learning for data science handbook. Springer.‏ https://doi. org/10, v. 1007, p. 978-3, 2023.

(rokach2023machine?)

Akaike, Hirotugu. 1974. “A New Look at the Statistical Model Identification.” IEEE Transactions on Automatic Control 19 (6): 716–23.
Boser, Bernhard E, Isabelle M Guyon, and Vladimir N Vapnik. 1992. “A Training Algorithm for Optimal Margin Classifiers.” In Proceedings of the Fifth Annual Workshop on Computational Learning Theory, 144–52.
Bottou, Léon. 2010. “Large-Scale Machine Learning with Stochastic Gradient Descent.” In Proceedings of COMPSTAT’2010: 19th International Conference on Computational StatisticsParis France, August 22-27, 2010 Keynote, Invited and Contributed Papers, 177–86. Springer.
Fisher, Ronald A. 1922. “On the Mathematical Foundations of Theoretical Statistics.” Philosophical Transactions of the Royal Society of London. Series A, Containing Papers of a Mathematical or Physical Character 222 (594-604): 309–68.
Goodfellow, Ian, Yoshua Bengio, and Aaron Courville. 2016. “Deep Feedforward Networks.” Deep Learning 1: 161–217.
Hastie, Trevor. 2009. “The Elements of Statistical Learning: Data Mining, Inference, and Prediction.” springer.
James, Gareth. 2013. “An Introduction to Statistical Learning with Applications in r.” Springer.
Shannon, Claude Elwood. 1948. “A Mathematical Theory of Communication.” The Bell System Technical Journal 27 (3): 379–423.
Wickham, Hadley, Garrett Grolemund, et al. 2017. R for Data Science. Vol. 2. O’Reilly Sebastopol.