Introdução

Introdução ao Dataset

A cidade do Recife, capital de Pernambuco, possui um dos mercados imobiliários mais dinâmicos do Brasil. O IPTU (Imposto Predial e Territorial Urbano) é uma das principais fontes de receita da cidade, e sua análise permite compreender diversos aspectos, desde o desenvolvimento urbano até a justiça fiscal. Por isso, vamos explorar os dados coletados do IPTU do ano de 2023 para obter insights sobre a capital pernambucana.

Link do Dataset

Introdução ao Problema

A análise do dataset de IPTU tem como objetivo identificar padrões de tributação, avaliar a equidade na cobrança do imposto e entender o impacto de diferentes características dos imóveis sobre o valor do imposto nos diferentes bairros do Recife. Também buscamos explorar a relação entre os valores de mercado dos imóveis e as diferentes características construtivas, geográficas e de uso.

Pacotes Utilizados

Tabela de Pacotes Utilizados e Seus Motivos
Pacote Motivo
tidyverse Manipulação e visualização de dados
DT & reactable Visualização interativa dos dados
knitr Criação e exibição de tabelas
kableExtra Criar tabelas em conjunto com o knitr
dplyr Manipulação e criação de novas variáveis
tidyr Manipulação de dataframes
ggplot Plot de diferentes gráficos para visualizar os dados tratados

Carregando o Dataset

Primeiramente, é necessário importar o dataset. Para isso, foi preciso compreender a estrutura do conjunto de dados, como a maneira com que são delimitadas as células, números decimais e caracteres especiais. Isso evitará futuros problemas, durante a manipulação e exibição.

Vide uma sample da base de dados carregada:

# Exibindo uma amostra dos dados
reactable(iptu_dataset[5:25, ],
            defaultColDef = colDef(
              header = function(value) gsub(".", " ", value, fixed = TRUE),
              cell = function(value) format(value, nsmall = 1),
              align = "left",
              minWidth = 130,),
            searchable=T, 
            sortable=T, 
            striped=T, 
            bordered=T, 
            defaultPageSize=7)

Veja que existem poucas colunas com valores vazios. As colunas tipo de contribuinte e complemento possuem muitos valores vazios e não serão necessárias.

Contagem de NAs por coluna
Coluna Contagem_de_NAs
numero do contribuinte 0
ano do exercicio 0
data do cadastramento 0
tipo de contribuinte 37053
CPF/CNPJ mascarado do contribuinte 0
logradouro 0
numero 0
complemento 145315
bairro 0
cidade 0
estado 0
fracao ideal 0
AREA TERRENO 0
AREA CONSTRUIDA 0
area ocupada 0
valor do m2 do terreno 0
valor do m2 de construcao 1
ano da construcao corrigido 0
quantidade de pavimentos 0
tipo de uso do imovel 0
tipo de padrao da construcao 0
fator de obsolencia 1
ano e mes do inicio da contribuicao 0
valor total do imovel estimado 0
valor cobrado de IPTU 0
CEP 0
Regime de Tributacao do iptu 0
Regime de Tributacao da trsd 0
Tipo_de_Construcao 0
Tipo_de_Empreendimento 0
Tipo de Estrutura 0
Logradouro 0

Tratamento dos Dados

Primeiramente, para utilizar o conjunto de dados, é necessário realizar a limpeza deles. Seja removendo células incompletas, registros inválidos ou colunas não importantes para a natureza do projeto.

Colunas Selecionadas

Colunas utilizadas:

Normalização dos dados

Foi necessário formatar a data de cadastramento e filtrar algumas construções por Tipo de Empreendimento e Regime de Tributação.

# Filtrar o dataset para manter apenas o regime de tributação "Normal"
# e os tipos de empreendimento "Casa" ou "Apartamento"
iptu_limpo <- iptu_limpo %>%
  filter(`Regime de Tributacao do iptu` == "Normal" & 
         `Tipo_de_Empreendimento` %in% c("Casa", "Apartamento"))

Análise Exploratória dos Dados

Distribuição do Valor Total por m²

