Nesta seção, será utilizado o conjunto de dados iris,
que já vem disponível no R. Esse conjunto contém informações sobre
flores de três espécies diferentes: setosa,
versicolor e virginica. As variáveis do
dataset representam medidas das sépalas e pétalas das flores.
O objetivo desta etapa é realizar uma manipulação simples dos dados, incluindo:
library(dplyr)
library(DT)
library(ggplot2)
O pacote dplyr será utilizado para manipulação dos
dados, o pacote DT será usado para criar uma tabela
interativa e o pacote ggplot2 será utilizado para gerar
visualizações gráficas.
dados <- iris
head(dados)
## 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
O código acima carrega o dataset iris em um objeto
chamado dados. A função head() mostra as seis
primeiras linhas do conjunto de dados, permitindo uma primeira
visualização da estrutura da tabela.
str(dados)
## 'data.frame': 150 obs. of 5 variables:
## $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
## $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
## $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
## $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
## $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
A função str() apresenta a estrutura do conjunto de
dados. Por meio dela, é possível observar os nomes das colunas, os tipos
de dados e alguns valores iniciais de cada variável.
O dataset possui as seguintes colunas:
Sepal.Length: comprimento da sépala;Sepal.Width: largura da sépala;Petal.Length: comprimento da pétala;Petal.Width: largura da pétala;Species: espécie da flor.dados_manipulados <- dados %>%
mutate(
Area.Petala = Petal.Length * Petal.Width
)
head(dados_manipulados)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species Area.Petala
## 1 5.1 3.5 1.4 0.2 setosa 0.28
## 2 4.9 3.0 1.4 0.2 setosa 0.28
## 3 4.7 3.2 1.3 0.2 setosa 0.26
## 4 4.6 3.1 1.5 0.2 setosa 0.30
## 5 5.0 3.6 1.4 0.2 setosa 0.28
## 6 5.4 3.9 1.7 0.4 setosa 0.68
Nesta etapa, foi criada a variável Area.Petala,
calculada pela multiplicação entre o comprimento da pétala e a largura
da pétala.
Essa variável não representa necessariamente a área exata da pétala na natureza, mas funciona como uma medida aproximada para comparar o tamanho das pétalas entre as espécies.
dados_filtrados <- dados_manipulados %>%
filter(Species == "virginica")
head(dados_filtrados)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species Area.Petala
## 1 6.3 3.3 6.0 2.5 virginica 15.00
## 2 5.8 2.7 5.1 1.9 virginica 9.69
## 3 7.1 3.0 5.9 2.1 virginica 12.39
## 4 6.3 2.9 5.6 1.8 virginica 10.08
## 5 6.5 3.0 5.8 2.2 virginica 12.76
## 6 7.6 3.0 6.6 2.1 virginica 13.86
Aqui foi realizada uma filtragem para manter apenas as observações da
espécie virginica. Com isso, é possível analisar uma
espécie específica separadamente.
A função filter() seleciona apenas as linhas que atendem
à condição definida.
dados_ordenados <- dados_filtrados %>%
arrange(desc(Area.Petala))
head(dados_ordenados)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species Area.Petala
## 1 7.7 2.6 6.9 2.3 virginica 15.87
## 2 7.2 3.6 6.1 2.5 virginica 15.25
## 3 6.3 3.3 6.0 2.5 virginica 15.00
## 4 7.7 3.8 6.7 2.2 virginica 14.74
## 5 6.7 3.3 5.7 2.5 virginica 14.25
## 6 7.7 3.0 6.1 2.3 virginica 14.03
Nesta etapa, os dados filtrados foram ordenados de forma decrescente
com base na variável Area.Petala.
Isso permite identificar rapidamente quais flores da espécie
virginica possuem as maiores medidas aproximadas de área da
pétala.
resumo_especies <- dados_manipulados %>%
group_by(Species) %>%
summarise(
Media_Comprimento_Petala = mean(Petal.Length),
Media_Largura_Petala = mean(Petal.Width),
Media_Area_Petala = mean(Area.Petala),
Quantidade = n()
)
resumo_especies
## # A tibble: 3 × 5
## Species Media_Comprimento_Petala Media_Largura_Petala Media_Area_Petala
## <fct> <dbl> <dbl> <dbl>
## 1 setosa 1.46 0.246 0.366
## 2 versicolor 4.26 1.33 5.72
## 3 virginica 5.55 2.03 11.3
## # ℹ 1 more variable: Quantidade <int>
O resumo estatístico agrupa os dados pela variável
Species e calcula a média do comprimento, da largura e da
área aproximada das pétalas. Também é calculada a quantidade de
observações por espécie.
Esse resultado ajuda a comparar as espécies de forma objetiva. Por exemplo, ao observar a média da área aproximada das pétalas, é possível perceber diferenças importantes entre os grupos.
Nesta seção, é apresentada uma tabela interativa criada com o pacote
DT. Essa tabela permite busca, ordenação e paginação,
facilitando a exploração dos dados.
datatable(
dados_manipulados,
caption = "Tabela interativa do conjunto de dados iris com variável Area.Petala",
filter = "top",
options = list(
pageLength = 10,
autoWidth = TRUE,
language = list(
search = "Buscar:",
lengthMenu = "Mostrar _MENU_ registros por página",
info = "Mostrando _START_ até _END_ de _TOTAL_ registros",
paginate = list(previous = "Anterior", `next` = "Próximo")
)
)
)
A tabela interativa permite que o usuário pesquise termos, ordene colunas e navegue entre páginas. Isso torna a apresentação dos dados mais dinâmica do que uma tabela estática.
Nesta seção, são apresentadas cinco equações importantes para estatística, aprendizado de máquina e ciência de dados.
\[ y_i = \beta_0 + \beta_1x_i + \varepsilon_i \]
Essa equação representa um modelo de regressão linear simples. Ela busca explicar uma variável dependente \(y_i\) a partir de uma variável independente \(x_i\). O termo \(\beta_0\) representa o intercepto, \(\beta_1\) representa o coeficiente angular e \(\varepsilon_i\) representa o erro do modelo.
\[ J(\theta) = \frac{1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)}) - y^{(i)})^2 \]
Essa equação representa uma função de custo muito usada em modelos de regressão. Ela mede o erro médio entre os valores previstos pelo modelo e os valores reais. Quanto menor o valor de \(J(\theta)\), melhor tende a ser o ajuste do modelo.
\[ P(A|B) = \frac{P(B|A)P(A)}{P(B)} \]
O Teorema de Bayes permite atualizar a probabilidade de um evento \(A\) acontecer dado que outro evento \(B\) foi observado. Ele é muito utilizado em estatística, aprendizado de máquina e modelos probabilísticos.
\[ H(X) = -\sum_{i=1}^{n}p(x_i)\log_2 p(x_i) \]
A entropia mede o grau de incerteza ou desordem de uma variável aleatória. Em ciência de dados, ela aparece em algoritmos como árvores de decisão, sendo usada para medir a impureza dos dados.
\[ \theta_j := \theta_j - \alpha \frac{\partial}{\partial \theta_j}J(\theta) \]
Essa equação representa a atualização dos parâmetros em um processo de otimização chamado gradiente descendente. O objetivo é ajustar os parâmetros \(\theta_j\) para reduzir a função de custo \(J(\theta)\). O termo \(\alpha\) representa a taxa de aprendizado.
Nesta seção, são apresentadas duas figuras criadas a partir do
conjunto de dados iris. As visualizações ajudam a
compreender padrões, comparações e relações entre variáveis.
ggplot(dados_manipulados, aes(x = Petal.Length, y = Petal.Width, color = Species)) +
geom_point(size = 3, alpha = 0.8) +
labs(
title = "Relação entre comprimento e largura das pétalas",
x = "Comprimento da pétala",
y = "Largura da pétala",
color = "Espécie"
) +
theme_minimal()
Relação entre comprimento e largura das pétalas por espécie.
A figura acima mostra uma relação visual entre comprimento e largura das pétalas. É possível observar que as espécies tendem a formar grupos distintos, o que demonstra como visualizações podem revelar padrões nos dados.
ggplot(dados_manipulados, aes(x = Species, y = Area.Petala, fill = Species)) +
geom_boxplot(alpha = 0.8) +
labs(
title = "Distribuição da área aproximada das pétalas por espécie",
x = "Espécie",
y = "Área aproximada da pétala"
) +
theme_minimal() +
theme(legend.position = "none")
Distribuição da área aproximada das pétalas por espécie.
O boxplot permite comparar a distribuição da área aproximada das pétalas entre as espécies. Esse tipo de gráfico é útil para identificar diferenças de tendência central, dispersão e possíveis valores extremos.
R Core Team. R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing. Disponível em: https://www.r-project.org/
Xie, Y.; Cheng, J.; Tan, X. DT: An R interface to the DataTables library. Disponível em: https://rstudio.github.io/DT/
Wickham, H.; Çetinkaya-Rundel, M.; Grolemund, G. R for Data Science (2e). O’Reilly Media. Disponível em: https://r4ds.hadley.nz/
Wickham, H.; Navarro, D.; Pedersen, T. L. ggplot2: Elegant Graphics for Data Analysis. Springer. Disponível em: https://ggplot2-book.org/
James, G.; Witten, D.; Hastie, T.; Tibshirani, R.; Taylor, J. An Introduction to Statistical Learning. Springer. Disponível em: https://www.statlearning.com/