O Japão enfrenta nos últimos anos uma crise demográfica conhecida como Shoushikoreika (envelhecimento da população e baixa natalidade). Simultaneamente, o fenômeno de Akiya (casas abandonadas) vem se tornando um problema notório em diversas províncias, afetando a economia e o planejamento urbano local.
O foco principal desse projeto é analisar a correlação entre o envelhecimento populacional e a taxa de vacância imobiliária nas 47 províncias japonesas. A hipótese é que as províncias com maior proporção de idosos tendem a ter uma taxa maior de imóveis abandonados.
Para realizar esta análise, utilizarei os seguintes pacotes do R:
library(tidyverse)
library(knitr)
O pacote tidyverse vai conter as principais ferramentas de análise de dados necessárias para a limpeza e análise dos CSVs, usaremos especificamente: readr, dplyr e ggplot2, enquanto o pacote knitr é utilizado para a formatação do próprio R markdown.
Os dados demográficos foram obtidos do Portal de Estatísticas Oficiais no Japão e-stat, especificamente o censo populacional de 2020 em conjunto com o levantamento de habitação e terras, o conjunto de dados original contêm a população total e a segmentação por faixa etária de cada província.
O arquivo original (populacao.csv) possui metadados nas
primeiras 14 linhas e utiliza códigos de área mistos. Para preparar
esses dados para a análise, realizaremos as seguintes etapas:
skip para ignorar o cabeçalho.Sex Code = "0": Para considerar ambos os sexos
(Total).Nationality Code = "0": Para incluir japoneses e
estrangeiros (Total).Area Code: Apenas províncias (excluindo o total
nacional).aging_rate, dividindo a população de 65+ pela população
total.pop_data <- read_csv("populacao.csv", skip = 14, show_col_types = FALSE)
pop_clean <- pop_data %>%
select(
area_code = `Japan, Prefectures (DIDs) Code`,
province = `Japan, Prefectures (DIDs)`,
sex_code = `Sex Code`,
nation_code = `All nationality or Japanese Code`,
pop_total = `Total`,
pop_65_more = `(Recount) 65 years old and over`
) %>%
filter(sex_code == "0", nation_code == "0", area_code != "00000" & str_detect(area_code, "000$")) %>%
mutate(
pop_total = as.numeric(str_remove_all(pop_total, ",")),
pop_65_more = as.numeric(str_remove_all(pop_65_more, ",")),
aging_rate = (pop_65_more / pop_total) * 100
) %>%
select(area_code, province, pop_total, pop_65_more, aging_rate)
head(pop_clean) %>%
kable(caption = "Tabela 1: Primeiras linhas dos dados de População processados")
| area_code | province | pop_total | pop_65_more | aging_rate |
|---|---|---|---|---|
| 01000 | Hokkaido | 3973007 | 1183622 | 29.79159 |
| 02000 | Aomori-ken | 587023 | 173143 | 29.49510 |
| 03000 | Iwate-ken | 400246 | 106015 | 26.48746 |
| 04000 | Miyagi-ken | 1508978 | 359829 | 23.84587 |
| 05000 | Akita-ken | 340699 | 106745 | 31.33118 |
| 06000 | Yamagata-ken | 492405 | 140776 | 28.58947 |
Para complementar a análise demográfica vamos utilizar os dados da Housing and Land Survey disponíveis no e-Stat. O objetivo dessa etapa é quantificar o fenômeno das Akiya em cada região.
O arquivo original (habitacao.csv) contém o número total
de domicílios e o número de residências classificadas como “vacant”
(vagas). O processo de preparação dos dados vai seguir os seguintes
passos para garantir a consistência com o conjunto de dados
populacional:
skipakiya_rate dividindo
o número de casas vagas pelo número total de casas.housing_data <- read_csv("habitacao.csv", skip = 13, show_col_types = FALSE)
housing_clean <- housing_data %>%
select(
area_code = `Japan, Prefectures, 21 Major Cities Code`,
province = `Japan, Prefectures, 21 Major Cities`, # Adicionamos esta coluna
total_housing = `Total`,
vacant = `Vacant`
) %>%
filter(area_code != "00000" & str_detect(area_code, "000$")) %>%
mutate(
total_housing = as.numeric(str_remove_all(total_housing, ",")),
vacant = as.numeric(str_remove_all(vacant, ",")),
akiya_rate = (vacant / total_housing) * 100
)
nrow(housing_data)
## [1] 69
head(housing_clean) %>%
kable(caption = "Tabela 2: Primeiras linhas dos dados de Habitação processados")
| area_code | province | total_housing | vacant | akiya_rate |
|---|---|---|---|---|
| 01000 | Hokkaido | 2888500 | 451900 | 15.64480 |
| 02000 | Aomori-ken | 590300 | 98800 | 16.73725 |
| 03000 | Iwate-ken | 579400 | 100400 | 17.32827 |
| 04000 | Miyagi-ken | 1129200 | 140300 | 12.42473 |
| 05000 | Akita-ken | 440600 | 69500 | 15.77394 |
| 06000 | Yamagata-ken | 455400 | 61700 | 13.54853 |
Para analisar a correlação demografia-habitação é necessário unificar ambos conjuntos processados anteriormente em um único dataframe
Como ambos conjuntos utilizam o código de área padronizado pelo
governo japonês, utilizaremos a variável code_area como
primary key para a junção (left join). Isso garante que os
indicadores de envelhecimento de uma província sejam associados
corretamente aos seus respectivos dados de vacância imobiliária.
df_final <- left_join(pop_clean, housing_clean, by = "area_code")
df_final <- df_final %>%
select(
area_code,
province = province.x,
pop_total,
pop_65_more,
aging_rate,
total_housing,
vacant,
akiya_rate
)
print(paste("Número de linhas no dataset final:", nrow(df_final)))
## [1] "Número de linhas no dataset final: 47"
head(df_final) %>%
kable(caption = "Tabela 3: Dataset final unificado contendo dados demográficos e habitacionais")
| area_code | province | pop_total | pop_65_more | aging_rate | total_housing | vacant | akiya_rate |
|---|---|---|---|---|---|---|---|
| 01000 | Hokkaido | 3973007 | 1183622 | 29.79159 | 2888500 | 451900 | 15.64480 |
| 02000 | Aomori-ken | 587023 | 173143 | 29.49510 | 590300 | 98800 | 16.73725 |
| 03000 | Iwate-ken | 400246 | 106015 | 26.48746 | 579400 | 100400 | 17.32827 |
| 04000 | Miyagi-ken | 1508978 | 359829 | 23.84587 | 1129200 | 140300 | 12.42473 |
| 05000 | Akita-ken | 340699 | 106745 | 31.33118 | 440600 | 69500 | 15.77394 |
| 06000 | Yamagata-ken | 492405 | 140776 | 28.58947 | 455400 | 61700 | 13.54853 |