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.
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.
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.
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:
pageLength = 10).Esta é uma maneira eficaz de apresentar grandes conjuntos de dados de forma acessível em relatórios HTML.
Apresentamos cinco equações complexas relevantes em ciência de dados ou estatística, formatadas usando a sintaxe do LaTeX.
Equação da Regressão Linear Simples:
\[y_i = \beta_0 + \beta_1 x_i + \epsilon_i\]
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\]
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}}\]
Teorema de Bayes:
\[P(A|B) = \frac{P(B|A) P(A)}{P(B)}\]
Regra de Atualização do Gradiente Descendente:
\[\mathbf{w}_{k+1} = \mathbf{w}_k - \eta \nabla J(\mathbf{w}_k)\]
Adicionamos duas figuras da internet relacionadas à ciência de dados.
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
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
Lista de cinco referências bibliográficas relevantes na área de ciência de dados, aprendizado de máquina ou estatística.
James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An Introduction to Statistical Learning: with Applications in R. Springer.
Han, J., Kamber, M., & Pei, J. (2011). Data Mining: Concepts and Techniques. 3rd ed. Morgan Kaufmann.
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/
dplyr, essencial para manipulação de dados em R de
forma eficiente e legível.Breiman, L. (2001). Statistical modeling: The two cultures. Statistical Science, 16(3), 199-231.
Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.
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.
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.