Fase 3 — Visualização e comunicação | Pré-requisitos: Aulas 0 a 18 | Tipo: projeto final | Duração estimada: 5 a 7 horas


Introdução

O produto final é um Jupyter Notebook que funciona como um relatório analítico completo: análise exploratória documentada, visualizações explicativas refinadas, narrativa coerente e conclusões honestas sobre as limitações. Quem ler o notebook sem ter participado da análise deve conseguir entender o que foi descoberto, por que importa e o que os dados não permitem concluir.


O que o projeto pede

O projeto tem quatro entregáveis dentro de um único notebook.

O primeiro é a escolha e justificativa do dataset: por que este dataset, que perguntas ele permite responder, e quais são as limitações conhecidas antes mesmo de começar.

O segundo é a análise exploratória completa: inspeção inicial, wrangling necessário, exploração univariada e bivariada documentadas, com pelo menos uma análise multivariada. Esta seção é o trabalho de bastidores — não precisa ser polida, mas precisa ser rigorosa.

O terceiro é o conjunto de visualizações explicativas: quatro a seis gráficos refinados com todos os elementos de uma visualização publicável — título conclusivo, rótulos com unidades, anotações, hierarquia visual, estilo consistente. Cada gráfico deve estar acompanhado de um parágrafo de texto explicando o que mostra e por que é relevante para as perguntas da análise.

O quarto é a seção de conclusões e limitações: respostas às perguntas formuladas no início com dados específicos, e uma discussão honesta do que os dados não permitem concluir.


Escolhendo o dataset

Para o projeto final, o dataset deve ser suficientemente rico para suportar análise multivariada — pelo menos quatro ou cinco variáveis relevantes, pelo menos mil linhas, e pelo menos uma variável temporal ou geográfica que permita análises de tendência ou distribuição espacial.

Se você já fez os Projetos 1 e 2, pode continuar trabalhando com os dados que coletou no Projeto 2 — você já conhece sua estrutura, já fez o wrangling, e pode focar na análise e comunicação. Esta é a opção recomendada porque aproveita o trabalho já feito e aprofunda o conhecimento do domínio.

Se preferir um dataset novo, as sugestões abaixo são adequadas para o nível de profundidade esperado.

Dataset 1 — ENEM microdados (INEP): dados de desempenho por estudante com variáveis socioeconômicas, tipo de escola e localização. Permite análises de desigualdade educacional com múltiplas dimensões. Use nrows=100000 para uma amostra gerenciável.

Dataset 2 — Olist Brazilian E-Commerce (Kaggle): pedidos, produtos, avaliações e vendedores de um marketplace real. Permite análises de satisfação, logística e comportamento de compra.

Dataset 3 — Campeonato Brasileiro de Futebol (Kaggle): resultados históricos desde 2006 com estatísticas de partidas. Permite análises de desempenho de times, padrões sazonais e vantagem de jogar em casa.

Dataset 4 — Portal da Transparência (transparencia.gov.br): dados de gastos públicos federais. Permite análises de distribuição de recursos por estado, ministério e tipo de despesa.

Dataset 5 — Dados de COVID-19 por município (brasil.io): série histórica de casos e óbitos. Permite análises temporais e geográficas com variáveis de contexto socioeconômico do IBGE.


Estrutura do notebook

Seção 1: contexto e perguntas

# [Título do projeto — deve comunicar o tema da análise]

## Contexto
[2-3 parágrafos descrevendo o dataset, sua origem, o período coberto,
e por que este tema é relevante. Escreva para alguém que nunca viu
os dados. Termine com uma frase sobre o que a análise vai responder.]

