O poder da Análise de Sobrevivência no mercado imobiliário

Davi Vieira
Loft
Published in
11 min readFeb 8, 2021

e em outros mercados…

Na Loft lidamos com a maior transação da vida de muitas pessoas. Todos os dias, recebemos clientes que decidiram realizar o sonho de comprar um novo lar, ou de vender o seu maior bem, colocando-se em um processo que exige consideração e bastante cuidado. Dado a sua complexidade, esse processo pode se estender por muitos meses, ou em alguns casos, anos. Aceitamos o desafio de melhorar essa experiência com tecnologia e dados.

Dentre os vários desafios encontra-se o de entender o tempo até venda de um imóvel, como também o tempo entre estágios importantes como visita, oferta e fechamento. Do lado de uma pessoa que gostaria de vender seu imóvel este tempo seria o prazo até converter o imóvel em dinheiro, conhecido como liquidez, e para uma pessoa compradora o tempo até a realização de um sonho: comprar um lar.

Preços fora da realidade, anúncios de baixa qualidade, mercado pulverizado com múltiplos pontos de contato são apenas alguns dos fatores que contribuem para a liquidez de imóveis no mercado ser muito abaixo de seu real potencial. Sabendo disso, a Loft atua sobre cada uma dessas dores buscando fornecer à pessoa vendedora e compradora dados para uma melhor tomada de decisão ao vender, comprar ou trocar um imóvel.

Além disso, a Loft compra e vende imóveis através de nossos fundos imobiliários em um formato que se tornou conhecido como iBuying. Temos equipes de obra que nos permitem transformar nossos apartamentos da maneira que desejarmos, desde uma simples pintura até uma mudança total de arranjo de planta. Para cada imóvel são inúmeras possibilidades.

Dentre os maiores riscos que a Loft e as pessoas vendedoras enfrentam existe o risco de liquidez, ou seja, o risco de não conseguir liquidar determinado imóvel no tempo desejado, podendo resultar em perdas financeiras significativas devido ao alto capital alocado. Assim, tal como ter uma fórmula de receitas e custos bem definida, o ato de estimar bem os tempos relacionados à jornada de venda de um ativo podem reduzir significativamente o risco de liquidez enfrentado pela Loft. Essa previsibilidade impacta de forma direta a margem de contribuição de cada imóvel e, consequentemente, a rentabilidade de todo um portfólio de produtos.

Desafios

Abaixo temos alguns desafios/perguntas que podemos nos fazer ao ter um imóvel em mãos:

  • Quanto tempo um imóvel demora para ser vendido? Qual é o impacto de variáveis como região, tamanho e preço?
  • Dados meus objetivos financeiros, ao fixar um tempo até venda, qual o risco de eu não atingir esse tempo alvo?
  • Qual seria o preço que eu deveria listar meu imóvel a fim de ter maiores chances de vendê-lo no tempo desejado?

Neste post, iremos introduzir uma abordagem tradicional da Estatística para lidar com esse tipo de problema e também traremos alguns avanços e adaptações que se tornaram possíveis com Machine Learning (ML).

Começando a modelar o tempo até um evento

Em geral, usando Machine Learning, temos interesse em como a natureza relaciona nossas variáveis X com um fenômeno de interesse y. Ao utilizar algoritmos para tal, em ML existe um alto foco em predição, ou seja, com um novo conjunto de dados não observados (X*) quais seriam as nossas observações do fenômeno (y*) para essas amostras.

Pensando na motivação desse post, nosso fenômeno y seria o tempo até venda de determinado imóvel. E os dados que utilizaríamos para modelar esse fenômeno (X) seriam características do imóvel anunciado, como por exemplo: área privativa, preço, dados geográficos e de mercado, valor de condomínio, etc.

Então beleza, já sei o que fazer! Vamos utilizar os imóveis vendidos e suas características para encontrar um modelo que responde em quanto tempo venderíamos os imóveis listados no site!

Bem, é natural pensar assim, mas essa abordagem (utilizar apenas os imóveis vendidos) potencialmente traria consigo um problema grave: o viés de seleção!

Viés de seleção

Viés de seleção é comum em qualquer abordagem, então cuidado! (fonte: Meme Generator)

