# Criando um vetor de dados
dados <- c(12, 15, 18, 22, 25, 28, 30, 35, 40, 42)
# Calculando a média
media <- mean(dados)
media
[1] 26.7
[1] 26.7
Análise e Exploratória de Dados
IFMG - Campus Formiga
2 de junho de 2025
O que vimos até hoje?
Aula 1 ✅
Aula 2 ✅
Metodologia CRISP-DM ✅
Tipos de Análise ✅
Configurações: Git/GitHub ✅
Aula 3 ✅
Introdução ao RStudio ✅
Aula 4 ✅
Introdução ao Git e GitHub ✅
Aula 5 ✅
Breve Revisão do IDE RStudio ✅
Introdução ao Sistema de Publicação Quarto ✅
Sessão Prática Guiada com Relatório 1 ✅
Aula 6 ✅
Parte I ✅
Parte II ✅
Aula 7 ✅
Introdução ao sistema Quarto (continuação) ✅
Introdução à Linguagem R (continuação) ✅
Aula 8 ✅
Início do estudo do pacote dplyr para manipulação de dados ✅
Aula 9 ✅
Aula 10 ✅
Aula 11 ✅
Aula 12 ✅
Aula 13 ✅
Aula 14 ✅
Aula 15 ✅
Aula 16 ✅
Aula 17 ✅
Características da Distribuição de uma VA ✅
Aula 18 ✅
Características da Distribuição de uma VA ✅
Tópicos
Teoria da Probabilidade e Análise Estatística de Dados
CRISP-DM e Análise Exploratória de Dados
Análise Exploratória Numérica
Instruções
Abra o RStudio e o seu Projeto da Disciplina
Crie a subpasta 11-relatorio dentro da pasta relatorios.
Acesse o site da disciplina e baixe o arquivo 11-relatorio.zip
Descompacte o arquivo, copie/recorte o arquivo 11-relatorio.qmd
e cole dentro da subpasta 11-relatorio.
Diretrizes para Aulas Mais Produtivas
🔊 Mantenha conversas em volume baixo
⌨️ Código com método:
95% dos erros são evitáveis com:
🤝 Inteligência colaborativa:
💪 Capacidade de Resolver Problemas
Cada erro resolvido é uma evolução da sua habilidade analítica
A Conexão Fundamental
O Problema: Fenômenos do mundo real são aleatórios e incertos
A Solução: Modelos probabilísticos que capturam essa variabilidade
O Caminho:
A AED é a ponte entre dados reais e modelos teóricos!
Insights da AED
Fases da Metodologia CRISP-DM
Contexto na Disciplina
Até agora, vocês já trabalharam com:
Neste módulo: Vamos nos aprofundar nas Fases 2 e 4, usando AED para:
Definição
A Análise Exploratória de Dados (AED) é uma abordagem para analisar conjuntos de dados com o objetivo de resumir suas características principais, frequentemente usando métodos visuais e estatísticos.
Filosofia da AED:
Pioneiro: John Tukey (1977) - “Exploratory Data Analysis”
Por que fazer AED?
CRISP-DM Fase 2: Entendimento dos Dados
CRISP-DM Fase 4: Modelagem/Análise
Como a AED se Aplica
Fase 2: Entendimento dos Dados
glimpse()
, summary()
, gráficos exploratóriosFase 4: Modelagem - Análise Descritiva
Diretrizes
A Análise Exploratória de Dados (AED) não é um processo formal com um conjunto estrito de regras.
Durante as fases iniciais da AED, devemos nos sentir livres para investigar quaisquer ideias que surjam.
Algumas ideias irão gerar frutos, outras serão descartadas.
Na medida em que a exploração continua, devemos nos focar em algumas questões e áreas mais relevantes e produtivas.
O que veremos neste módulo?
Por que Estudamos Probabilidade? ✅
Conexão CRISP-DM ↔︎ AED ✅
Tipos de AED:
Prática com R:
Aplicações:
O que são Medidas de Posição?
As medidas de posição, também conhecidas como medidas de tendência central, fornecem um ponto central em torno do qual os dados de uma distribuição são agrupados.
Elas ajudam a entender o valor “típico” ou “central” de um conjunto de dados. As principais medidas de posição incluem:
Média amostral
Quantis:
O que é a Média Amostral?
A média amostral é uma medida de posição que representa o valor médio dos dados.
Estimador:
\[ \bar{x} = \frac{\sum_{i=1}^{n} x_i }{n} \]
O que são Quantis?
Um quantil é um valor em uma série de dados em ordem crescente abaixo do qual uma determinada porcentagem de dados reside.
por exemplo, um quantil de 50% (também chamado de mediana) é o ponto em que 50% dos valores ficam abaixo desse valor, e 50% acima.
Os quantis mais comuns sào os:
quartis;
decis, e;
percentis.
O que são Quartis?
Quartis dividem os dados ordenados em quatro partes iguais.
Primeiro Quartil (Q1): 25% dos dados são menores ou iguais a esse valor e 75% dos dados são maiores.
Segundo Quartil (Q2), também conhecido como mediana: 50% dos dados são menores ou iguais a esse valor e 50% são maiores.
Terceiro Quartil (Q3): 75% dos dados são menores ou iguais a esse valor e 25% são maiores.
O que são Decis?
Decis dividem os dados ordenados em dez partes iguais.
Cada decil indica um percentual específico de dados que é menor ou igual a esse valor.
Por exemplo, O primeiro decil, denotado como D1, representa o valor abaixo do qual se encontram os 10% mais baixos de todos os dados num conjunto ordenado. Isso significa que, ao observar o conjunto de dados do menor para o maior, o valor correspondente ao D1 é tal que 10% dos valores são inferiores ou iguais a ele, enquanto os 90% restantes são superiores, e assim por diante.
O que são Percentis?
Percentis dividem os dados ordenados em cem partes iguais.
Cada percentil representa um percentual específico da distribuição dos dados.
Por exemplo, o 25º percentil representa o valor abaixo do qual se encontram os 25% menores de todos os dados em um conjunto ordenado. Isso significa que, ao observar o conjunto de dados do menor para o maior, o valor correspondente ao p25 é tal que 25% dos valores são inferiores ou iguais a ele, enquanto os 75% restantes são superiores, e assim por diante.
Exemplos de cálculo de quantis em R
[1] 26.5
25% 50% 75%
19.00 26.50 33.75
10% 20% 30% 40% 50% 60% 70% 80% 90%
14.7 17.4 20.8 23.8 26.5 28.8 31.5 36.0 40.2
5% 25% 50% 75% 95%
13.35 19.00 26.50 33.75 41.10
Observação: O segundo quartil (Q2) é igual à mediana.
O que é Moda?
O valor ou valores mais frequentes em um conjunto de dados.
Um conjunto de dados pode ser unimodal (uma moda), bimodal (duas modas), ou multimodal (várias modas).
O que é uma função em R?
Sintaxe para criar uma função:
Componentes:
nome_funcao
: identificador da funçãofunction
: palavra-chave para criaçãoargumentos
: entradas da função (separadas por vírgulas)corpo
: operações realizadasreturn
: valor devolvido (opcional)Implementando uma função para calcular a moda:
Uso da função:
Desmontando a função calcular_moda()
:
calcula_moda <- function(x) {
# Passo 1: Cria uma tabela de frequências
tab <- table(x)
# Exemplo: para x = c(3,5,5,7,7,7,9)
# tab fica:
# 3 5 7 9
# 1 2 3 1
# Passo 2: Identifica as modas
moda <- as.numeric(names(tab)[tab == max(tab)])
# Detalhamento:
# a) max(tab) → 3 (maior frequência)
# b) tab == max(tab) → FALSE FALSE TRUE FALSE (quais posições têm freq máxima)
# c) names(tab) → c("3","5","7","9") (valores originais como texto)
# d) [...] → filtra apenas os nomes onde tab == max(tab) ("7")
# e) as.numeric() → converte texto para número (7)
return(moda)
}
Fluxo de Execução:
table(x)
conta a frequência de cada valormax(tab)
encontra a maior frequênciatab == max(tab)
cria um vetor lógico indicando quais valores têm frequência máximanames(tab)[...]
extrai os nomes dos elementos com frequência máximaas.numeric()
converte o resultado final para numéricoRecomendações para criar funções:
calcular_media()
é melhor que f()
if(!is.numeric(x)) stop("Erro")
)Cálculo e Interpretação de Medidas de Posição
Considere o seguinte conjunto de dados que representa as idades de clientes em uma loja:
Discussão: O que as medidas de posição revelam sobre a distribuição das idades?
Resposta
[1] 41.235294
[1] 40
25% 50% 75%
32 40 50
10% 30% 40% 80% 90%
26.8 34.4 36.8 51.6 57.0
[1] 28
Interpretação:
A média (41.23529412) e mediana (40) são próximas, sugerindo distribuição simétrica
O primeiro quartil (32) indica que 25% dos clientes têm até esta idade
O percentil 90 (57) indica que 90% dos clientes têm até esta idade
moda = 28 (idade mais frequente entre os clientes)
O que é Variância?
A variância (\(s^2\)) mede o quão dispersos os valores de um conjunto de dados estão em relação à média.
\[ s^2 = \frac{1}{n-1}\sum_{i=1}^{n}(x_i - \bar{x})^2 \] sendo \(\sigma^2\) a variância, \(x_i\) os valores observados, \(\bar{x}\) é a média amostral dos dado e \(n\) é o número total de observações.
Cálculo da variância com var()
O que é Desvio-Padrão?
O desvio-padrão (\(s\)) é a raiz quadrada da variância, fornecendo uma medida de dispersão em unidades originais dos dados.
\[ s = \sqrt{\frac{1}{n-1}\sum_{i=1}^{n}(x_i - \bar{x})^2} \]
Cálculo com sd()
O que é Amplitude?
\[ amplitude = máximo - mínimo \]
Como depende apenas dos valores extremos do conjunto de dados, a amplitude é altamente sensível a outliers.
A amplitude não leva em conta como os dados estão distribuídos entre os valores extremos. Por essa razão, ela pode não ser uma medida adequada da variabilidade total do conjunto de dados, especialmente em distribuições com valores extremos ou outliers.
O que é o Intervalo Interquartil (IQR)?
O IQR é a diferença entre o terceiro quartil (Q3) e o primeiro quartil (Q1), indicando a dispersão da metade central dos dados.
\[ IQR = Q3 - Q1 \]
Cálculo com IQR()
O que é o Coeficiente de Variação (CV)?
O coeficiente de variação (CV) é uma medida estatística que descreve a proporção do desvio-padrão em relação à média.
É utilizado para comparar a variabilidade entre distribuições com médias diferentes, tornando-se uma ferramenta valiosa para avaliar a consistência de dados.
Por ser uma medida relativa, permite comparações entre conjuntos de dados que possuem unidades de medida ou escalas distintas.
O coeficiente de variação é calculado pela fórmula:
\[ CV = \left( \frac{s}{\bar{x}} \right) \times 100\% \]
sendo:
Aplicação:
Um CV baixo indica que os dados estão relativamente próximos da média, sugerindo menor dispersão.
Um CV alto indica que os dados estão mais dispersos em relação à média, sugerindo maior variabilidade.
É particularmente útil em pesquisas científicas, financeiras e de mercado, para comparar a variabilidade de diferentes variáveis.
Implementando uma função para CV
cv <- function(x, na.rm = FALSE) {
# 1. tratamento de valores ausentes (NAs)
if(na.rm) x <- x[!is.na(x)]
# 2. Verifica se o vetor está vazio
# após a remoção de NAs
if(length(x) == 0) return(NA)
# 3. Cálculo do desvio padrão:
desvio <- sd(x, na.rm = na.rm)
# 4. Cálculo da média:
media <- mean(x, na.rm = na.rm)
# 5. Cálculo final do CV:
(desvio / media) * 100
}
# Exemplo de uso com dados contendo NA
dados_com_na <- c(dados, NA)
# Retorna NA (comportamento conservador)
cv(dados_com_na)
[1] NA
[1] 38.400423
Nota sobre na.rm = FALSE
: Seguimos o padrão do R para forçar tratamento explícito de valores ausentes. Use na.rm = TRUE
quando apropriado para seu contexto.
Interpretação: CV de 38.4% indica a variabilidade relativa à média.
Código Comentado
cv <- function(x, na.rm = FALSE) {
# COMANDO 1: TRATAMENTO DE VALORES AUSENTES (NAs)
# ------------------------------------------------------------
# Este comando faz duas coisas importantes:
# 1. Verifica se o parâmetro na.rm está TRUE (usuário quer remover NAs)
# 2. Se sim, filtra o vetor x mantendo apenas valores não-NA
#
# Como funciona:
# - !is.na(x) cria um vetor lógico (TRUE/FALSE) indicando valores não-NA
# - x[!is.na(x)] usa esse vetor para filtrar apenas os valores TRUE
# - O resultado é atribuído de volta a x, substituindo o vetor original
#
# Exemplo:
# Se x = c(1, 2, NA, 4) e na.rm = TRUE:
# !is.na(x) → c(TRUE, TRUE, FALSE, TRUE)
# x[!is.na(x)] → c(1, 2, 4)
if(na.rm) x <- x[!is.na(x)]
# COMANDO 2: VERIFICAÇÃO DE VETOR VAZIO
# ------------------------------------------------------------
# Este comando previne erros quando:
# - O vetor original já estava vazio, OU
# - Todos os valores eram NA e na.rm = TRUE
#
# Por que é importante:
# - sd() e mean() dariam erro com vetores vazios
# - Melhor retornar NA (valor ausente) que causar erro na função
#
# length(x) conta quantos elementos tem no vetor:
# - Se for 0, a condição é TRUE e retorna NA
# - Se for >0, continua o cálculo normalmente
if(length(x) == 0) return(NA)
# 3. Cálculo do desvio padrão:
desvio <- sd(x, na.rm = na.rm)
# 4. Cálculo da média:
media <- mean(x, na.rm = na.rm)
# 5. Cálculo final do CV:
(desvio / media) * 100
}
Análise da Variabilidade
Uma empresa de tecnologia está analisando o desempenho (em R$ mil) de duas equipes de vendas em 2023:
Calcule para cada equipe:
Compare os resultados e responda:
Contexto: A Equipe B utiliza uma nova metodologia de vendas
Resultados
# cria df para exibir resultados
data.frame(
Medida = c("Variância", "Desvio-Padrão", "Amplitude", "IQR", "CV"),
Valor = c(round(var(equipe_A), 2),
round(sd(equipe_A), 2),
diff(range(equipe_A)),
IQR(equipe_A),
paste0(round(cv(equipe_A), 2), "%"))
)
Medida Valor
1 Variância 2440.67
2 Desvio-Padrão 49.4
3 Amplitude 172
4 IQR 16
5 CV 43.72%
# cria df para exibir resultados
data.frame(
Medida = c("Variância", "Desvio-Padrão", "Amplitude", "IQR", "CV"),
Valor = c(round(var(equipe_B), 2),
round(sd(equipe_B), 2),
diff(range(equipe_B)),
IQR(equipe_B),
paste0(round(cv(equipe_B), 2), "%"))
)
Medida Valor
1 Variância 21.96
2 Desvio-Padrão 4.69
3 Amplitude 15
4 IQR 5.75
5 CV 3.87%
Análise Gerencial:
Consistência: Equipe B tem menor CV (3.87% vs 43.72%), indicando maior estabilidade no desempenho.
Impacto do Outlier: Afeta fortemente a variância, o desvio-padrão,
a amplitude e o cv, tornando essas medidas menos representativas.
Métrica Recomendada: IQR, por ser robusta a valores extremos.
Tomada de Decisão: A nova metodologia (Equipe B) produz resultados mais previsíveis.
Por que estudar correlação?
No mundo dos negócios, raramente as variáveis operam isoladamente:
Questões fundamentais:
A análise de correlação nos ajuda a quantificar e entender estas relações, sendo fundamental para:
O que são Covariância e Correlação?
A covariância mede a relação linear entre duas variáveis, indicando
a direção da relação linear entre duas variáveis.
A correlação é uma medida padronizada da covariância, variando de -1 a 1, e indica a direção e a força da relação linear entre duas variáveis.
Ambas são usadas para entender como duas variáveis covariam
Estimador da covariância
\[ s_{xy} = \frac{1}{n-1}\sum_{i=1}^{n}(x_i - \bar{x})(y_i - \bar{y}) \]
\[ r_{xy} = \frac{s_{xy}}{s_x s_y} = \frac{\sum_{i=1}^{n}(x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum_{i=1}^{n}(x_i - \bar{x})^2 \sum_{i=1}^{n}(y_i - \bar{y})^2}} \]
Sendo:
Análise de Performance
Uma empresa de consultoria deseja entender a relação entre diferentes métricas de performance de seus consultores. Os dados abaixo representam 12 consultores selecionados aleatoriamente:
# Dados reais de uma empresa de consultoria
dados_consultoria <- data.frame(
consultor = 1:12,
horas_treinamento = c(20, 35, 15, 40, 25, 10, 30, 45, 18, 28, 38, 22),
satisfacao_cliente = c(7.2, 8.5, 6.8, 9.1, 7.8, 6.2, 8.2, 9.3, 7.0, 8.0, 8.8, 7.5),
faturamento_mensal = c(45, 68, 38, 85, 52, 32, 62, 92, 42, 58, 75, 48)
)
# Exibir primeiras linhas
head(dados_consultoria, 5)
consultor horas_treinamento satisfacao_cliente faturamento_mensal
1 1 20 7.2 45
2 2 35 8.5 68
3 3 15 6.8 38
4 4 40 9.1 85
5 5 25 7.8 52
Tarefas:
Crie uma matriz de gráficos de dispersão (scatterplot matrix) para visualizar todas as relações simultaneamente.
Calcule e interprete a matriz de correlação completa.
Identifique qual relação é mais forte e discuta as implicações gerenciais.
A empresa planeja investir R$ 50.000 em treinamento. Com base na análise, este investimento se justifica? Explique.
Reflexão crítica: Se encontrarmos alta correlação entre treinamento e faturamento, podemos afirmar que treinar mais causará maior faturamento? Justifique.
1. Visualização das Relações
# Matriz de gráficos de dispersão
pairs(dados_consultoria[, -1],
main = "Matriz de Dispersão - Métricas de Performance",
pch = 19,
col = "darkblue",
cex = 1.2)
# Correlação entre horas de treinamento e faturamento
cor_treinamento_faturamento <- cor(dados_consultoria$horas_treinamento,
dados_consultoria$faturamento_mensal)
# exibir correlação
cor_treinamento_faturamento
[1] 0.99069893
# Correlação entre horas de treinamento e satisfação do cliente
cor_treinamento_satisfacao <- cor(dados_consultoria$horas_treinamento,
dados_consultoria$satisfacao_cliente)
# exibir correlação
cor_treinamento_satisfacao
[1] 0.99536216
Interpretação:
Ambas as correlações são positivas e fortes:
0.991 entre horas de treinamento e faturamento mensal
0.995 entre horas de treinamento e satisfação do cliente
Correlação muito forte e positiva: consultores com mais horas de treinamento tendem a gerar maior faturamento
A satisfação do cliente também está positivamente correlacionada com ambas as métricas
4. Decisão de Investimento
Com base na correlação de 0.991:
5. Reflexão sobre Causalidade
ATENÇÃO: Correlação ≠ Causalidade!
Possíveis explicações alternativas:
Seleção: Consultores mais motivados buscam mais treinamento E trabalham mais
Confundimento: Consultores seniores têm acesso a mais treinamento E clientes maiores
Causalidade reversa: Alto faturamento permite investir em mais treinamento
Conclusão: Para estabelecer causalidade, seria necessário um experimento controlado ou análise mais sofisticada.
Análise Exploratória de Dados
Instruções
Prof. Washington Silva - Introdução à Ciência de Dados