## Perguntas analíticas
1. [Pergunta específica, respondível com os dados, com relevância clara]
2. [Segunda pergunta]
3. [Terceira pergunta — pode ser multivariada: "A relação entre X e Y
   é diferente para diferentes valores de Z?"]

## Dataset
- **Fonte:** [origem, URL se aplicável]
- **Período:** [cobertura temporal]
- **Tamanho:** [linhas × colunas após wrangling]
- **Variáveis principais:** [lista das variáveis mais importantes]

Seção 2: imports e carregamento

# ============================================================
# IMPORTS E CONFIGURAÇÃO
# ============================================================
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import seaborn as sns
from scipy import stats

# Estilo consistente para todas as visualizações
sns.set_theme(style='ticks')
plt.rcParams.update({
    'figure.dpi': 120,
    'axes.spines.top': False,
    'axes.spines.right': False,
    'axes.grid': True,
    'axes.grid.axis': 'y',
    'grid.alpha': 0.3,
    'grid.linewidth': 0.4,
    'font.size': 11
})

# Sistema de cores consistente para todo o projeto
CORES = {
    'primaria': '#2166AC',
    'destaque': '#D73027',
    'sucesso': '#4DAC26',
    'neutra': '#AAAAAA',
    'sequencial': 'Blues',
    'divergente': 'RdBu_r'
}
# ============================================================
# CARREGAMENTO DOS DADOS
# ============================================================
df = pd.read_csv('dados.csv', encoding='utf-8')
print(f"Carregado: {df.shape[0]:,} linhas × {df.shape[1]} colunas")
df.head()

Seção 3: wrangling

Esta seção deve ser concisa. Você já aprendeu wrangling nas aulas 8 a 13. Para este projeto, documente apenas as decisões mais importantes — não precisa repetir todo o processo de avaliação detalhado do Projeto 2. Um parágrafo por decisão relevante é suficiente.

# ============================================================
# WRANGLING
# ============================================================

# Registro de problemas identificados e decisões tomadas:
# 1. [problema] → [decisão]
# 2. [problema] → [decisão]

df_limpo = df.copy()

# Corrigir tipos
df_limpo['data'] = pd.to_datetime(df_limpo['data'])
df_limpo['valor'] = pd.to_numeric(df_limpo['valor'], errors='coerce')

# Tratar ausentes
print(f"Ausentes antes: {df_limpo.isnull().sum().sum()}")
df_limpo = df_limpo.dropna(subset=['valor', 'data'])
df_limpo['categoria'] = df_limpo['categoria'].fillna('Sem categoria')
print(f"Ausentes após limpeza: {df_limpo.isnull().sum().sum()}")

# Remover duplicatas
antes = len(df_limpo)
df_limpo = df_limpo.drop_duplicates()
print(f"Duplicatas removidas: {antes - len(df_limpo)}")

# Validação
print(f"\nDataset final: {df_limpo.shape[0]:,} linhas × {df_limpo.shape[1]} colunas")

Seção 4: análise exploratória

Esta é a seção mais longa. Organize em subseções por pergunta analítica ou por tipo de variável. Misture código, output e células markdown de interpretação.

# ============================================================
# ANÁLISE EXPLORATÓRIA — PERGUNTA 1
# ============================================================
# [Escreva aqui em markdown o que você está investigando]
# Estatísticas descritivas das variáveis principais
df_limpo.describe().round(2)
# Exploração univariada das variáveis principais
fig, axes = plt.subplots(1, 3, figsize=(15, 4))

# Histograma da variável dependente principal
sns.histplot(data=df_limpo, x='valor', bins=40, ax=axes[0],
             color=CORES['primaria'], edgecolor='white', linewidth=0.4)
axes[0].set_title('Distribuição de valores')

# Distribuição da variável categórica principal
contagem = df_limpo['categoria'].value_counts()
axes[1].barh(contagem.index, contagem.values,
             color=CORES['primaria'], edgecolor='white')
axes[1].set_title('Distribuição por categoria')

# Série temporal
serie = df_limpo.groupby('data')['valor'].sum() / 1000
axes[2].plot(serie.index, serie.values, color=CORES['primaria'], linewidth=1.5)
axes[2].set_title('Evolução temporal')
axes[2].set_ylabel('R$ mil')

plt.tight_layout()
plt.show()

Após cada bloco de exploração, adicione uma célula markdown com os achados:

### Achados da exploração univariada
- A variável `valor` tem distribuição assimétrica à direita com mediana
  de R$ 180 e média de R$ 340 — indicando presença de transações de
  alto valor que puxam a média.
- A categoria 'Eletrônicos' representa 34% das transações mas apenas
  apareceu a partir de março de 2023.
- A série temporal mostra crescimento consistente com sazonalidade
  clara em novembro (Black Friday).

Seção 5: visualizações explicativas

Esta é a seção central do projeto. Para cada gráfico explicativo:

Primeiro, escreva em markdown o que o gráfico vai mostrar e qual das suas perguntas ele responde. Segundo, produza o gráfico com todos os elementos de qualidade. Terceiro, escreva um parágrafo de interpretação após o gráfico.

# ============================================================
# VISUALIZAÇÃO 1 — [descreva o que mostra]
# Responde à Pergunta [número]: [repita a pergunta]
# ============================================================

Aqui está um exemplo completo de uma visualização explicativa bem executada:

# VISUALIZAÇÃO 1 — Evolução de vendas com destaque para sazonalidade
# Responde à Pergunta 1: Como as vendas evoluíram ao longo do período?

vendas_mensais = (df_limpo
    .groupby(pd.Grouper(key='data', freq='ME'))['valor']
    .sum()
    .reset_index()
    .rename(columns={'valor': 'total'})
)
vendas_mensais['total_k'] = vendas_mensais['total'] / 1000

# Calcular crescimento ano a ano
total_ano = df_limpo.groupby(df_limpo['data'].dt.year)['valor'].sum()
crescimento_yoy = (total_ano.iloc[-1] / total_ano.iloc[0] - 1) * 100

fig, ax = plt.subplots(figsize=(13, 5))

# Linha principal
ax.plot(vendas_mensais['data'], vendas_mensais['total_k'],
        color=CORES['primaria'], linewidth=2.5, zorder=3)
ax.fill_between(vendas_mensais['data'], vendas_mensais['total_k'],
                alpha=0.08, color=CORES['primaria'])

# Destaque dos picos de novembro
novembros = vendas_mensais[vendas_mensais['data'].dt.month == 11]
ax.scatter(novembros['data'], novembros['total_k'],
           color=CORES['destaque'], s=80, zorder=5)
for _, row in novembros.iterrows():
    ax.annotate(
        f"Black Friday\nR$ {row['total_k']:.0f}k",
        xy=(row['data'], row['total_k']),
        xytext=(row['data'] - pd.DateOffset(months=3),
                row['total_k'] + 20),
        arrowprops=dict(arrowstyle='->', color=CORES['destaque']),
        fontsize=8, color=CORES['destaque']
    )

# Linha de tendência
x_num = np.arange(len(vendas_mensais))
slope, intercept, r, *_ = stats.linregress(x_num, vendas_mensais['total_k'])
ax.plot(vendas_mensais['data'],
        slope * x_num + intercept,
        color='gray', linewidth=1, linestyle='--', alpha=0.6,
        label=f'Tendência (r = {r:.2f})')

# Divisores de ano
for ano in vendas_mensais['data'].dt.year.unique()[1:]:
    divisor = pd.Timestamp(f'{ano}-01-01')
    ax.axvline(divisor, color='gray', linestyle=':',
               linewidth=0.8, alpha=0.5)
    ax.text(divisor + pd.DateOffset(days=8),
            vendas_mensais['total_k'].min() - 8,
            str(ano), fontsize=8, color='gray')

# Título conclusivo
ax.set_title(
    f'Vendas cresceram {crescimento_yoy:.0f}% no período, '
    f'com picos expressivos na Black Friday',
    fontsize=12, loc='left', pad=15
)
ax.set_ylabel('Vendas (R$ mil)', fontsize=10, color='#555555')
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.grid(axis='y', alpha=0.3, linewidth=0.4)
ax.grid(axis='x', visible=False)
ax.legend(fontsize=9, framealpha=0)
ax.xaxis.set_major_formatter(
    plt.matplotlib.dates.DateFormatter('%b\n%Y')
)

fig.text(0.99, 0.01, 'Fonte: [sua fonte aqui]',
         ha='right', fontsize=8, color='#AAAAAA')

plt.tight_layout()
plt.show()

Após o gráfico, o parágrafo de interpretação:

As vendas cresceram consistentemente ao longo do período, com crescimento
total de X% entre o primeiro e último mês analisado. A tendência linear
(r = 0.85) confirma o crescimento sistemático, não apenas flutuações
aleatórias. Os dois picos em novembro — amplamente maiores que qualquer
outro mês — correspondem às campanhas de Black Friday e respondem por
aproximadamente 18% do faturamento anual em cada ano. Excluindo os meses
de novembro, o crescimento mensal médio foi de Y%, sugerindo que a base
de clientes e o ticket médio crescem independentemente dos eventos
sazonais.

Seção 6: conclusões e limitações

## Conclusões

### Resposta à Pergunta 1
[Resposta específica com dados quantitativos. "As vendas cresceram X%"
em vez de "as vendas cresceram muito".]

### Resposta à Pergunta 2
[Idem para a segunda pergunta.]

### Resposta à Pergunta 3
[Idem para a terceira pergunta.]

## Limitações

### O que os dados não permitem concluir
[Liste explicitamente as conclusões que parecem razoáveis mas que os
dados não sustentam. Por exemplo: "A correlação entre tempo de entrega
e satisfação não permite concluir que reduzir o prazo de entrega vai
aumentar a satisfação — outros fatores podem explicar a relação."]

### Vieses conhecidos
[Quem está sobre ou sub-representado nos dados? Qual período pode
ser atípico? Que variáveis importantes estão ausentes?]

### Próximos passos
[O que você faria se tivesse mais dados, mais tempo, ou dados de outras
fontes? Que perguntas a análise levantou que não conseguiu responder?]

Critérios de qualidade

Este projeto é avaliado em quatro dimensões.

Dimensão 1: rigor analítico

As perguntas foram formuladas antes da análise? As decisões de wrangling estão documentadas? Os achados exploratórios foram documentados em texto, não apenas em código? As visualizações exploratórias precedem as explicativas?

Dimensão 2: qualidade das visualizações

Cada visualização explicativa tem título conclusivo, rótulos com unidades, anotações nos pontos importantes e estilo consistente? O gráfico pode ser compreendido em cinco segundos sem contexto adicional? A hierarquia visual direciona a atenção para o elemento mais importante? As cores e estilos são consistentes entre os quatro a seis gráficos?

Dimensão 3: qualidade da narrativa

Há uma história coerente do início ao fim? As seções de exploração levam naturalmente às visualizações explicativas? As visualizações explicativas suportam as conclusões? As conclusões respondem as perguntas formuladas no início com dados específicos?

Dimensão 4: honestidade intelectual

As limitações são discutidas explicitamente? A distinção entre correlação e causalidade é respeitada? Grupos sub-representados são mencionados? As conclusões são proporcionais à evidência — nem exageradas nem subvalorizadas?


Checklist final

Antes de considerar o projeto concluído, passe por cada item:

O notebook executa sem erros com Kernel → Restart & Run All? Obrigatório.

As três perguntas analíticas estão formuladas no início, antes de qualquer análise? Obrigatório.

Há pelo menos quatro visualizações explicativas com título conclusivo, rótulos e anotações? Obrigatório.

Cada visualização está acompanhada de um parágrafo de interpretação? Obrigatório.

As conclusões respondem as três perguntas com números específicos? Obrigatório.

As limitações e vieses são discutidos honestamente? Obrigatório.

O estilo visual é consistente entre todos os gráficos do projeto? Fortemente recomendado.

Os dados brutos foram salvos separadamente dos dados processados? Fortemente recomendado.

O notebook está organizado em seções claramente marcadas com markdown? Fortemente recomendado.


O que torna um projeto excelente versus adequado

Um projeto adequado executa sem erros, tem visualizações tecnicamente corretas e responde as perguntas com dados. Isso é o mínimo esperado de um analista de dados.

Um projeto excelente tem duas qualidades adicionais que não aparecem num checklist.

A primeira é especificidade analítica. Conclusões vagas como "a satisfação melhorou no período" são adequadas. Conclusões específicas como "a satisfação subiu de 3.4 para 4.1 entre janeiro e dezembro, com a maior melhora em agosto após a redução do prazo de entrega de 12 para 7 dias" são excelentes. A especificidade mostra que a análise foi feita com atenção e que as conclusões têm suporte quantitativo preciso.

A segunda é honestidade calibrada. Um projeto adequado evita afirmar causalidade onde há apenas correlação. Um projeto excelente vai além: identifica ativamente os pontos fracos da própria análise, propõe o que seria necessário para responder melhor as perguntas, e distingue o que foi descoberto do que foi assumido. Isso é integridade analítica — a qualidade mais difícil de ensinar e a mais valiosa no mercado.


Resumo do projeto e do curso

O Projeto 3 é o produto final de um percurso de 19 aulas e mais de 40 horas de estudo. Ele pede que você demonstre não apenas que sabe usar as ferramentas, mas que desenvolveu o julgamento analítico para usá-las com propósito.

Ao completar este projeto, você terá demonstrado capacidade de formular perguntas analíticas relevantes, coletar e combinar dados de múltiplas fontes, avaliar e limpar dados de forma programática e documentada, explorar dados univariados, bivariados e multivariados com as ferramentas corretas, transformar análises exploratórias em comunicações explicativas polidas, e ser honesto sobre o que os dados permitem e não permitem concluir.

Essas são as habilidades de um Analista de Dados Júnior competente. O que separa um analista júnior de um sênior é a mesma coisa que separa um projeto adequado de um excelente: especificidade analítica, honestidade calibrada, e a capacidade de fazer as perguntas certas antes de procurar as respostas.


Encerramento do curso

Este foi o percurso completo. Vinte aulas, três projetos, cobrindo o ciclo completo da análise de dados: do processo e das ferramentas fundamentais, passando pelo wrangling rigoroso de dados reais, até a visualização e comunicação de descobertas.

O que você tem agora não é apenas conhecimento de Python, pandas e matplotlib. É um processo: uma forma de abordar problemas com dados que começa pela pergunta, passa pelo entendimento honesto dos dados, e termina com conclusões específicas e limitações declaradas.

Esse processo escala. As ferramentas mudam — pandas daqui a dez anos pode ser outra coisa. O processo, não.

O próximo passo natural é fazer os projetos reais: pegar um dataset que te interessa genuinamente, formular perguntas que importam para você ou para alguém, e produzir uma análise do início ao fim com o rigor que este curso ensinou. Não existe atalho melhor do que isso.

Sim, existe muito espaço para aprofundar. Este curso cobriu o nível de entrada — você sabe fazer análise exploratória completa, wrangling robusto e comunicar descobertas com visualizações de qualidade. O que vem a seguir são três caminhos distintos, e a escolha depende do que você quer fazer profissionalmente.

Exercícios

  1. Qual é a diferença entre análise exploratória e análise explicativa no contexto deste projeto? Por que as duas precisam aparecer no notebook, mesmo que apenas as visualizações explicativas sejam apresentadas ao stakeholder?

    ✓ Resposta:

    A análise exploratória é o processo de descoberta: você não sabe o que vai encontrar, então gera muitos gráficos rápidos, calcula estatísticas, testa hipóteses informais e documenta o que vai aparecendo. É não-linear e iterativa — você frequentemente volta a etapas anteriores ao descobrir algo inesperado. Os gráficos exploratórios são para você, não para o leitor.

    A análise explicativa é o produto da comunicação: você já sabe o que descobriu e está construindo uma narrativa para transmitir isso a alguém que não participou do processo. Os gráficos explicativos são polidos, têm hierarquia visual e título conclusivo, e existem para o leitor, não para você.

    As duas precisam aparecer no notebook por duas razões.

    Razão 1 — reprodutibilidade e auditabilidade: as visualizações explicativas são conclusões. Toda conclusão precisa de evidência. A evidência é a análise exploratória que a precedeu. Sem a exploração documentada, o stakeholder — ou você mesmo seis meses depois — não consegue verificar de onde veio a conclusão nem avaliar se o processo foi rigoroso.

    Razão 2 — honestidade do processo: mostrar apenas as visualizações finais polidas cria a impressão de que a análise foi linear e direta, quando na realidade foi iterativa e cheia de tentativas. A exploração documentada mostra o caminho real percorrido, incluindo as hipóteses que não se confirmaram — o que é tão informativo quanto as que se confirmaram.

  2. Você produziu uma visualização mostrando correlação forte entre nível de escolaridade e renda nos microdados do ENEM. Um colega quer incluir no relatório a frase "aumentar a escolaridade causa aumento de renda". Por que você não deve aceitar essa frase e como reescreveria?

    ✓ Resposta:

    A frase implica causalidade a partir de dados observacionais, o que é uma inferência injustificada. Dados correlacionais mostram que as duas variáveis estão associadas — quando uma é alta, a outra tende a ser alta — mas não estabelecem que uma causa a outra.

    Neste caso específico, há pelo menos três mecanismos alternativos plausíveis. Primeiro, variável de confusão de origem familiar: famílias de maior renda têm condições de manter os filhos na escola por mais tempo e também de herdá-los em condições econômicas melhores — a renda dos pais causa tanto a escolaridade quanto a renda dos filhos. Segundo, causalidade inversa parcial: pessoas com maior renda futura esperada têm mais incentivo para investir em escolaridade — a expectativa de renda futura influencia a decisão de estudar. Terceiro, seleção por habilidade: pessoas com maior aptidão cognitiva tendem a estudar mais e também a ganhar mais — a habilidade causa as duas.

    Para estabelecer que escolaridade causa renda seria necessário um experimento controlado aleatorizado (impossível eticamente nesse caso) ou uma estratégia de identificação causal como variáveis instrumentais, diferenças em diferenças, ou regressão por descontinuidade.

    A reescrita correta: "Há uma associação forte e positiva entre nível de escolaridade e renda nos dados analisados (r = X): respondentes com ensino superior completo têm renda média Y vezes maior que respondentes com ensino fundamental. Essa associação é consistente com a hipótese de que escolaridade impacta positivamente a renda, mas não estabelece causalidade — outros fatores como renda familiar de origem e aptidão cognitiva podem explicar parte dessa relação."

  3. Você está na fase de polimento das visualizações explicativas e percebe que tem seis gráficos, mas três deles respondem variações da mesma pergunta e os outros três respondem perguntas distintas. Como você decidiria quais manter, combinar ou eliminar?

    ✓ Resposta:

    O critério de seleção é sempre a pergunta: cada gráfico deve existir para responder uma pergunta específica que importa para o stakeholder. Se três gráficos respondem variações da mesma pergunta, você tem redundância — informação duplicada que consome atenção sem acrescentar insight.

    O processo de decisão tem três etapas.

    Primeira etapa — identificar o mais forte dos três redundantes: qual dos três gráficos responde a pergunta de forma mais clara, mais completa ou mais surpreendente? Aquele é o candidato a manter. Os outros dois são candidatos a eliminar ou transformar em exploratórios.

    Segunda etapa — verificar se os três podem ser combinados: se cada um dos três mostra a mesma relação mas para um subgrupo diferente, um FacetGrid com três painéis pode substituir os três gráficos individuais com mais elegância e menos espaço.

    Terceira etapa — questionar se a pergunta que os três respondem é suficientemente importante para merecer um gráfico explicativo: às vezes a razão de ter três gráficos para a mesma pergunta é que a pergunta em si não é tão importante — você a explorou por interesse analítico mas ela não é central para a narrativa do relatório. Nesse caso, mova os três para a seção de exploração e não inclua nenhum nas visualizações explicativas.

    O resultado ideal é um conjunto de quatro a seis gráficos onde cada um responde uma pergunta distinta, juntos formam uma narrativa coerente, e nenhum pode ser removido sem deixar uma pergunta sem resposta.

  4. Que perguntas você deve responder na seção de limitações de um projeto sobre comportamento de compra usando dados de uma plataforma de e-commerce?

    ✓ Resposta:

    A seção de limitações deve responder cinco perguntas fundamentais.

    Quem está representado e quem não está? Dados de e-commerce representam apenas compradores online — excluem pessoas sem acesso à internet, idosos com menor familiaridade digital e populações rurais com logística limitada. As conclusões sobre "comportamento do consumidor" são na verdade conclusões sobre "comportamento do consumidor digital", um subconjunto específico.

    O período é representativo? Se os dados cobrem um período que inclui eventos atípicos — pandemia, inflação alta, greve de transportadoras — comportamentos observados podem não se generalizar para períodos normais. Identifique explicitamente quais eventos podem ter distorcido padrões.

    Que variáveis importantes estão ausentes? Em e-commerce, variáveis ausentes típicas são: exposição a campanhas de marketing (sem saber quais clientes viram quais ofertas, não é possível distinguir compra espontânea de resposta a estímulo), histórico de compras em outros canais (um cliente que parece inativo online pode comprar muito em loja física), e dados demográficos detalhados além do CEP.

    As correlações identificadas têm explicações causais plausíveis ou há confundidores prováveis? Por exemplo, se clientes que compram à noite têm ticket médio maior, isso pode ser porque compradores de alta renda têm horários mais flexíveis — a variável de confusão é renda, não o horário em si.

    As conclusões se aplicam apenas à plataforma analisada ou a e-commerce em geral? Dados de uma plataforma específica têm viés de seleção pelo perfil de clientes que aquela plataforma atrai — conclusões sobre um marketplace de luxo não se generalizam para um marketplace popular.

  5. Ao final deste curso de 19 aulas, quais são as três habilidades mais difíceis de desenvolver que distinguem um analista de dados competente de alguém que apenas sabe usar pandas e matplotlib?

    ✓ Resposta:

    Habilidade 1 — formular perguntas antes de ver os dados. A maioria das pessoas que aprende análise de dados aprende as ferramentas primeiro e a disciplina analítica depois, se aprende. O instinto natural é abrir o dataset e sair explorando. A disciplina de parar, pensar no problema, formular perguntas específicas e só então abrir o dataset é contraintuitiva e difícil de manter sob pressão de prazo. Mas ela é a diferença entre uma análise que tem direção e uma que vaga. É difícil de desenvolver porque requer resistir ao impulso de agir imediatamente e ao conforto de deixar os dados "falar por si".

    Habilidade 2 — reconhecer e comunicar as limitações do próprio trabalho. É psicologicamente difícil terminar uma análise de 40 horas e depois escrever dois parágrafos sobre por que as conclusões podem estar erradas. Mas analistas que não fazem isso estão vendendo mais certeza do que têm — uma forma de desonestidade intelectual que prejudica quem toma decisões baseadas no trabalho. A habilidade de calibrar confiança — saber o que os dados sustentam, o que sugerem e o que não permitem concluir — é rara e extremamente valiosa. É difícil de desenvolver porque exige insegurança produtiva: estar confortável com a incerteza em vez de buscar falsas certezas.

    Habilidade 3 — transformar análise em comunicação. Saber pandas e matplotlib resolve o problema técnico. Saber contar uma história com dados — escolher quais descobertas merecem um gráfico explicativo, construir uma narrativa coerente, criar hierarquia visual que guia o olho, escrever títulos que comunicam conclusões — é uma habilidade completamente diferente que requer empatia com o leitor, economia de linguagem e disciplina para jogar fora 80% do trabalho que você fez. É difícil de desenvolver porque requer perspectiva externa: você precisa se colocar no lugar de alguém que não sabe nada sobre os dados e perguntar "o que essa pessoa precisa entender?"

Referências

  • Peng, Roger; Matsui, Elizabeth. The Art of Data Science. Leanpub, 2015. O guia mais conciso e prático sobre o processo completo de análise de dados, do início ao fim. Disponível gratuitamente em leanpub.com/artofdatascience
  • Knaflic, Cole Nussbaumer. Storytelling with Data. Wiley, 2015. A referência para a transformação de análise em comunicação. Leitura obrigatória para quem quer melhorar suas visualizações explicativas.
  • Leek, Jeff; Peng, Roger. "What is the question?" Science, 2015. Artigo curto sobre os tipos de perguntas em ciência de dados e as armadilhas de responder perguntas diferentes das que foram feitas.
  • Gelman, Andrew; Loken, Eric. "The Statistical Crisis in Science". American Scientist, 2014. Sobre os problemas de HARKing e análise sem hipótese prévia, com exemplos do mundo real.
  • Wilson, Greg et al. "Good Enough Practices in Scientific Computing". PLOS Computational Biology, 2017. Dez recomendações práticas para projetos reproduzíveis. Disponível em journals.plos.org.
  • McKinney, Wes. Python for Data Analysis, 3ª edição. O'Reilly, 2022. A referência completa de pandas e NumPy. Disponível em wesmckinney.com/book
  • Wilke, Claus O. Fundamentals of Data Visualization. O'Reilly, 2019. A referência moderna de princípios de visualização. Disponível em clauswilke.com/dataviz