Este relatório apresenta uma análise básica de um conjunto de dados simples, incluindo carregamento e manipulação, visualização em tabela interativa, apresentação de conceitos matemáticos relevantes usando LaTeX, figuras ilustrativas e referências bibliográficas.

Carregamento e Manipulação de Dados

Esta seção detalha o processo de carregamento de um conjunto de dados simples no R e a realização de manipulações básicas como filtragem, ordenação e criação de novas variáveis. Utilizaremos o conjunto de dados iris, que é nativo do R e contém medidas de sépalas e pétalas de três espécies de íris.

Primeiro, carregamos o conjunto de dados iris e visualizamos suas primeiras linhas e um resumo estatístico para entender sua estrutura e conteúdo.

# Carregar o conjunto de dados iris (já disponível no R)
data(iris)

# Visualizar as primeiras linhas do dataset
print("Primeiras 6 linhas do dataset iris:")
## [1] "Primeiras 6 linhas do dataset iris:"
head(iris)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa
# Visualizar um resumo estatístico do dataset
print("Resumo estatístico do dataset iris:")
## [1] "Resumo estatístico do dataset iris:"
summary(iris)
##   Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
##  Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
##  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
##  Median :5.800   Median :3.000   Median :4.350   Median :1.300  
##  Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
##  3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
##  Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
##        Species  
##  setosa    :50  
##  versicolor:50  
##  virginica :50  
##                 
##                 
## 

Explicação dos resultados:

  • head(iris) mostra as 6 primeiras linhas do dataframe. Vemos colunas para Sepal.Length, Sepal.Width, Petal.Length, Petal.Width (todas medidas em cm) e Species (a espécie da flor).
  • summary(iris) fornece estatísticas descritivas para cada coluna: mínimo, 1º quartil, mediana, média, 3º quartil e máximo para as variáveis numéricas, e contagens para cada nível da variável categórica Species. Isso nos dá uma ideia da distribuição dos dados.

Agora, realizaremos algumas manipulações nos dados usando o pacote dplyr, que oferece uma sintaxe mais legível para manipulação de dados.

Instalamos e carregamos o pacote dplyr (se ainda não estiver instalado).

# Instalar dplyr se necessário (comente ou remova esta linha após a primeira execução)
# install.packages("dplyr")

# Carregar o pacote dplyr
library(dplyr)

Manipulação 1: Filtragem

Vamos filtrar o conjunto de dados para incluir apenas as observações da espécie ‘setosa’.

# Filtrar dados para incluir apenas a espécie 'setosa'
setosa_data <- iris %>%
  filter(Species == "setosa")

print("Primeiras 6 linhas do dataset filtrado (apenas setosa):")
## [1] "Primeiras 6 linhas do dataset filtrado (apenas setosa):"
head(setosa_data)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa
print(paste("Número total de observações para 'setosa':", nrow(setosa_data)))
## [1] "Número total de observações para 'setosa': 50"

Explicação:

Utilizamos a função filter() do dplyr para selecionar linhas onde a coluna Species é igual a “setosa”. Como resultado, setosa_data é um novo dataframe contendo apenas as 50 observações correspondentes a esta espécie. O comando nrow() confirma que temos 50 linhas, como esperado, pois o dataset iris original possui 50 observações para cada espécie.

Manipulação 2: Ordenação

Vamos ordenar o dataset filtrado (setosa_data) com base no Sepal.Length em ordem crescente.

# Ordenar os dados filtrados por Sepal.Length em ordem crescente
sorted_setosa <- setosa_data %>%
  arrange(Sepal.Length)

print("Primeiras 6 linhas do dataset setosa ordenado por Sepal.Length:")
## [1] "Primeiras 6 linhas do dataset setosa ordenado por Sepal.Length:"
head(sorted_setosa)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          4.3         3.0          1.1         0.1  setosa
## 2          4.4         2.9          1.4         0.2  setosa
## 3          4.4         3.0          1.3         0.2  setosa
## 4          4.4         3.2          1.3         0.2  setosa
## 5          4.5         2.3          1.3         0.3  setosa
## 6          4.6         3.1          1.5         0.2  setosa

Explicação:

A função arrange() do dplyr é usada para reordenar as linhas do dataframe. Neste caso, ordenamos sorted_setosa pela coluna Sepal.Length, de forma que as linhas com os menores valores de Sepal.Length apareçam primeiro.