A análise da distribuição do valor por metro quadrado ajuda a identificar a faixa de valores predominante no mercado. Para isso, foi criada a variável valor_m2_total que é a soma entre o valor do m² do terreno e o valor da construção.

iptu_dataset <- iptu_dataset %>%
  mutate(valor_m2_total = `valor do m2 do terreno` + `valor do m2 de construcao`)

# Gráfico de Distribuição do valor total por m²
ggplot(iptu_dataset, aes(x = valor_m2_total)) +
  geom_histogram(bins = 30, fill = "blue", color = "black") +
  labs(title = "Distribuição do Valor Total por m²", x = "Valor Total por m²", y = "Frequência")

É possível perceber neste histograma que há uma distribuição assimétrica à direita, com a maioria dos imóveis concentrados em valores menores. Isso indica que a maioria dos imóveis possui um valor por m² relativamente baixo, enquanto há um número reduzido de imóveis com valores muito mais altos. Essa constatação parece óbvia, mas é importante destacar a disparidade socioeconômica vigente na metrópole pernambucana.

Ranking de Bairros

Podemos, também, ver quais bairros são mais caros ou baratos em termos de valor do m².

# Calculando o valor médio do m² por bairro
ranking_bairros_valor_m2 <- iptu_dataset %>%
  group_by(bairro) %>%
  summarise(valor_medio_m2 = mean(valor_m2_total, na.rm = TRUE))

# Exibindo a tabela de bairros mais caros
kable(ranking_bairros_valor_m2 %>% arrange(desc(valor_medio_m2)) %>% head(10),
      caption = "Top 10 Bairros Mais Caros") %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = F) %>%
  column_spec(1, bold = T)
Top 10 Bairros Mais Caros
bairro valor_medio_m2
SANTO ANTONIO 42876.49
BOA VISTA 31544.98
SOLEDADE 30104.48
BOA VIAGEM 27046.51
ESPINHEIRO 21029.60
DERBY 20940.72
GRACAS 20002.14
PINA 19307.20
AFLITOS 17105.33
SANTO AMARO 15403.00
# Exibindo a tabela de bairros mais baratos
kable(ranking_bairros_valor_m2 %>% arrange(valor_medio_m2) %>% head(10),
      caption = "Top 10 Bairros Mais Baratos") %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = F) %>%
  column_spec(1, bold = T)
Top 10 Bairros Mais Baratos
bairro valor_medio_m2
PASSARINHO 1053.607
COHAB 1125.317
COQUEIRAL 1209.943
DOIS UNIDOS 1214.645
CORREGO DO JENIPAPO 1254.983
SITIO DOS PINTOS 1276.877
BREJO DA GUABIRABA 1286.421
ALTO SANTA TEREZINHA 1414.756
BREJO DE BEBERIBE 1415.948
GUABIRABA 1445.285

Vemos que Santo Antônio é o bairro mais caro, com um valor médio de aproximadamente R$ 43 mil e Passarinho é o bairro mais barato, com um valor médio de aproximadamente R$ 1050.

Índice de Equidade Tributária

Esse índice é obtido pela razão entre o valor do IPTU e o valor total do imovel. Esse dado permite avaliar a justiça fiscal por bairro, identificando disparidades.

Para melhor visualização, foram selecionados os 10 bairros com mais registros no dataset.

# Variável 'indice_equidade_tributaria': relação do valor cobrado de IPTU com o valor total do imóvel
iptu_dataset <- iptu_dataset %>%
  mutate(indice_equidade_tributaria = `valor cobrado de IPTU` / `valor total do imovel estimado`)

# Filtrar para os 10 bairros com maior número de registros
bairros_mais_frequentes <- iptu_dataset %>%
  count(bairro, sort = TRUE) %>%
  top_n(10, n) %>%
  pull(bairro)

# Filtrar o dataset para incluir apenas os bairros mais frequentes
iptu_filtrado <- iptu_dataset %>%
  filter(bairro %in% bairros_mais_frequentes)

