Tema 12: Pipeline de Ciência de Dados

2026-07-25

Introdução ao Pipeline de Ciência de Dados

O pipeline de Ciência de Dados é o processo estruturado que transforma dados brutos em inteligência e tomada de decisão.

As 5 etapas do Pipeline:

  1. Coleta
  2. Limpeza (Data Cleaning)
  3. Exploração (EDA)
  4. Modelagem
  5. Comunicação

Demonstração Prática do Pipeline

# Carregando o pacote tidyverse
library(tidyverse)

# ETAPA 1: COLETA (Importando a base nativa 'Iris')
dados <- iris

# Olhando as 6 primeiras linhas dos dados
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

Etapa 2: Limpeza e Tratamento de Dados

Nesta etapa, aplicamos o operador pipe (’|>’) para remover registros duplicados e tratar os tipos de variáveis.

# ETAPA 2: LIMPEZA E TRATAMENTO
dados_limpos <- dados |>
  distinct() |> # 1. Remove linhas 100% duplicadas
  drop_na() |> # 2. Remove linhas com valores nulos (NA)
  mutate(Species = as.factor(Species)) # 3. Converte a coluna "Species" em fator (variável categórica)

# Verificando a estrutura interna dos dados limpos
str(dados_limpos)
## 'data.frame':	149 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 ...

ETAPA 3: Análise Exploratória de Dados (EDA)

Nesta etapa, exploramos o comportamento das variáveis por espécie através de resumos estatísticos e visualizações com o ggplot2.

3.1 Resumo Estatístico por espécie

# Calculando a média e o desvio padrão do comprimento da pétala p/ cada espécie
resumo_especies <- dados_limpos |>
  group_by(Species) |>
  summarise(
    quantidade = n(),
    media_petala = mean(Petal.Length),
    sd_petala = sd(Petal.Length),
    media_sepala = mean(Sepal.Length)
    )

# Exibindo a tabela formatada no R markdown
knitr::kable(resumo_especies, col.names= c("Espécie", "Qtd", "Média Pétala", "Desvio Padrão Pétala", "Média Sépala"))
Espécie Qtd Média Pétala Desvio Padrão Pétala Média Sépala
setosa 50 1.462000 0.1736640 5.006000
versicolor 50 4.260000 0.4699110 5.936000
virginica 49 5.561224 0.5537058 6.604082

3.2 Visualização Gráfica

# Gráfico de Dispersão: Relação entre Sépala e Pétala por Espécie
ggplot(dados_limpos, aes(x = Sepal.Length, y = Petal.Length, color = Species)) + 
  geom_point(size = 3, alpha = 0.8) + 
  labs(
    title = "Relaçao entre comprimento de Sépala e Pétala",
    subtitle = "Diferenciação clara entre as espécies da base Iris",
    x = "Comprimento da Sépala (cm)",
    y = "Comprimento da Pétala (cm)",
    color = "Espécie"
  ) +
  theme_minimal()

plot of chunk unnamed-chunk-4

Etapa 4: Modelagem de Dados

Nesta etapa, construímos um modelo preditivo de Regressão Linear para analisar a relação entre o comprimento da sépala (variável explicativa) e o comprimento da pétala (variável resposta).

# ETAPA 4: MODELAGEM DE DADOS
# Criando o modelo de regressão linear: Pental.Length em função de Sepal.Length
modelo <- lm(Petal.Length ~ Sepal.Length, data = dados_limpos)

# Exibindo o resumo estatístico do modelo
summary(modelo)
## 
## Call:
## lm(formula = Petal.Length ~ Sepal.Length, data = dados_limpos)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.46789 -0.58066 -0.01284  0.60391  2.50524 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -7.11454    0.50378  -14.12   <2e-16 ***
## Sepal.Length  1.85904    0.08536   21.78   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8628 on 147 degrees of freedom
## Multiple R-squared:  0.7634,	Adjusted R-squared:  0.7618 
## F-statistic: 474.3 on 1 and 147 DF,  p-value: < 2.2e-16

4.1 Visualização do Modelo Ajustado

# Guardando o modelo na variável 'resumo'
resumo <- summary(modelo)
# Extraindo o R² e o p-valor diretamente dos resultados do modelo
r2_valor <- round(resumo$r.squared, 3)
p_valor <- format.pval(resumo$coefficients[2,4], digits = 2, eps = 0.001)

# Texto dinâmico
texto_metrica <- paste0("R² = ", r2_valor, "\np-value ", p_valor)

# Gráfico com a linha de tendência (reta de regressão)
ggplot(dados_limpos, aes(x = Sepal.Length, y = Petal.Length))+
  geom_point(aes(color = Species), size = 3, alpha = 0.8)+
  geom_smooth(method = "lm", color = "black", se = TRUE)+
  annotate("text", x = 4.5, y = 6.5,
            label = texto_metrica,
            color = "black", fontface = "bold", size = 4.5, hjust = 0)+
  labs(
    title = "Modelo de Regressão Linear: Pétala vs Sépala",
    subtitle = "Linha de tendência mostrando a correlação positiva",
    x = "Comprimento da Sépala (cm)",
    y = "Comprimento da Pétala (cm)",
    color = "Espécie"
  )+
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

plot of chunk unnamed-chunk-6

Etapa 5: Comunicação dos Resultados e Conclusão

Com base no pipeline de ciência de dados executado sobre a base iris, foi possível extrair os seguintes insights:

  1. Qualidade dos Dados: A limpeza eliminou 1 registro duplicado da espécie virginica, garantindo a integridade da análise com 149 amostras válidas.
  2. Padrão por Espécie: A espécie setosa apresenta características morfológicas claramente distintas (pétalas significativamente menores), enquanto versicolor e virginica possuem uma progressão linear mais próxima.
  3. Poder Preditivo: O modelo de regressão linear apresentou um \(R²\) de \(0,763\), demonstrando que \(76,3%\\) do comprimento da pétala pode ser previsto unicamente a partir do comprimento da sépala.

Conclusão

O pipeline demonstrou com sucesso todas as fases de um ciclo de ciência de dados (Coleta, Limpeza, Análise Exploratória e Modelagem) de forma reprodutível através do R Markdown