Seções

1. Manipulação de dados

Esta seção detalha o carregamento e a manipulação de um conjunto do conjunto de dados USArrests, nativo do R, que contém estatísticas de crimes violentos nos 50 estados dos EUA em 1973.

Passo 1: Carregamento e visualização inicial

Primeiro, carregamos os pacotes e o dataset USArrests. Como os nomes dos estados são “rownames” por padrão, usamos rownames_to_column() para transformá-los em uma coluna chamada State.

# Carregar o dataset
data(USArrests)

# Adicionar nomes dos estados como uma coluna
USArrests_df <- USArrests %>%
  tibble::rownames_to_column(var = "State")

# Visualizar as primeiras linhas
head(USArrests_df)
##        State Murder Assault UrbanPop Rape
## 1    Alabama   13.2     236       58 21.2
## 2     Alaska   10.0     263       48 44.5
## 3    Arizona    8.1     294       80 31.0
## 4   Arkansas    8.8     190       50 19.5
## 5 California    9.0     276       91 40.6
## 6   Colorado    7.9     204       78 38.7

Resultado (passo 1): O output acima mostra as colunas originais (Murder, Assault, etc.) e a nova coluna State.


Passo 2: Manipulação dos dados

Agora, vamos realizar uma série de manipulações nos dados.

Passo 2.1: Filtrar (filter) Começamos com USArrests_df e selecionamos apenas os estados onde a população urbana (UrbanPop) é superior a 75%.

dados_filtrados <- USArrests_df %>%
  filter(UrbanPop > 75)

head(dados_filtrados)
##         State Murder Assault UrbanPop Rape
## 1     Arizona    8.1     294       80 31.0
## 2  California    9.0     276       91 40.6
## 3    Colorado    7.9     204       78 38.7
## 4 Connecticut    3.3     110       77 11.1
## 5     Florida   15.4     335       80 31.9
## 6      Hawaii    5.3      46       83 20.2

Resultado (passo 2.1): O head acima mostra os primeiros estados que atendem ao critério de UrbanPop > 75.


Passo 2.2: Criar nova variável (mutate) Usando o resultado anterior (dados_filtrados), criamos uma nova coluna ViolentCrimes somando Murder, Assault e Rape.

dados_mutados <- dados_filtrados %>%
  mutate(ViolentCrimes = Murder + Assault + Rape)

head(dados_mutados)
##         State Murder Assault UrbanPop Rape ViolentCrimes
## 1     Arizona    8.1     294       80 31.0         333.1
## 2  California    9.0     276       91 40.6         325.6
## 3    Colorado    7.9     204       78 38.7         250.6
## 4 Connecticut    3.3     110       77 11.1         124.4
## 5     Florida   15.4     335       80 31.9         382.3
## 6      Hawaii    5.3      46       83 20.2          71.5

Resultado (passo 2.2): O head mostra a nova coluna ViolentCrimes adicionada no final da tabela.


Passo 2.3: Ordenar (arrange) Usando o resultado anterior (dados_mutados), ordenamos os dados pela nova coluna ViolentCrimes em ordem decrescente.

dados_ordenados <- dados_mutados %>%
  arrange(desc(ViolentCrimes))

head(dados_ordenados)
##        State Murder Assault UrbanPop Rape ViolentCrimes
## 1    Florida   15.4     335       80 31.9         382.3
## 2    Arizona    8.1     294       80 31.0         333.1
## 3 California    9.0     276       91 40.6         325.6
## 4     Nevada   12.2     252       81 46.0         310.2
## 5   New York   11.1     254       86 26.1         291.2
## 6   Illinois   10.4     249       83 24.0         283.4

Resultado (passo 2.3): O head mostra que a ordem das linhas mudou. Os estados (com UrbanPop > 75) que têm mais crimes violentos estão agora no topo.


Passo 2.4: Selecionar (select) e resultado final Finalmente, usamos o resultado anterior (dados_ordenados) para manter apenas as colunas de interesse.

dados_manipulados <- dados_ordenados %>%
  select(State, UrbanPop, ViolentCrimes)

head(dados_manipulados)
##        State UrbanPop ViolentCrimes
## 1    Florida       80         382.3
## 2    Arizona       80         333.1
## 3 California       91         325.6
## 4     Nevada       81         310.2
## 5   New York       86         291.2
## 6   Illinois       83         283.4

Resultado (Passo 2.4): Este é o head da nossa tabela final, mostrando apenas o estado, a população urbana e a nova coluna de crimes violentos, de forma ordenada.

2. Tabela interativa

Abaixo está uma tabela interativa utilizando o pacote DT do conjunto de dados USArrests completo (com a coluna State adicionada). Você pode usar a caixa de busca (search), ordenar as colunas clicando nos cabeçalhos e paginar pelos resultados.

datatable(USArrests_df, 
          rownames = FALSE,
          options = list(
            pageLength = 5, 
            autoWidth = TRUE,
            language = list(search = "Buscar:", lengthMenu = "Mostrar _MENU_ entradas")
          ),
          caption = "Tabela interativa USArrests")