# Gráfico: Índice de Equidade Tributária para os Top 10 bairros mais frequentes
ggplot(iptu_filtrado, aes(x = reorder(bairro, -indice_equidade_tributaria), y = indice_equidade_tributaria)) +
  geom_boxplot(fill = "lightblue") +
  labs(title = "Índice de Equidade Tributária por Bairro", x = "Bairro", y = "Índice de Equidade Tributária") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Em geral, é possível perceber que os bairros com maiores números de registro de IPTU, são, também bairros mais desenvolvidos e caros. Apesar disso, percebemos, a partir do boxplot, a presença de outliers. O que pode sugerir algumas coisas: * Características específicas: Imóveis particulares, como grandes áreas, localização privilegiada ou construções históricas, podem ter valores de IPTU diferentes dos demais. * Mudanças recentes no mercado imobiliário: Aumentos ou reduções recentes nos valores dos imóveis podem gerar outliers temporários.

E os bairros com um grande índice, como as Graças, Boa Viagem e Madalena, possuem uma caixa mais alta. Em outras palavras, esses bairros tendem a ter valores mais altos de IPTU em relação ao valor total do imóvel, indicando uma maior carga tributária.

Índice de Renovação Urbana

# Variável 'indice_renovacao_urbana': inverso da idade média das construções
iptu_dataset <- iptu_dataset %>%
  mutate(idade_construcao = 2023 - `ano da construcao corrigido`)

# Filtrar o dataset para incluir apenas os bairros mais frequentes
iptu_filtrado <- iptu_dataset %>%
  filter(bairro %in% bairros_mais_frequentes)

# Visualização do Índice de Renovação Urbana dos 10 maiores bairros por IPTU
ggplot(iptu_filtrado, aes(x = reorder(bairro, -idade_construcao), y = idade_construcao)) +
  geom_boxplot(fill = "lightgreen") +
  labs(title = "Idade Média das Construções por Bairro", x = "Bairro", y = "Idade das Construções (anos)") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

  • Distribuição da Idade das Construções:
    • O bairro da Boa Vista apresenta construções com idades medianas maiores, indicando que há muitas construções antigas. Isso pode sugerir uma menor taxa de renovação urbana, com menos edifícios novos sendo construídos ou substituídos.
    • Bairros como Cordeiro e Iputinga têm medianas de idade das construções mais baixas, o que sugere que esses bairros possuem construções mais recentes em média, indicando uma maior taxa de renovação urbana.
  • Variação Dentro dos Bairros:
    • Há uma variação considerável nas idades das construções dentro de cada bairro. Por exemplo, Boa Vista apresenta uma ampla faixa de idades, desde construções bastante novas até muito antigas, o que indica diversidade no desenvolvimento urbano.
    • Em contrapartida, bairros como Cordeiro e Madalena apresentam uma menor variação nas idades das construções, sugerindo que as propriedades foram construídas em períodos mais concentrados e, como podemos ver, mais recentes.

Conclusão

A análise dos dados de IPTU da cidade do Recife revelou insights importantes sobre a distribuição do valor imobiliário, as características das construções e o impacto dos diferentes padrões de edificação no valor dos imóveis. Observamos que a maioria das propriedades possui valores por metro quadrado relativamente baixos, sugerindo uma predominância de imóveis em áreas menos valorizadas ou construções de padrão mais simples. Entretanto, também identificamos outliers que representam propriedades de alto valor, possivelmente localizadas em áreas nobres. Os índices de equidade tributária e renovação urbana evidenciam a distribuição econômica dos imóveis e como isso pode influenciar políticas públicas futuras para um desenvolvimento mais equilibrado e sustentável da cidade. Bairros com os valores por metro quadrado mais altos destacaram-se em áreas tradicionais e de alta demanda, enquanto os mais baratos estão em regiões periféricas ou menos desenvolvidas. Além disso, a avaliação da idade média das construções por bairro indicou variações significativas no nível de renovação urbana, com alguns bairros apresentando imóveis mais novos e outros mantendo construções mais antigas, o que pode refletir diferentes fases de desenvolvimento e políticas urbanas locais.