Introdução

Este relatório apresenta uma análise de dados utilizando R Markdown, demonstrando manipulação de dados, visualizações interativas, equações matemáticas e referências bibliográficas relevantes para ciência de dados.

1. Manipulação de Dados

1.1 Carregamento dos Dados

Nesta seção, vamos trabalhar com o conjunto de dados mtcars, que contém informações sobre 32 modelos de automóveis extraídos da revista Motor Trend de 1974.

# Carregando o conjunto de dados mtcars
dados <- mtcars

# Visualizando as primeiras linhas
head(dados)
##                    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
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
# Estrutura dos dados
str(dados)
## '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 ...
# Resumo estatístico
summary(dados)
##       mpg             cyl             disp             hp       
##  Min.   :10.40   Min.   :4.000   Min.   : 71.1   Min.   : 52.0  
##  1st Qu.:15.43   1st Qu.:4.000   1st Qu.:120.8   1st Qu.: 96.5  
##  Median :19.20   Median :6.000   Median :196.3   Median :123.0  
##  Mean   :20.09   Mean   :6.188   Mean   :230.7   Mean   :146.7  
##  3rd Qu.:22.80   3rd Qu.:8.000   3rd Qu.:326.0   3rd Qu.:180.0  
##  Max.   :33.90   Max.   :8.000   Max.   :472.0   Max.   :335.0  
##       drat             wt             qsec             vs        
##  Min.   :2.760   Min.   :1.513   Min.   :14.50   Min.   :0.0000  
##  1st Qu.:3.080   1st Qu.:2.581   1st Qu.:16.89   1st Qu.:0.0000  
##  Median :3.695   Median :3.325   Median :17.71   Median :0.0000  
##  Mean   :3.597   Mean   :3.217   Mean   :17.85   Mean   :0.4375  
##  3rd Qu.:3.920   3rd Qu.:3.610   3rd Qu.:18.90   3rd Qu.:1.0000  
##  Max.   :4.930   Max.   :5.424   Max.   :22.90   Max.   :1.0000  
##        am              gear            carb      
##  Min.   :0.0000   Min.   :3.000   Min.   :1.000  
##  1st Qu.:0.0000   1st Qu.:3.000   1st Qu.:2.000  
##  Median :0.0000   Median :4.000   Median :2.000  
##  Mean   :0.4062   Mean   :3.688   Mean   :2.812  
##  3rd Qu.:1.0000   3rd Qu.:4.000   3rd Qu.:4.000  
##  Max.   :1.0000   Max.   :5.000   Max.   :8.000

Explicação dos Resultados:

O conjunto de dados mtcars possui 32 observações e 11 variáveis, incluindo:

  • mpg: Milhas por galão (consumo de combustível)
  • cyl: Número de cilindros
  • disp: Deslocamento do motor (polegadas cúbicas)
  • hp: Potência (cavalos)
  • wt: Peso do veículo (1000 lbs)
  • Entre outras variáveis relacionadas ao desempenho automotivo

1.2 Manipulação e Transformação

Agora vamos realizar diversas operações de manipulação nos dados:

# 1. Criando novas variáveis
dados_transformados <- dados %>%
  mutate(
    # Converter peso de 1000 lbs para kg
    peso_kg = wt * 453.592,
    # Classificar eficiência de combustível
    eficiencia = case_when(
      mpg >= 25 ~ "Alta",
      mpg >= 20 ~ "Média",
      TRUE ~ "Baixa"
    ),
    # Potência por tonelada
    potencia_peso = hp / wt,
    # Nome do modelo (do rownames)
    modelo = rownames(dados)
  )

# Visualizando as novas variáveis
head(dados_transformados[, c("modelo", "mpg", "peso_kg", "eficiencia", "potencia_peso")])
##                              modelo  mpg  peso_kg eficiencia potencia_peso
## Mazda RX4                 Mazda RX4 21.0 1188.411      Média      41.98473
## Mazda RX4 Wag         Mazda RX4 Wag 21.0 1304.077      Média      38.26087
## Datsun 710               Datsun 710 22.8 1052.333      Média      40.08621
## Hornet 4 Drive       Hornet 4 Drive 21.4 1458.298      Média      34.21462
## Hornet Sportabout Hornet Sportabout 18.7 1560.356      Baixa      50.87209
## Valiant                     Valiant 18.1 1569.428      Baixa      30.34682

Explicação:

Criamos três novas variáveis:

  1. peso_kg: Conversão do peso de 1000 libras para quilogramas
  2. eficiencia: Classificação categórica da eficiência de combustível
  3. potencia_peso: Razão entre potência e peso, indicando desempenho relativo
# 2. Filtrando dados
# Carros com mais de 6 cilindros e consumo acima de 20 mpg
carros_eficientes <- dados_transformados %>%
  filter(cyl > 6, mpg > 20) %>%
  select(modelo, mpg, cyl, hp, wt)

