Pular para as análises

Data Science 2 · ESEG · Prof. Marino Catarino

Airbnb em Nova York,
2019 → 2026

Entre um retrato e outro do mercado passaram sete anos, uma pandemia e uma lei que mudou o que um anúncio é na cidade. Este é o projeto inteiro: o mapa, as análises, as bases, os gráficos e a documentação.

Retrato 1 · 08/07/2019 48.895 anúncios Kaggle · NYC Airbnb Open Data · 16 colunas
Retrato 2 · 14/06/2026 30.257 anúncios Inside Airbnb · 90 colunas · mais 8 fontes externas

O que separa os dois retratos

Oito indicadores, todos comparáveis entre os dois anos: cada proporção sobre a mesma base e cada preço como o mesmo produto, na mesma definição e em dólar de 2026.

Indicador20192026Variação

Por que o preço aparece em duas linhas, e não em uma

A diária mediana da cidade inteira sobe de US$ 137 para US$ 194 (+41,5%) — e esse número não é comparável. Corrigir a inflação não basta: em 2019, 9% dos anúncios exigiam 30+ noites; em 2026, 82%. A mediana geral mistura dois produtos diferentes em proporções diferentes. Por isso cada linha de preço compara o mesmo produto — apartamento inteiro, no mesmo regime de noites — com a diária sem desconto nos dois anos, que é a definição de 2019. O que sobra é o que de fato mudou: a estadia longa custa praticamente o mesmo; a curta, o dobro. Na curta, com uma ressalva: é o preço do que restou legal, e o estrato perdeu 87% dos anúncios.

As análises

Doze perguntas com resposta medida. Cada cartão leva ao capítulo da documentação onde o método e os números estão por extenso.

As bases

Dez fontes: as duas bases do Airbnb — Kaggle para 2019, Inside Airbnb para 2026 — e oito fontes públicas externas. Cada uma com safra declarada, licença e hash conferido no manifesto — dado não entra no repositório, o hash entra.

FonteO que trazSafraLicença

Detalhamento, limitações e anacronismos declarados em Fontes externas; o significado de cada coluna, no dicionário de dados.

Os gráficos

Todos gerados pelo pipeline, nunca desenhados à mão: .\tasks.ps1 figuras os reconstrói a partir dos resultados. Se um número muda, a figura muda junto.

Como foi feito

CRISP-DM completo, em treze etapas encadeadas. .\tasks.ps1 status diz o que está desatualizado; .\tasks.ps1 all refaz só o que precisa.

As decisões de método que mudariam o resultado se fossem outras ficaram registradas em cinco ADRs: a célula H3 no lugar do ponto, a validação espacial, o modelo que o site roda, a ausência de CDN e a comparação em dólar constante.

Estado do projeto

Sete critérios de sucesso foram registrados antes da modelagem, com limiar e consequência. Cinco foram atingidos; dois não, e estão publicados como resultado.

13/13etapas do pipeline em dia
171testes, ruff limpo, CI verde
0erro de paridade entre o modelo em Python e o do navegador
7.219hexágonos com features de localização

A frente que continua aberta

Tudo aqui é "mudou junto com". Provar que a Local Law 18 causou a mudança exige um painel de snapshots trimestrais e um desenho de diferenças-em-diferenças, com os anúncios de 30+ noites como grupo de controle. Está em Avaliação §5.