Viés de seleção é um problema comum a ser encontrado quando lidamos com dados. Para exemplificar o problema de viés de seleção nesse contexto, trago um simples exemplo ilustrativo.

Vamos imaginar uma empresa em seu primeiro ano de vida, a TokTok. Ao longo de 10 meses a TokTok veio montando uma carteira de imóveis em seu site.

Carteira de imóveis da TokTok. Linhas marcadas em vermelho são de imóveis ainda à venda.

Após os 10 primeiros meses de site a empresa conseguiu obter 10 imóveis em seu portfólio, conforme ilustrado na tabela acima. 5 destes imóveis foram vendidos e 5 deles ainda estão à venda (linhas em vermelho).

Faz sentido usar na modelagem apenas os imóveis vendidos?

Para responder à pergunta acima, estimamos o tempo até venda usando um estimador bastante famoso e simples: a média amostral.

Tempo médio no site:

  • Apenas imóveis vendidos: 102 dias
  • Apenas imóveis à venda: 172 dias
  • Todos (assumindo a venda instantânea dos 5 imóveis à venda): 137 dias

Mesmo aceitando a hipótese altamente improvável de vender os 5 imóveis restantes de forma instantânea, nosso tempo médio até venda estimado seria aproximadamente 35% superior ao tempo médio considerando apenas os imóveis vendidos!

Esse pode ser considerado um fenômeno de viés de seleção, onde apenas utilizar os imóveis vendidos nos traz uma realidade viesada sobre toda a população estudada. Ora, faz sentido pensar que os imóveis vendidos mais rápido tenham alguma característica que os distinguam dos imóveis que demoraram mais tempo para serem vendidos. Usar apenas os imóveis vendidos como regra para o tempo até venda de novos imóveis comprados traria um grande risco de liquidez para a TokTok, especialmente em seus primeiros anos de existência.

Além disso, um imóvel ficar no site por 270 dias, mesmo sem ser vendido, deveria ser algo significativo para nosso modelo, concordam? Como poderíamos usar informação das unidades não vendidas no nosso modelo de tempo até venda?

Análise de sobrevivência

A Estatística já respondeu a pergunta anterior há algum tempo: através da Análise de Sobrevivência! Análise de sobrevivência é uma área da Estatística que tem como principais objetivos avaliar o tempo entre a ocorrência de dois eventos e avaliar os fatores que aumentam o risco do segundo evento ocorrer. É comum vermos aplicações de análise de sobrevivência na área médica, principalmente em estudos com pacientes sujeitos a diferentes tratamentos (ex.: teste de eficácia de medicamentos/tratamentos). Ao invés de apenas modelar quanto tempo espera-se que o paciente sobreviva, é possível também responder qual a probabilidade deste paciente sobreviver até determinado tempo.

O que é mais incrível nesta metodologia é que também utilizamos a informação das amostras onde o fenômeno de estudo, morte do paciente (em um estudo clínico) ou venda de um imóvel (no nosso caso), não ocorreu. Estas amostras onde temos informações parciais sobre o evento de interesse são chamadas de censuras.

Ex.: Sabemos que um imóvel está há pelo menos 100 dias no site, mas ainda não foi vendido. Este imóvel é uma censura.

Função de sobrevivência — S(t)

O grande truque está em, ao invés de estimarmos o tempo até venda de um imóvel (variável alvo que não temos para alguns deles), estimamos a probabilidade deste ainda estar à venda após T dias, ou seja, o imóvel “sobreviver” até T dias. Esta função que liga tempo à probabilidade de sobrevivência é conhecida como função de sobrevivência, S(t). O complementar da função de sobrevivência de um imóvel é exatamente a probabilidade de vendermos um imóvel em até T dias!

Função de sobrevivência. A probabilidade de sobreviver até ao menos o tempo T=t.

Abaixo representamos graficamente um exemplo de função de sobrevivência:

Função de sobrevivência — no eixo X o tempo avaliado e no eixo Y a probabilidade de sobrevivência.

Por exemplo, se a imagem acima fosse a curva de sobrevivência de um imóvel no site, teríamos 50% de chances de vendê-lo antes dos 3.72 meses de site.

