4 · Modelagem¶
Fase 4 do CRISP-DM. Quatro modelos, um para cada objetivo de mineração de docs/01 §4 — todos validados por bloco espacial (ADR 0002). Código em
src/airbnb/models/; features emsrc/airbnb/models/especificacao.py, a fonte única de quais colunas entram em cada modelo.
1. Como tudo é validado¶
Validação cruzada espacial. Os anúncios são agrupados pela célula H3 r6 (~36 km²) em que caem; os blocos são sorteados em 5 folds; todo anúncio de um bloco fica no mesmo fold. O modelo nunca vê, no treino, os vizinhos do anúncio que está prevendo — que é a situação do simulador do site.
Parada antecipada honesta. O LightGBM escolhe o número de árvores numa validação separada do treino (15% dos blocos de treino), nunca no fold de teste. O modelo final usa a mediana das árvores escolhidas nos 5 folds.
Métricas. Em dólar (MAE, erro absoluto mediano), relativa (MdAPE, o erro percentual mediano — comparável entre um quarto de US$ 60 e uma cobertura de US$ 900) e R² no log do preço, onde o modelo é ajustado. Toda métrica é fora do fold. A dispersão entre folds acompanha cada número.
Quanto a validação ingênua enganaria. O modelo principal (M4) é rodado uma vez também com KFold aleatório; a diferença é o otimismo que teríamos publicado (seção 2.4).
2. Preço por noite — modelo hedônico¶
2.1 A escada¶
Cada degrau só existe se melhorar o anterior — e a escada mostra de onde vem cada ganho.
| degrau | o que vê | papel |
|---|---|---|
| B0 | nada (mediana global) | piso |
| B1 | mediana por bairro × tipo de quarto | o que a análise descritiva (v0) sabe; recua para o tipo quando o bairro não está no treino |
| M1 | regressão linear regularizada (Ridge) no log do preço | o clássico da literatura hedônica |
| M2 | LightGBM com os atributos do anúncio | o imóvel, sem a localização |
| M3 | M2 + coordenadas do centroide da célula r9 + distrito | a localização como latitude/longitude |
| M4 | M3 + as fontes externas | a localização como o que há nela |
| M4 sem coordenadas | M2 + distrito + fontes externas | as externas substituem a coordenada? |
| M5 | só as entradas do simulador + localização, modelo compacto | o produto que roda no navegador |
Atributos do anúncio (M2): estrutura (tipo de quarto e de imóvel, hóspedes, quartos, camas, banheiros, banheiro compartilhado), 17 comodidades, regras (mínimo de noites, 30+ noites, situação do registro na Prefeitura), anfitrião (superhost, anos como anfitrião, número de anúncios) e avaliações (nota geral, de limpeza e de localização, número de avaliações, meses desde a primeira).
O produto (M5) usa só o que um usuário sabe informar — tipo, hóspedes, quartos, camas, banheiros, banheiro compartilhado, 30+ noites, superhost e nota (opcional) — mais tudo o que vem da célula. É menor (árvores de 31 folhas) para caber no navegador; o custo em erro frente ao M4 está na tabela.
| modelo | MdAPE | MAE | R² (log) | MdAPE entre folds |
|---|---|---|---|---|
| B0 · mediana global | 53,5% | US$ 176,4 | -0,083 | 47,2% – 67,9% |
| B1 · mediana por bairro × tipo (v0) | 46,6% | US$ 159,7 | 0,130 | 37,8% – 54,7% |
| M1 · regressão linear hedônica | 27,6% | US$ 111,4 | 0,669 | 25,9% – 30,6% |
| M2 · LightGBM, só o imóvel | 24,5% | US$ 103,9 | 0,716 | 22,2% – 30,1% |
| M3 · + coordenadas e distrito | 21,7% | US$ 96,1 | 0,762 | 20,3% – 24,6% |
| M4 · + fontes externas | 22,0% | US$ 96,1 | 0,760 | 21,0% – 24,4% |
| M4 sem coordenadas (só externas) | 22,1% | US$ 96,5 | 0,760 | 21,1% – 24,9% |
| M5 · produto (simulador) | 25,0% | US$ 102,0 | 0,724 | 22,6% – 26,2% |
Leitura. A análise descritiva (B1) erra metade do preço (MdAPE 46,6%): sob CV espacial, o bairro do anúncio quase nunca está no treino e o baseline recua para a mediana do tipo de quarto. O modelo linear clássico já corta o erro quase pela metade (27,6%); o LightGBM só com o imóvel chega a 24,5%, e a localização leva a 21,7–22,0%. O produto, compacto (61 árvores de 31 folhas, 34 features), fica em 25,0% — 3 pontos acima do M4, o preço de caber no navegador.
Quanto a validação ingênua enganaria. O mesmo M4 avaliado com KFold aleatório dá MdAPE de 18,5% e R² de 0,80 — contra 22,0% e 0,76 com blocos espaciais. Teríamos publicado um erro 16% menor do que o real para quem usa o simulador num lugar novo.
2.2 O que cada fonte externa agrega (ablação)¶
Retira-se uma fonte externa por vez do M4 e mede-se quanto o erro piora, fold a fold. Fonte cuja retirada piora o erro em 4 ou 5 dos 5 folds agrega de forma consistente; a que piora em 2 ou 3 é ruído.
| fonte retirada | features | Δ MdAPE | Δ MAE | folds que pioram |
|---|---|---|---|---|
| NYPD | crime_graves_km2, crime_total_km2 |
+0,21 p.p. | US$ 0,27 | 4/5 |
| marcos | dist_centro_km, dist_aeroporto_km, dist_marco_km |
+0,20 p.p. | US$ 0,86 | 4/5 |
| ACS | acs_renda_mediana, acs_aluguel_mediano, acs_pop_densidade, acs_pct_alugado, acs_pct_vago, acs_valor_imovel |
-0,04 p.p. | US$ 0,13 | 3/5 |
| Zillow | zori |
-0,10 p.p. | US$ 0,09 | 2/5 |
| MTA | metro_dist_m, metro_n_800m, metro_linhas_800m |
-0,12 p.p. | US$ 0,36 | 3/5 |
| OSM | poi_restaurantes_k1, poi_bares_k1, poi_cafes_k1, poi_atracoes_k1, poi_hoteis_k1, poi_parques_k1 |
-0,15 p.p. | US$ -0,62 | 2/5 |
| 311 | ruido_311_km2 |
-0,30 p.p. | US$ 0,34 | 2/5 |
Resultado nulo — e o mecanismo que o explica
Para prever preço, as fontes externas não superam as coordenadas. O M4 (com as externas) empata com o M3 (só latitude/longitude): 22,0% × 21,7%, melhor em 3 de 5 folds — o critério C4, registrado antes da modelagem, não foi atendido. Só a retirada de NYPD e dos marcos piora o erro de forma consistente (4/5 folds), e em 0,2 ponto percentual.
O que as externas fazem é substituir a coordenada quase sem perda (M4 sem coordenadas: 22,1%) — e, com isso, dizer o que no lugar importa. No M4, o modelo prefere as externas às coordenadas: 23,8% da contribuição SHAP vai para as fontes externas e 1,7% para latitude/longitude (seção 2.3). O ganho da Por que elas não somam. Medimos: o η² de cada feature externa explicado pela célula H3 r8 tem mediana de 0,85, e as distâncias a marcos chegam a 0,997–0,999 (são função do centroide, por construção). O aluguel do Zillow, terceira feature do modelo, tem η² = 0,94. Em quase toda a sua variância, as externas são a célula com outro nome — e um modelo que já recebeu a localização não ganha informação ao recebê-la de novo. Isso não é falha da coleta: é o que se descobre ao medir.
O ganho da busca por dados fora do Kaggle, no preço, é de interpretação e de transferência (um modelo que fala em aluguel, renda e distância a marcos funciona em outra cidade; um que fala em latitude, não), não de acurácia. Onde elas mudam a conclusão é em outros lugares: o comparativo de aluguel (seção 3) e o teste de localização.
2.3 O que move o preço (SHAP)¶
A contribuição SHAP soma exatamente a previsão, então pode ser agregada por grupo sem dupla contagem: é a resposta direta a "quanto do preço é o imóvel e quanto é o lugar".
| grupo de features | fração da contribuição (SHAP) |
|---|---|
| anúncio | 74,5% |
| Zillow | 9,3% |
| marcos | 6,6% |
| ACS | 4,3% |
| OSM | 1,9% |
| coordenadas | 1,7% |
| MTA | 0,9% |
| 311 | 0,4% |
| NYPD | 0,3% |
O imóvel explica três quartos do preço — banheiro compartilhado, número de hóspedes, mínimo de noites e situação do registro na Prefeitura estão entre as seis features que mais movem a previsão. Do quarto restante, o que mais pesa é o nível de aluguel de longo prazo do CEP (Zillow ZORI: a terceira feature do modelo), seguido da distância aos marcos turísticos e da renda e do aluguel do setor censitário (Census).
As curvas têm a forma esperada — e isso é validação: preço sobe com o aluguel do entorno (de −15% a +22% entre os extremos do ZORI), cai com a distância aos marcos (+8% perto, −8% a mais de 10 km) e com a distância a Times Square.