Manipulação 3: Criação de Nova Variável

Vamos adicionar uma nova coluna ao dataset original (iris) que representa a razão entre a largura e o comprimento da sépala (Sepal.Ratio).

# Criar uma nova variável 'Sepal.Ratio'
iris_mutated <- iris %>%
  mutate(Sepal.Ratio = Sepal.Width / Sepal.Length)

print("Primeiras 6 linhas do dataset original com a nova variável 'Sepal.Ratio':")
## [1] "Primeiras 6 linhas do dataset original com a nova variável 'Sepal.Ratio':"
head(iris_mutated)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species Sepal.Ratio
## 1          5.1         3.5          1.4         0.2  setosa   0.6862745
## 2          4.9         3.0          1.4         0.2  setosa   0.6122449
## 3          4.7         3.2          1.3         0.2  setosa   0.6808511
## 4          4.6         3.1          1.5         0.2  setosa   0.6739130
## 5          5.0         3.6          1.4         0.2  setosa   0.7200000
## 6          5.4         3.9          1.7         0.4  setosa   0.7222222

Explicação:

A função mutate() do dplyr permite adicionar novas colunas ou modificar colunas existentes. Aqui, criamos a coluna Sepal.Ratio dividindo os valores da coluna Sepal.Width pelos valores da coluna Sepal.Length para cada linha. A nova coluna é anexada ao dataframe iris_mutated.

Estas manipulações simples demonstram como preparar e transformar dados para análises posteriores. O dataset iris_mutated agora contém a informação original mais a nova variável derivada.


Conteúdo Adicional

Nesta seção, apresentaremos itens adicionais do relatório organizados em abas para melhor navegação: Tabela Interativa, Equações Matemáticas, Figuras e Referências Bibliográficas.

Tabela Interativa (DT)

Utilizamos o pacote DT para criar uma tabela interativa a partir do dataset iris_mutated (que inclui a nova coluna Sepal.Ratio). Esta tabela permite ordenação, busca e paginação.

# Instalar DT se necessário (comente ou remova esta linha após a primeira execução)
# install.packages("DT")

# Carregar o pacote DT
library(DT)

# Criar uma tabela interativa
datatable(iris_mutated,
          options = list(pageLength = 10), # 10 linhas por página
          caption = 'Tabela Interativa do Dataset iris_mutated')

Explicação:

A função datatable() do pacote DT transforma um dataframe R em uma tabela HTML interativa. Os recursos padrão incluem:

  • Paginação: A tabela é dividida em páginas (definimos 10 linhas por página com pageLength = 10).
  • Ordenação: Clique no cabeçalho de qualquer coluna para ordenar a tabela por essa coluna. Clique novamente para inverter a ordem.
  • Busca: Use a caixa de busca acima da tabela para filtrar as linhas com base no conteúdo de qualquer coluna.

Esta é uma maneira eficaz de apresentar grandes conjuntos de dados de forma acessível em relatórios HTML.

Equações Matemáticas (LaTeX)