Assim, com o tempo entre dois eventos de interesse (ex.: imóvel ser listado no site e o imóvel sair por motivo de venda do site), podemos usar técnicas estatísticas para estimar a função de sobrevivência S(t) para diferentes imóveis listados, inclusive considerando como censuras na modelagem os imóveis não vendidos!

Estimador de Kaplan-Meier

Tal como usamos a altura média amostral para estimar a altura média de uma população, podemos usar estimadores para aproximar a função de sobrevivência, ajustando este estimador no nosso conjunto de dados disponíveis. Legal né? Dentre eles o mais conhecido é o estimador não-paramétrico de Kaplan-Meier.

Estimador de Kaplan-Meier

, onde:

di: número de indivíduos que sofreram falha no instante T=ti;

ni: número de indivíduos em risco no instante T=ti.

É pelo termo di/ni na fórmula do estimador que conseguimos compreender melhor como este considera as censuras em sua modelagem, através do conceito de indivíduo em risco.

Um indivíduo em risco é aquele que, em determinado tempo t, encontra-se vivo/em risco, seja ele uma censura ou um indivíduo que sofreu uma falha.

Ao considerar as censuras parte do denominador deste termo, estamos contabilizando os imóveis não vendidos até o tempo em que eles estiverem listados no site (em risco de venda).

Para nossa aplicação vamos utilizar os dados do portfólio de 10 imóveis da empresa TokTok:

  • Fazemos a leitura dos imóveis (t — tempo até venda, e — se é censura):
  • Ajustamos o estimador de Kaplan-Meier:
  • Podemos verificar estimativas de sobrevivência encontradas:
Sobrevivências estimadas pelo estimador de Kaplan-Meier
  • E plotar nossas estimativas e seus intervalos de confiança. Simples assim:
Sobrevivência estimada pelo Kaplan-Meier. Censuras são representadas com um risco no instante observado. O intervalo de confiança da curva está representado como uma sombra em azul.

Logo abaixo do gráfico temos uma tabela com o número de indivíduos em risco (At risk), acumulado de indivíduos censurados (Censored) e acumulado de eventos, ou seja, número total de vendas de imóveis (Events) para cada tempo observado (os valores da tabela estão alinhados com os tempos no gráfico).

Podemos observar que a mediana de sobrevivência (tempo onde temos ao menos 50% das unidades vendidas) está em 150 dias. Assim, se a empresa TokTok usar esses resultados, assumiria ter um risco estimado de 50% de suas próximas unidades compradas superarem o tempo de 150 dias.

Cabe à empresa entender qual o risco que está disposta a correr e ajustar seu tempo estimado até venda de acordo com estes riscos e cenário atual da empresa. Inclusive, para curvas mais bem definidas (com mais dados e um formato mais suave), uma métrica interessante a ser usada é o tempo esperado até venda, que é o tempo ponderado pelas probabilidades de sobrevivência, ou mais simplesmente a área abaixo da curva de sobrevivência.

Da mesma forma, pode-se estimar curvas de sobrevivência para diferentes segmentos de interesse do negócio (bairros, faixas de metragens, produto, faixas de preços, safras de produtos, dentre outras), trazendo potenciais insights interessantes para a empresa.

Por fim, este é um exemplo ilustrativo, podemos ver que os degraus da curva são bastante grandes por termos construído-a com poucos dados, mas à medida que o número de amostras aumenta obtém-se um comportamento mais suave e menos ruidoso, consequentemente temos também intervalos de confiança menos abertos que os da figura (área sombreada em azul).

Além do Kaplan-Meier

Modelos paramétricos e semiparamétricos

Vimos que o Kaplan-Meier é um estimador não-paramétrico para a curva de sobrevivência. Apesar do foco que dedicamos aqui a ele, é importante ressaltar que este é apenas um entre diversos estimadores e formas de modelar utilizando análise de sobrevivência. Mas não se desanime, o Kaplan-Meier é bastante útil em diversas situações, principalmente quando queremos estimar e visualizar a sobrevivência para grupos pré definidos. Outro fato positivo está em ser um estimador não-paramétrico, o que flexibiliza a necessidade de conhecer a distribuição geradora dos dados de tempo. O mesmo não pode ser dito para abordagens paramétricas de sobrevivência, onde conhecimento sobre a distribuição geradora de dados e detalhado diagnóstico do modelo são importantes, a custo de, caso ignorados, resultarem em modelos mal especificados, impactando significativamente o negócio.