O mapa aplica o modelo do simulador a um mesmo apartamento de referência em cada célula r9: é o prêmio de localização que o site calcula para um clique.
2.4 Intervalo de previsão conformal¶
O simulador não publica só um número: publica uma faixa que contém o preço real de
80% dos anúncios parecidos. O intervalo é conformal: os quantis 10% e 90% do
resíduo fora do fold (no log) viram a faixa [p·e^q_inf, p·e^q_sup], com a correção
de amostra finita. A cobertura honesta é medida calibrando em 4 folds e
conferindo no quinto.
Um intervalo global cobre 80% na média, mas descobre os grupos pequenos (quarto de hotel, quarto compartilhado), que erram mais. Por isso o produto usa o conformal de Mondrian: um par de quantis por tipo de acomodação.
| tipo de acomodação | n | cobertura (intervalo global) | cobertura (Mondrian por tipo) |
|---|---|---|---|
| Quarto privativo | 9.219 | 80,8% | 79,8% |
| Casa ou apê inteiro | 11.226 | 79,3% | 79,5% |
| Quarto de hotel | 478 | 68,2% | 78,2% |
| Quarto compartilhado | 191 | 62,8% | 79,1% |
| todos | 21.114 | 79,6% | 79,6% |
O intervalo global cobre 79,6% no total, mas só 68% dos quartos de hotel e 63% dos compartilhados. O Mondrian (grupo com pelo menos 100 resíduos) traz os quatro tipos para 78–80%. A faixa é larga — no intervalo global, o limite superior é cerca de 2,6 vezes o inferior —, e é isso que o erro fora do lugar conhecido realmente é.
2.5 O produto por recorte¶
| recorte | grupo | n | MdAPE | MAE |
|---|---|---|---|---|
| tipo | Quarto privativo | 9.219 | 24,6% | US$ 66,7 |
| tipo | Casa ou apê inteiro | 11.226 | 25,0% | US$ 122,8 |
| tipo | Quarto de hotel | 478 | 32,1% | US$ 299,0 |
| tipo | Quarto compartilhado | 191 | 35,1% | US$ 86,2 |
| distrito | Brooklyn | 7.129 | 24,1% | US$ 72,9 |
| distrito | Manhattan | 9.304 | 26,8% | US$ 146,8 |
| distrito | Queens | 3.571 | 22,5% | US$ 60,0 |
| distrito | Bronx | 819 | 25,0% | US$ 47,6 |
| distrito | Staten Island | 291 | 26,3% | US$ 48,3 |
| mínimo de noites | 30+ noites | 16.102 | 25,2% | US$ 84,6 |
| mínimo de noites | < 30 noites | 5.012 | 24,3% | US$ 157,7 |
3. Ocupação e receita¶
O alvo é estimated_occupancy_l365d, estimativa do Inside Airbnb reproduzida
exatamente pela limpeza: min(round(avaliações_12m ÷ 0,5 × max(6,4; mínimo de
noites)); 255). É modelo de outro modelo, e dizemos isso: prevê quantas noites um
anúncio parecido acumula de avaliações, não reservas observadas.
O problema se parte em dois, porque mais da metade dos anúncios com preço não teve hóspede nenhum no ano — estão listados, não operados:
- o anúncio está ativo? (classificação, AUC);
- se ativo, quantas noites? (regressão no log das noites) — o número que o simulador mostra, porque quem pergunta "quanto fatura" pretende operar.
| modelo (noites/ano, só anúncios ativos) | MAE (noites) | erro mediano | Spearman |
|---|---|---|---|
| baseline: mediana bairro × tipo × 30+ noites | 62,2 | 60,0 | 0,341 |
| LightGBM (entradas do simulador + localização) | 57,8 | 48,5 | 0,594 |
Atividade. 80% dos anúncios de estadia curta tiveram hóspede no último ano; dos de 30+ noites, só 35%. Prever se um anúncio está ativo é fácil (AUC 0,91) — o mínimo de noites e o tipo praticamente decidem. Noites, se ativo, é mais difícil: o modelo erra 58 noites em média (48,5 na mediana) contra 62 do baseline, e ordena bem melhor (Spearman 0,59 × 0,34). 28% dos anúncios ativos estão no teto de 255 noites da estimativa. A receita prevista (preço do produto × noites) tem Spearman de 0,79 com a observada.
Penalidade de sobrepreço. Entre anúncios ativos de estadia curta, os que cobram 20% ou mais acima do que o modelo de preço prevê para eles ficam, na mediana, com 205 noites no ano — contra 255 dos demais. Nos de 30+ noites a diferença some (122 × ~128 noites em média). A correlação geral é nula (Spearman −0,004): o mercado só pune o sobrepreço forte, e só na estadia curta.
3.1 O Airbnb fatura mais que o aluguel tradicional?¶
A pergunta que liga o Airbnb à habitação: um apartamento inteiro, anunciado e ativo,
fatura mais no Airbnb do que alugado por um ano no mercado tradicional do mesmo CEP?
Receita = estimated_revenue_l365d (bruta: sem taxa da plataforma, limpeza nem
mobília); aluguel = Zillow ZORI do CEP × 12, em dólar de junho de 2026.
| recorte | n | aluguel/mês | diária | noites/ano | empatar em | receita/ano | razão | acima de 1,00× |
|---|---|---|---|---|---|---|---|---|
| todos os apartamentos inteiros ativos | 5.069 | US$ 4.269 | US$ 212 | 120 | 240 | US$ 27.368 | 0,55× | 27,7% |
| < 30 noites | 1.433 | US$ 4.439 | US$ 400 | 255 | 117 | US$ 80.024 | 1,69× | 74,8% |
| 30+ noites | 3.636 | US$ 4.269 | US$ 174 | 120 | 280 | US$ 20.000 | 0,42× | 9,1% |
| Manhattan | 2.781 | US$ 4.778 | US$ 238 | 120 | 238 | US$ 29.560 | 0,52× | 26,1% |
| Brooklyn | 1.691 | US$ 3.589 | US$ 191 | 180 | 240 | US$ 27.815 | 0,63× | 31,2% |
| Queens | 453 | US$ 2.979 | US$ 161 | 120 | 235 | US$ 20.880 | 0,57× | 26,9% |
| Bronx | 96 | US$ 2.977 | US$ 123 | 120 | 276 | US$ 14.141 | 0,42× | 19,8% |
| Staten Island | 48 | US$ 2.734 | US$ 108 | 120 | 279 | US$ 12.886 | 0,39× | 14,6% |
A razão sozinha esconde de onde ela vem: 0,55× pode ser aluguel caro ou receita baixa, e quem decide o que fazer com um imóvel precisa saber qual dos dois. Por isso a tabela traz as duas pontas e a coluna empatar em — quantas noites, na própria diária do recorte, igualariam um ano de aluguel. Na mediana são 240 noites, e a ocupação observada é 120.
A Local Law 18 dividiu o mercado em dois negócios opostos: a estadia curta legal (registrada) é muito mais rentável que o aluguel — três em quatro superam um ano de aluguel —, enquanto o aluguel mensal mobiliado pelo Airbnb fatura, na mediana, menos da metade de um aluguel tradicional. Parte dessa distância é método: a ocupação estimada de 30+ noites conta 60 noites por avaliação, e hóspedes de estadia longa avaliam menos — a receita desse grupo tende a estar subestimada.
Por bairro¶
A média da cidade não decide nada sobre um imóvel — o bairro decide. Só os bairros com 60 ou mais apartamentos inteiros ativos, para que a mediana signifique alguma coisa:
| recorte | n | aluguel/mês | diária | noites/ano | empatar em | receita/ano | razão | acima de 1,00× |
|---|---|---|---|---|---|---|---|---|
| Fort Hamilton | 67 | US$ 2.834 | US$ 165 | 255 | 206 | US$ 38.760 | 1,14× | 70,1% |
| Financial District | 108 | US$ 4.979 | US$ 540 | 128 | 117 | US$ 63.138 | 1,06× | 51,9% |
| Astoria | 65 | US$ 3.143 | US$ 206 | 180 | 189 | US$ 32.150 | 0,81× | 41,5% |
| Midtown | 380 | US$ 5.626 | US$ 319 | 179 | 202 | US$ 47.746 | 0,76× | 39,2% |
| Gramercy | 60 | US$ 5.158 | US$ 235 | 216 | 263 | US$ 45.680 | 0,74× | 33,3% |
| Crown Heights | 190 | US$ 3.258 | US$ 202 | 180 | 203 | US$ 30.568 | 0,72× | 40,5% |
| Bedford-Stuyvesant | 313 | US$ 3.589 | US$ 197 | 180 | 218 | US$ 30.873 | 0,72× | 37,1% |
| Harlem | 220 | US$ 3.275 | US$ 229 | 134 | 178 | US$ 28.442 | 0,69× | 39,1% |
| Lower East Side | 108 | US$ 4.689 | US$ 272 | 148 | 216 | US$ 36.474 | 0,64× | 29,6% |
| East Village | 87 | US$ 5.158 | US$ 237 | 124 | 254 | US$ 35.876 | 0,58× | 28,7% |
| West Village | 79 | US$ 6.087 | US$ 267 | 120 | 261 | US$ 40.594 | 0,56× | 26,6% |
| East Flatbush | 81 | US$ 2.797 | US$ 131 | 120 | 261 | US$ 18.767 | 0,55× | 30,9% |
| Bushwick | 100 | US$ 3.595 | US$ 160 | 180 | 280 | US$ 24.248 | 0,55× | 26,0% |
| East Harlem | 98 | US$ 3.504 | US$ 168 | 120 | 235 | US$ 24.522 | 0,54× | 24,5% |
| Upper East Side | 367 | US$ 4.167 | US$ 218 | 120 | 234 | US$ 26.280 | 0,51× | 18,5% |
| Williamsburg | 202 | US$ 4.985 | US$ 212 | 120 | 275 | US$ 27.392 | 0,51× | 15,8% |
| Murray Hill | 85 | US$ 5.144 | US$ 260 | 120 | 237 | US$ 30.532 | 0,49× | 27,1% |
| Upper West Side | 243 | US$ 4.692 | US$ 206 | 120 | 268 | US$ 25.612 | 0,46× | 13,2% |
| Kips Bay | 99 | US$ 5.144 | US$ 224 | 120 | 279 | US$ 26.364 | 0,43× | 16,2% |
| Chelsea | 170 | US$ 5.807 | US$ 209 | 120 | 326 | US$ 23.960 | 0,34× | 16,5% |
| Hell's Kitchen | 334 | US$ 4.699 | US$ 194 | 120 | 296 | US$ 18.269 | 0,32× | 19,2% |
Dois bairros passam de 1,00×, e não são os de aluguel mais caro. São os de estadia curta registrada, que operam o ano inteiro: Fort Hamilton (1,14×) tem a terceira diária mais barata da lista — US$ 165 — e mesmo assim vence, porque vende 255 noites. Financial District (1,06×) chega pelo outro extremo: diária de US$ 540 e só 128 noites, o que basta para empatar em 117.
No fundo da tabela estão Hell's Kitchen (0,32×) e Chelsea (0,34×), que precisam de 296 e 326 noites para empatar e vendem 120. Não é que o Airbnb renda pouco lá — é que o aluguel rende muito. A conta perde para o contrato justamente onde o contrato é caro.
Por célula, a mesma métrica está no mapa, em "Airbnb × aluguel de longo prazo".
4. Sobrevivência 2019 → 2026¶
"Sobreviver" = o mesmo id de anúncio de julho de 2019 aparecer em junho de 2026. Não é o mesmo que o imóvel continuar alugado: o anfitrião pode ter recriado o anúncio, e o scrape pode não capturar um anúncio ativo — os dois contam como "não sobreviveu".
Dois modelos, dois papéis:
- regressão logística com erro-padrão agrupado por anfitrião (anúncios do mesmo anfitrião saem juntos; sem agrupar, o intervalo de confiança fingiria mais informação independente do que há) — para razões de chance interpretáveis;
- LightGBM sob CV espacial — para medir quanto do destino é previsível e desenhar o mapa de sobrevivência prevista.
Dos 48.895 anúncios de julho de 2019, 7.516 (15,4%) ainda estão no ar em junho de 2026.
| variável (2019) | razão de chance | IC 95% (agrupado por anfitrião) | p |
|---|---|---|---|
log_preco_real |
1,05 | 0,97 – 1,13 | 0,268 |
min30 |
2,08 | 1,68 – 2,57 | < 0,001 |
log1p_avaliacoes |
1,28 | 1,24 – 1,31 | < 0,001 |
avaliacao_recente_90d |
0,79 | 0,73 – 0,86 | < 0,001 |
log_anuncios_host |
1,00 | 0,90 – 1,12 | 0,948 |
disponibilidade_zero |
1,64 | 1,52 – 1,78 | < 0,001 |
tipo_Private room |
0,74 | 0,67 – 0,81 | < 0,001 |
tipo_Shared room |
0,16 | 0,11 – 0,24 | < 0,001 |
distrito_Brooklyn |
0,92 | 0,73 – 1,16 | 0,480 |
distrito_Manhattan |
0,75 | 0,59 – 0,95 | 0,019 |
distrito_Queens |
0,94 | 0,73 – 1,21 | 0,610 |
distrito_Staten Island |
0,88 | 0,58 – 1,33 | 0,541 |
Referências: casa ou apê inteiro e Bronx. Controlando pelo resto, sobreviveu mais quem já era aluguel mensal em 2019 (mínimo de 30+ noites: chance 2,1 vezes maior — já estava dentro da regra que a LL18 impôs) e quem tinha o calendário fechado (1,6 vez): o anúncio "adormecido" de um morador ficou; o anúncio de estadia curta mais ativo — o alvo da lei — saiu. Avaliação recente, que em 2019 indicava operação comercial ativa, reduz a chance (0,79). Quarto compartilhado quase desapareceu (0,16). Manhattan perdeu mais que o Bronx (0,75).
| recorte | grupo | anúncios 2019 | ainda no ar em 2026 |
|---|---|---|---|
| distrito | Manhattan | 21.661 | 14,6% |
| distrito | Brooklyn | 20.104 | 16,3% |
| distrito | Queens | 5.666 | 15,2% |
| distrito | Bronx | 1.091 | 14,7% |
| distrito | Staten Island | 373 | 14,5% |
| tipo | Casa ou apê inteiro | 25.409 | 17,7% |
| tipo | Quarto privativo | 22.326 | 13,4% |
| tipo | Quarto compartilhado | 1.160 | 2,5% |
| mínimo de noites | < 30 noites | 44.388 | 14,8% |
| mínimo de noites | 30+ noites | 4.507 | 21,1% |
| anúncios do anfitrião | 1 | 32.303 | 15,5% |
| anúncios do anfitrião | 2 | 6.658 | 15,5% |
| anúncios do anfitrião | 3–5 | 5.138 | 13,9% |
| anúncios do anfitrião | 6–10 | 1.829 | 11,9% |
| anúncios do anfitrião | 11+ | 2.967 | 19,0% |
| última avaliação | ≤ 90 dias | 22.230 | 15,8% |
| última avaliação | 91–365 dias | 6.922 | 16,1% |
| última avaliação | > 1 ano | 9.691 | 21,1% |
| última avaliação | sem avaliação | 10.052 | 8,4% |
Quanto é previsível. Pouco: AUC de 0,67 sob CV espacial, abaixo do limiar de 0,70 registrado em docs/01 (C5 não atendido) — embora calibrado e melhor que o baseline no Brier (0,124 × 0,130). Tirar toda a localização não piora — na verdade melhora marginalmente (0,6676 × 0,6659), o que reforça a mesma leitura do C4: a saída do mercado atingiu todos os lugares por igual; o que diferencia os sobreviventes é o tipo de operação, não o endereço. Seguindo o pré-registro, o modelo fica explicativo: o mapa do site mostra a sobrevivência observada por célula, não a prevista.
5. Validação temporal (deriva)¶
Um modelo treinado em julho de 2019, em dólar constante, é aplicado aos anúncios de junho de 2026 — com as mesmas features, só as que os dois snapshots têm, e cada snapshot com a safra das suas fontes externas. Comparado com um modelo de 2026 avaliado por CV espacial no próprio 2026, a diferença mede a deriva de conceito.
| treino → teste | MdAPE | MAE (US$ de 2026) | R² (log) |
|---|---|---|---|
| 2019 → 2019 (CV espacial) | 25,3% | US$ 76,6 | 0,572 |
| 2026 → 2026 (CV espacial) | 29,0% | US$ 121,2 | 0,626 |
| 2019 → 2026 | 33,3% | US$ 142,6 | 0,331 |
| 2026 → 2019 | 140,0% | US$ 220,4 | -1,016 |
O modelo de 2019 perde 4,3 pontos de MdAPE em 2026 frente ao próprio 2026 — e o caminho inverso explode (140%). A assimetria é a Local Law 18: por estrato, o modelo de 2019 acerta o aluguel de 30+ noites de hoje (MdAPE 22–31%, viés de +7% a +9%), mas erra a estadia curta por muito (MdAPE 47–73%): em 2026 ela custa de 1,9 a 3,6 vezes o que a estrutura de 2019 previa. Na volta, o modelo de 2026 aprende que "estadia curta = cara" e aplica isso aos 91% de anúncios curtos de 2019. A estabilidade populacional (PSI) confirma onde o mercado mudou: mínimo de noites (PSI 2,68), disponibilidade (2,16), número de anúncios do anfitrião (0,54) e o aluguel do entorno (ZORI, 0,62).
O resíduo "preço de 2026 − previsão da estrutura de 2019", médio por célula, é a valorização ajustada do mapa: quanto a área ficou mais cara do que o mix dos seus anúncios e a sua localização fariam esperar em 2019.
Corrigido depois da auditoria de método
Até a revisão, esse resíduo era agregado sobre todos os anúncios da célula, o que viola a invariante 8 do próprio projeto. O viés do modelo de 2019 é de +0,07 em log na estadia de 30+ noites e de +0,63 a +1,29 na curta (tabela acima), então a média por célula media, em primeira ordem, onde a estadia curta sobreviveu — não valorização. Medido: ρ entre a métrica antiga e a fração de estadia curta na célula era 0,47. Estratificada dentro do regime de 30+ noites, a correlação cai para −0,02, e o número muda de patamar: a valorização mediana por célula é de +7,2%, não os +29% que a versão anterior publicava. Os +29% eram composição.
Com a métrica corrigida, os bairros que mais cobram acima do que a estrutura de 2019 previa são Tribeca (+107%), Financial District (+47%), SoHo (+42%), Prospect Heights (+41%) e Flatiron District (+41%); os que menos, Little Italy (−26%), Hell's Kitchen (−11%), Upper West Side (−9%), Rosedale (−8%) e Chelsea (−5%). Note que quatro dos cinco primeiros da lista antiga — South Ozone Park, Theater District, Long Island City — desapareceram: eram concentração de estadia curta, não valorização.