Apresentamos cinco equações complexas relevantes em ciência de dados ou estatística, formatadas usando a sintaxe do LaTeX.

  1. Equação da Regressão Linear Simples:

    \[y_i = \beta_0 + \beta_1 x_i + \epsilon_i\]

    • Significado: Esta equação modela a relação linear entre uma variável dependente (\(y_i\)) e uma variável independente (\(x_i\)). \(\beta_0\) é o intercepto (valor de \(y\) quando \(x\) é zero), \(\beta_1\) é o coeficiente angular (mudança em \(y\) para uma unidade de mudança em \(x\)), e \(\epsilon_i\) é o termo de erro aleatório para a observação \(i\).
  2. Função de Custo de Erro Quadrático Médio (MSE - Mean Squared Error):

    \[MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2\]

    • Significado: O MSE é uma métrica comum para avaliar o desempenho de modelos de regressão. Ele mede a média dos quadrados das diferenças entre os valores observados (\(y_i\)) e os valores previstos pelo modelo (\(\hat{y}_i\)). Valores menores de MSE indicam um modelo melhor.
  3. Função Densidade de Probabilidade (FDP) da Distribuição Normal (Gaussiana):

    \[f(x | \mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}\]

    • Significado: Esta função descreve a forma da famosa curva em sino da distribuição normal. \(x\) é o valor da variável, \(\mu\) é a média (centro da distribuição), e \(\sigma^2\) é a variância (dispersão dos dados). É fundamental em estatística e modelagem probabilística.
  4. Teorema de Bayes:

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

    • Significado: O Teorema de Bayes relaciona a probabilidade condicional de dois eventos. \(P(A|B)\) é a probabilidade de A dado B (probabilidade a posteriori), \(P(B|A)\) é a probabilidade de B dado A (verossimilhança), \(P(A)\) é a probabilidade de A (probabilidade a priori), e \(P(B)\) é a probabilidade de B. É a base da inferência Bayesiana.
  5. Regra de Atualização do Gradiente Descendente:

    \[\mathbf{w}_{k+1} = \mathbf{w}_k - \eta \nabla J(\mathbf{w}_k)\]

    • Significado: Esta é a fórmula central para atualizar os pesos (\(\mathbf{w}\)) de um modelo iterativamente em algoritmos de otimização como o Gradiente Descendente. \(\mathbf{w}_k\) são os pesos na iteração \(k\), \(\eta\) é a taxa de aprendizado (tamanho do passo), e \(\nabla J(\mathbf{w}_k)\) é o gradiente da função de custo (\(J\)) em relação aos pesos na iteração \(k\). O objetivo é mover os pesos na direção que minimiza a função de custo.

Figuras Relacionadas à Ciência de Dados

Adicionamos duas figuras da internet relacionadas à ciência de dados.

  1. Diagrama de Venn da Ciência de Dados: Este diagrama, proposto por Drew Conway, representa a interseção de três áreas essenciais para a ciência de dados: habilidades de programação (hacking skills), conhecimento em matemática e estatística, e expertise no domínio específico. A sobreposição dessas áreas define o campo da ciência de dados

    Imagem_1
    \[Imagem_1\]
  2. Ciclo de Vida da Ciência de Dados: Esta imagem ilustra as etapas típicas de um projeto de ciência de dados, incluindo: compreensão do negócio, compreensão dos dados, preparação dos dados, modelagem, avaliação e implantação. O diagrama enfatiza a natureza iterativa do processo, permitindo revisões e melhorias contínuas

    Imagem_2
    \[Imagem_2\]

Referências Bibliográficas

Lista de cinco referências bibliográficas relevantes na área de ciência de dados, aprendizado de máquina ou estatística.

  1. James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An Introduction to Statistical Learning: with Applications in R. Springer.

    • Descrição: Um livro introdutório clássico sobre aprendizado estatístico, cobrindo diversos modelos e técnicas com exemplos práticos em R.
  2. Han, J., Kamber, M., & Pei, J. (2011). Data Mining: Concepts and Techniques. 3rd ed. Morgan Kaufmann.

    • Descrição: Um livro texto abrangente sobre mineração de dados, abordando conceitos, técnicas e algoritmos fundamentais.
  3. Wickham, H., François, R., Hester, J., & Robinson, D. (2024). dplyr: A Grammar of Data Manipulation. R package version 1.1.4. Disponível em: https://dplyr.tidyverse.org/

    • Descrição: A documentação e referência principal para o pacote dplyr, essencial para manipulação de dados em R de forma eficiente e legível.
  4. Breiman, L. (2001). Statistical modeling: The two cultures. Statistical Science, 16(3), 199-231.

    • Descrição: Um artigo seminal que discute as diferentes abordagens para modelagem estatística (modelos baseados em dados versus modelos baseados em processos geradores de dados).
  5. Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.

    • Descrição: Um livro texto profundo e abrangente sobre aprendizado profundo (deep learning), cobrindo teoria e aplicações de redes neurais.
  6. Medium. (s.d.). Diagrama de Análise de Dados. Disponível em: https://miro.medium.com/v2/resize:fit:720/format:webp/1*5idRzGKu2OU8J_VCiu4FkQ.png. Acesso em: 11 maio 2025.

  7. CIÊNCIA E DADOS. O Processo de Data Science. 2022. Disponível em: https://www.cienciaedados.com/o-processo-de-data-science/. Acesso em: 11 maio 2025.


Este relatório demonstra as capacidades de R Markdown para combinar código R, texto formatado, equações matemáticas, tabelas interativas e figuras em um único documento dinâmico e bem organizado em abas.