Modelos paramétricos são bastante úteis quando temos conhecimento sobre a distribuição geradora de dados

Modelos paramétricos (ex.: modelo Weibull, Poisson, Exponencial, etc) e semi-paramétricos (ex.: modelo de Cox), nos permitem incluir variáveis explicativas (features) que possam ter impacto sobre o risco e potencialmente diagnosticar como essas variáveis interagem com os eventos modelados, como por exemplo aumentando ou diminuindo o risco de uma venda acontecer. Isso pode ser bastante poderoso caso o foco da análise seja explicabilidade em detrimento de alto poder preditivo. Entender o que motiva uma venda mais rápida seria um diferencial estratégico significativo versus o mercado, e consequentemente permitiria apostas de produto mais rentáveis.

Além dessas técnicas, existem outras formas de abordar o problema e que se aproximam mais da abordagem de Machine Learning, citada no início do post, com maior foco em predição, estimativas com alta precisão e agregando inúmeras variáveis explicativas na modelagem, em alguns casos a custo de interpretabilidade. De forma breve falarei sobre algumas a seguir.

Modelos de árvore adaptados para análise de sobrevivência

  • Random Survival Forests
  • Conditional Survival Forests
  • XGBoost Cox
  • XGBoost Accelerated Failure Time (AFT)

Para quem está familiarizado com modelos de árvores, Random Survival Forests (RSF) e Conditional Survival Forest (CSF) são adaptações do algoritmo de Random Forests, adicionando a este a capacidade de lidar com dados censurados.

Algorítmos de árvores adaptados ao problema de análise de sobrevivência. Aliando alto poder preditivo e interpretabilidade.

Estes algoritmos de árvores aprendem em sua base de treino quais partições das variáveis disponíveis no conjunto de dados melhor discriminam grupos de sobrevivência distintos. Para isto, os modelos utilizam de testes estatísticos para maximizar a diferença entre curvas de sobrevivências obtidas para diferentes quebras de variáveis. A busca é feita de forma exaustiva até encontrar grupos com curvas de sobrevivência o mais distintas possíveis condicionadas nas variáveis utilizadas no problema. O CSF é uma melhoria implementada sobre o RSF resolvendo um problema de preferência que este tem pela escolha de variáveis contínuas em detrimento de variáveis discretas na hora de selecionar as melhores quebras.

Para quem curte a lib XGBoost, também existem módulos desta que nos permitem modelar dados de sobrevivência utilizando todo o potencial do XGBoost! A biblioteca disponibiliza dois módulos que implementam adaptações de dois modelos conhecidos da Estatística:

  • XGBoost Cox: adaptação da lib sobre o modelo de Cox;
  • XGBoost AFT: adaptação do modelo Accelerated Failure Time (AFT) para funcionar com Gradient Boosting.

Ou seja, temos toda a flexibilidade de modelos de árvore implementados para sobrevivência!

Além de modelos de árvores existem projetos que disponibilizam implementações e adaptações de modelos de sobrevivência utilizando outras abordagens, tal como deep learning. Atualmente, temos uma diversidade significativa de algoritmos que buscam difundir a área de análise de sobrevivência, aliando-a ao poder computacional e preditivo do Machine Learning.

Conclusão

Na Loft, a análise de sobrevivência possibilitou que enxergássemos o problema de modelagem da liquidez de imóveis com outros olhos, contornando problemas como o de viés de seleção, e nos trazendo maior clareza e planejamento sobre o risco de liquidez que nós e nossos clientes estamos tomando ao entrar em um negócio.

O objetivo deste post era apresentar a análise de sobrevivência e explicar seu potencial no mercado imobiliário. No próximo post, apresentaremos uma biblioteca em Python criada pelo nosso time, focada em melhorar o rigor estatístico do XGBoost em análise de sobrevivência, com o objetivo de nos permitir aliar o rigor e explicabilidade da Estatística com o alto foco em predição e performance do Machine Learning.

Teve alguma ideia de como aplicar análise de sobrevivência no seu dia a dia? Conta pra gente!

Até o próximo post.

E aí, ficou com vontade de fazer parte da Loft?

Se inscreva nas nossas vagas! — https://jobs.lever.co/loft/

--

--