3. Equações LaTeX


1. Teorema de Bayes

O Teorema de Bayes descreve a probabilidade de um evento, baseando-se no conhecimento prévio de condições que podem estar relacionadas ao evento.

\[P(A|B) = \frac{P(B|A) \cdot P(A)}{P(B)}\]

  • \(P(A|B)\) é a probabilidade posterior (prob. de A dado B).
  • \(P(B|A)\) é a verossimilhança (prob. de B dado A).
  • \(P(A)\) é a probabilidade a priori de A.
  • \(P(B)\) é a probabilidade marginal de B.

2. Equação de campo de Einstein

Esta equação é o núcleo da teoria da relatividade geral de Einstein, descrevendo como a matéria e a energia (tensor de energia-momento, \(T_{\mu\nu}\)) curvam o espaço-tempo (tensor de Einstein, \(G_{\mu\nu}\)).

\[G_{\mu\nu} + \Lambda g_{\mu\nu} = \frac{8\pi G}{c^4} T_{\mu\nu}\]

  • \(G_{\mu\nu}\) é o tensor de Einstein (curvatura do espaço-tempo).
  • \(\Lambda\) é a constante cosmológica.
  • \(g_{\mu\nu}\) é o tensor métrico.
  • \(G\) é a constante gravitacional de Newton.
  • \(c\) é a velocidade da luz.
  • \(T_{\mu\nu}\) é o tensor de energia-momento.

3. Equação da regressão logística

A função sigmoid (ou logística) é usada na regressão logística para mapear qualquer valor real para o intervalo (0, 1), representando uma probabilidade.

\[\sigma(z) = \frac{1}{1 + e^{-z}}\]

Onde \(z\) (o log-odds) é tipicamente uma combinação linear das variáveis de entrada: \(z = \beta_0 + \beta_1 x_1 + \dots + \beta_n x_n\).


4. Fórmula de Black-Scholes

Uma equação diferencial parcial usada na matemática financeira para precificar opções europeias.

\[\frac{\partial V}{\partial t} + \frac{1}{2}\sigma^2 S^2 \frac{\partial^2 V}{\partial S^2} + r S \frac{\partial V}{\partial S} - rV = 0\]

  • \(V\) é o preço da opção.
  • \(S\) é o preço do ativo subjacente.
  • \(t\) é o tempo.
  • \(r\) é a taxa de juros livre de risco.
  • \(\sigma\) (sigma) é a volatilidade do ativo.

5. Transformada de Fourier discreta

A DFT converte uma sequência finita de amostras (no domínio do tempo) em uma sequência de mesma duração de amostras no domínio da frequência.

\[X_k = \sum_{n=0}^{N-1} x_n \cdot e^{-\frac{i 2\pi}{N} k n}\]

  • \(X_k\) é o \(k\)-ésimo componente de frequência.
  • \(x_n\) é a \(n\)-ésima amostra no domínio do tempo.
  • \(N\) é o número total de amostras.
  • \(i\) é a unidade imaginária.

4. Figuras

Duas imagens relevantes para a área de Ciência de Dados e Machine Learning.


Figura 1: Diagrama de uma Rede Neural Artificial

Esta imagem ilustra a arquitetura básica de uma rede neural, com camadas de entrada (Input), camadas ocultas (Hidden) e camada de saída (Output).

Diagrama de uma Rede Neural Artificial
Diagrama de uma Rede Neural Artificial


Figura 2: Arquitetura de uma pipeline da dados

Esta imagem ilustra um fluxo de dados padrão em engenharia de dados, conhecido como ETL (Extração, Transformação, Carregamento).

Arquitetura de uma pipeline ETL
Arquitetura de uma pipeline ETL

5. Referências

Abaixo está a lista de referências gerada a partir do arquivo referencias.bib.

Livro: (Wickham, Grolemund, et al. 2017)
Artigo: (Vaswani et al. 2017)
Artigo: (Lewis et al. 2020)
Livro: (Hunt 2014)
Artigo: (Khanam et al. 2021)

Hunt, Earl B. 2014. Artificial Intelligence. Academic Press.
Khanam, Zeba, BN Alwasel, H Sirafi, and Mamoon Rashid. 2021. “Fake News Detection Using Machine Learning Approaches.” In IOP Conference Series: Materials Science and Engineering, 1099:012040. 1. IOP Publishing.
Lewis, Patrick, Ethan Perez, Aleksandra Piktus, Fabio Petroni, Vladimir Karpukhin, Naman Goyal, Heinrich Küttler, et al. 2020. “Retrieval-Augmented Generation for Knowledge-Intensive Nlp Tasks.” Advances in Neural Information Processing Systems 33: 9459–74.
Vaswani, Ashish, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Łukasz Kaiser, and Illia Polosukhin. 2017. “Attention Is All You Need.” Advances in Neural Information Processing Systems 30.
Wickham, Hadley, Garrett Grolemund, et al. 2017. R for Data Science. Vol. 2. O’Reilly Sebastopol.