print("Carros eficientes com mais de 6 cilindros:")
## [1] "Carros eficientes com mais de 6 cilindros:"
carros_eficientes
## [1] modelo mpg    cyl    hp     wt    
## <0 linhas> (ou row.names de comprimento 0)

Explicação:

Filtramos os veículos que possuem mais de 6 cilindros e consumo superior a 20 milhas por galão, identificando modelos que combinam potência com eficiência.

# 3. Ordenação dos dados
# Top 10 carros mais potentes
top_potentes <- dados_transformados %>%
  arrange(desc(hp)) %>%
  select(modelo, hp, mpg, cyl) %>%
  head(10)

print("Top 10 carros mais potentes:")
## [1] "Top 10 carros mais potentes:"
top_potentes
##                                  modelo  hp  mpg cyl
## Maserati Bora             Maserati Bora 335 15.0   8
## Ford Pantera L           Ford Pantera L 264 15.8   8
## Duster 360                   Duster 360 245 14.3   8
## Camaro Z28                   Camaro Z28 245 13.3   8
## Chrysler Imperial     Chrysler Imperial 230 14.7   8
## Lincoln Continental Lincoln Continental 215 10.4   8
## Cadillac Fleetwood   Cadillac Fleetwood 205 10.4   8
## Merc 450SE                   Merc 450SE 180 16.4   8
## Merc 450SL                   Merc 450SL 180 17.3   8
## Merc 450SLC                 Merc 450SLC 180 15.2   8

Explicação:

Ordenamos os veículos por potência (hp) em ordem decrescente para identificar os 10 modelos mais potentes da amostra.

# 4. Agregação por grupos
resumo_cilindros <- dados_transformados %>%
  group_by(cyl) %>%
  summarise(
    n_carros = n(),
    mpg_medio = mean(mpg),
    hp_media = mean(hp),
    peso_medio = mean(peso_kg)
  ) %>%
  arrange(desc(cyl))

print("Resumo por número de cilindros:")
## [1] "Resumo por número de cilindros:"
resumo_cilindros
## # A tibble: 3 × 5
##     cyl n_carros mpg_medio hp_media peso_medio
##   <dbl>    <int>     <dbl>    <dbl>      <dbl>
## 1     8       14      15.1    209.       1814.
## 2     6        7      19.7    122.       1414.
## 3     4       11      26.7     82.6      1037.

Explicação:

Agrupamos os dados por número de cilindros e calculamos estatísticas descritivas para cada grupo, revelando que:

  • Carros com mais cilindros tendem a ter menor eficiência (mpg)
  • A potência aumenta com o número de cilindros
  • Veículos com mais cilindros são geralmente mais pesados

1.3 Visualização dos Dados

# Gráfico de dispersão: Consumo vs Potência
ggplot(dados_transformados, aes(x = hp, y = mpg, color = factor(cyl), size = wt)) +
  geom_point(alpha = 0.7) +
  labs(
    title = "Relação entre Potência e Consumo de Combustível",
    x = "Potência (hp)",
    y = "Consumo (mpg)",
    color = "Cilindros",
    size = "Peso (1000 lbs)"
  ) +
  theme_minimal() +
  theme(legend.position = "right")

Explicação do Gráfico:

O gráfico demonstra uma relação inversa entre potência e eficiência de combustível. Veículos mais potentes (maior hp) tendem a ter menor consumo em milhas por galão. A cor indica o número de cilindros e o tamanho dos pontos representa o peso do veículo.

2. Tabela Interativa com DT

Utilizando o pacote DT, criamos uma tabela interativa com funcionalidades de busca, ordenação e paginação:

# Preparando dados para tabela interativa
dados_tabela <- dados_transformados %>%
  select(modelo, mpg, cyl, hp, peso_kg, eficiencia, potencia_peso) %>%
  mutate(
    mpg = round(mpg, 1),
    peso_kg = round(peso_kg, 1),
    potencia_peso = round(potencia_peso, 2)
  )

# Criando tabela interativa
datatable(
  dados_tabela,
  colnames = c(
    "Modelo", "Consumo (mpg)", "Cilindros", "Potência (hp)", 
    "Peso (kg)", "Eficiência", "Potência/Peso"
  ),
  caption = "Tabela 1: Dados Completos dos Veículos com Funcionalidades Interativas",
  filter = "top",
  options = list(
    pageLength = 10,
    lengthMenu = c(5, 10, 15, 32),
    searching = TRUE,
    ordering = TRUE,
    autoWidth = TRUE,
    columnDefs = list(
      list(className = 'dt-center', targets = 1:6)
    )
  ),
  rownames = FALSE
) %>%
  formatStyle(
    'eficiencia',
    backgroundColor = styleEqual(
      c('Alta', 'Média', 'Baixa'),
      c('#90EE90', '#FFD700', '#FFB6C6')
    )
  )

