A mediana é uma medida de tendência central que divide um conjunto de dados ordenados em duas partes iguais. Em outras palavras, é o valor que está exatamente no meio de um conjunto de dados quando organizados em ordem crescente ou decrescente.
O que é a Mediana?
A mediana é o valor que separa a metade superior da metade inferior de uma amostra de dados. Diferentemente da média, ela não é afetada por valores extremamente altos ou baixos, tornando-se particularmente útil em distribuições assimétricas ou na presença de outliers.
Como Calcular a Mediana
Método Passo a Passo
- Ordene os dados em ordem crescente
- Conte o número de observações (n)
- Se n for ímpar:
- A mediana é o valor na posição (n + 1)/2
- Se n for par:
- A mediana é a média dos valores nas posições n/2 e (n/2) + 1
Exemplos Numéricos
Número Ímpar de Observações
Dados: 23, 45, 12, 34, 29 (idades de um grupo)
- Ordenado: 12, 23, 29, 34, 45
- n = 5 (ímpar)
- Posição da mediana = (5 + 1)/2 = 3ª posição
- Mediana = 29 anos
Número Par de Observações
Dados: 7.5, 6.0, 8.5, 5.5 (notas de alunos)
- Ordenado: 5.5, 6.0, 7.5, 8.5
- n = 4 (par)
- Posições centrais: 2ª (6.0) e 3ª (7.5)
- Mediana = (6.0 + 7.5) / 2 = 6.75
Calculando a Mediana em Julia
Julia oferece maneiras eficientes de calcular a mediana através do pacote Statistics
. Vamos ver alguns exemplos práticos:
Instalação do Pacote (se necessário)
using Pkg
Pkg.add("Statistics")
Exemplo Básico
using Statistics
# Dados de exemplo
idades = [23, 45, 12, 34, 29]
notas = [7.5, 6.0, 8.5, 5.5]
# Calculando a mediana
mediana_idades = median(idades) # 29.0
mediana_notas = median(notas) # 6.75
println("Mediana das idades: ", mediana_idades)
println("Mediana das notas: ", mediana_notas)
Trabalhando com Dados Faltantes (Missing Values)
using Statistics
# Dados com valores faltantes
dados = [12.5, 15.8, missing, 14.2, 13.7, missing, 16.1]
# Calculando a mediana ignorando valores faltantes
mediana = median(skipmissing(dados)) # 14.95
println("Mediana (ignorando faltantes): ", mediana)
Mediana por Grupo em um DataFrame
using DataFrames, Statistics
# Criando um DataFrame de exemplo
df = DataFrame(
departamento = ["Vendas", "TI", "RH", "Vendas", "TI", "RH", "Vendas"],
salario = [4500, 6500, 3800, 5200, 7000, 4000, 4800]
)
# Calculando a mediana salarial por departamento
medianas_por_depto = combine(
groupby(df, :departamento),
:salario => median => :mediana_salarial
)
println(medianas_por_depto)
Vantagens da Mediana
- Robustez a Valores Extremos
- Não é afetada por valores atípicos (outliers)
- Exemplo: No conjunto [1, 2, 3, 4, 100], a média é 22, mas a mediana é 3
- Melhor Representação em Dados Assimétricos
- Em distribuições com assimetria, a mediana representa melhor o valor típico
- Exemplo: Renda familiar, preços de imóveis
- Aplicável a Dados Ordinais
- Pode ser usada com dados ordinais (não requer escala intervalar como a média)
- Exemplo: Classificações de satisfação (ruim, regular, bom, excelente)
- Estabilidade
- Menos sensível a flutuações amostrais do que a média
- Mais representativa em amostras pequenas com valores extremos
Aplicações Práticas
1. Análise Salarial
A mediana salarial é frequentemente usada em relatórios de RH para evitar distorções causadas por salários extremamente altos de executivos.
2. Mercado Imobiliário
O preço mediano de casas é mais representativo do que a média em mercados com grande variação de preços.
3. Análise de Desempenho
Em métricas de desempenho (tempo de resposta, carregamento), a mediana ajuda a entender o comportamento típico, ignorando picos atípicos.
4. Dados Ambientais
Na análise de poluição ou qualidade do ar, onde valores extremos são comuns, a mediana fornece uma visão mais estável das condições típicas.
Mediana vs Média: Quando Usar Cada Uma
Característica | Média | Mediana |
---|---|---|
Influência de valores extremos | Alta | Nula |
Melhor para dados simétricos | ✓ | ✓ |
Melhor para dados assimétricos | ✗ | ✓ |
Requer escala intervalar | Sim | Não |
Sensível a outliers | Sim | Não |
Cálculo | Soma/quantidade | Ordenação |
Uso típico | Dados simétricos, sem outliers | Dados assimétricos, com outliers |
Implementação Manual em Julia
Para entender melhor como a mediana funciona, vejamos uma implementação manual:
function calcular_mediana(vetor)
# Faz uma cópia para não modificar o vetor original
dados = copy(vetor)
sort!(dados) # Ordena os dados
n = length(dados)
if isodd(n)
# Se ímpar, retorna o elemento do meio
return dados[(n + 1) ÷ 2]
else
# Se par, retorna a média dos dois elementos do meio
meio = n ÷ 2
return (dados[meio] + dados[meio + 1]) / 2
end
end
# Testando a função
println("Mediana manual (ímpar): ", calcular_mediana([1, 3, 3, 6, 7, 8, 9])) # 6
println("Mediana manual (par): ", calcular_mediana([1, 2, 3, 4, 5, 6, 8, 9])) # 4.5
Conclusão
A mediana é uma medida robusta e essencial na análise estatística, especialmente quando lidamos com dados assimétricos ou na presença de valores atípicos. Seu cálculo simples e interpretação direta a tornam uma ferramenta valiosa para qualquer profissional que trabalhe com análise de dados.
Em Julia, o cálculo da mediana é facilitado pela função median()
do pacote Statistics
, que lida eficientemente com diferentes tipos de dados e estruturas, incluindo DataFrames e vetores com valores faltantes.
Lembre-se: enquanto a média nos fala sobre o “centro de gravidade” dos dados, a mediana nos mostra o “ponto médio” que divide os dados ao meio, sendo menos sensível a valores extremos.
“A estatística é a ciência de aprender com os dados, e a mediana é uma de suas lições mais valiosas sobre como encontrar o centro em meio à variação.”