A tabela acima permite:

  • Busca: Digite na caixa de busca para filtrar os dados
  • Ordenação: Clique nos cabeçalhos das colunas para ordenar
  • Paginação: Navegue entre as páginas usando os controles na parte inferior
  • Filtros: Use os filtros no topo de cada coluna para refinar a visualização

3. Equações Matemáticas

Equação 1: Regressão Linear Múltipla

\[Y = \beta_0 + \beta_1X_1 + \beta_2X_2 + \cdots + \beta_pX_p + \epsilon\]

Significado: A regressão linear múltipla modela a relação entre uma variável dependente \(Y\) e múltiplas variáveis independentes \(X_1, X_2, \ldots, X_p\). Os coeficientes \(\beta_i\) representam o efeito de cada variável preditora, \(\beta_0\) é o intercepto e \(\epsilon\) é o termo de erro (James et al. 2013).

Equação 2: Entropia de Shannon

\[H(X) = -\sum_{i=1}^{n} P(x_i) \log_2 P(x_i)\]

Significado: A entropia de Shannon mede a incerteza ou quantidade de informação em uma variável aleatória \(X\). É fundamental em teoria da informação e amplamente utilizada em algoritmos de aprendizado de máquina, especialmente em árvores de decisão (Shannon 1948).

Equação 3: Função de Custo - Regressão Logística

\[J(\theta) = -\frac{1}{m}\sum_{i=1}^{m}\left[y^{(i)}\log(h_\theta(x^{(i)})) + (1-y^{(i)})\log(1-h_\theta(x^{(i)}))\right]\]

Significado: Esta é a função de custo (log-loss) utilizada na regressão logística, onde \(h_\theta(x)\) é a hipótese (predição), \(y\) é o valor real, e \(m\) é o número de exemplos de treinamento. O objetivo é minimizar esta função para otimizar os parâmetros \(\theta\) (Ng 2012).

Equação 4: Distância Euclidiana

\[d(p,q) = \sqrt{\sum_{i=1}^{n}(q_i - p_i)^2} = \sqrt{(q_1-p_1)^2 + (q_2-p_2)^2 + \cdots + (q_n-p_n)^2}\]

Significado: A distância euclidiana calcula a distância em linha reta entre dois pontos \(p\) e \(q\) em um espaço n-dimensional. É amplamente utilizada em algoritmos de clustering (como K-means) e classificação (como K-NN) (Hastie, Tibshirani, and Friedman 2009).

Equação 5: Teorema de Bayes

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

Significado: O Teorema de Bayes descreve a probabilidade de um evento \(A\) ocorrer dado que \(B\) ocorreu, baseado no conhecimento prévio de \(P(A)\) (probabilidade a priori), \(P(B|A)\) (verossimilhança) e \(P(B)\) (evidência). É a base dos classificadores Naive Bayes e inferência bayesiana (Murphy 2012).

4. Figuras sobre Ciência de Dados

Figura 1: Workflow de Ciência de Dados

Figura 1: Ciclo de vida típico de um projeto de ciência de dados, desde a coleta de dados até a implementação de modelos.
Figura 1: Ciclo de vida típico de um projeto de ciência de dados, desde a coleta de dados até a implementação de modelos.

Descrição: Esta figura ilustra o fluxo de trabalho completo em ciência de dados, mostrando as etapas de coleta de dados, processamento de dados, exploração de dados, comunicação de resultados e feedback.

Figura 2: Processo de Machine Learning

Figura 2: Pipeline típico de Machine Learning mostrando as etapas de preparação, treinamento e avaliação de modelos.
Figura 2: Pipeline típico de Machine Learning mostrando as etapas de preparação, treinamento e avaliação de modelos.

Descrição: Esta figura representa pipeline de machine learning.

5. Referências Bibliográficas

As referências estão listadas ao final do documento no formato BibTeX padrão. Para citar no texto, utilizamos a sintaxe [@chave]. Por exemplo, segundo Wickham and Grolemund (2016), a visualização de dados é fundamental para análise exploratória.

Hastie, Trevor, Robert Tibshirani, and Jerome Friedman. 2009. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. 2nd ed. New York: Springer Science & Business Media.
James, Gareth, Daniela Witten, Trevor Hastie, and Robert Tibshirani. 2013. An Introduction to Statistical Learning: With Applications in r. New York: Springer Science & Business Media.
Murphy, Kevin P. 2012. Machine Learning: A Probabilistic Perspective. Cambridge, MA: MIT Press.
Ng, Andrew. 2012. “Machine Learning Course.” Stanford University; Coursera. 2012. https://www.coursera.org/learn/machine-learning.
Shannon, Claude E. 1948. “A Mathematical Theory of Communication.” Bell System Technical Journal 27 (3): 379–423.
Wickham, Hadley, and Garrett Grolemund. 2016. R for Data Science: Import, Tidy, Transform, Visualize, and Model Data. Sebastopol, CA: O’Reilly Media, Inc.