アパート売買価格指数とアパートの在庫数の相関関係分析:Pythonでデータを可視化する
不動産市場において、アパート在庫数とアパート売買価格指数は、市場状況を理解するための重要な指標です。二つの指標の関係を分析することで、需要と供給の相互作用だけでなく、経済的要因も把握することができます。
今回は、Pythonを活用して2000年から2023年までのアパート在庫と売買価格指数のデータを可視化し、2つの変数間の相関関係を分析する方法を紹介します。分析とグラフを通じて、不動産市場の主要なトレンドとインサイトを確認することができます。
1.データの概要と定義
アパートの在庫数
- 一世帯が住めるように建てられたアパートの数を表します。
- 要件:恒久的な建物、1つ以上の部屋とキッチン、独立した出入り口、慣習的に所有または売買単位などの条件を備えたアパート。
- 出典: 統計庁「住宅総調査」。
マンション売買価格指数
- 基準時点(2021年6月)の住宅売買価格を100とした価格指数です。
- 解釈
- 指数が100より高い場合、基準時点と比較して価格上昇。
- 指数が100より低い場合、基準時点と比較して価格下落。
- 出典: 韓国鑑定院、「全国住宅価格動向調査」。
2.データテーブル
アパート在庫数 (2000-2022)
| 年 | ’00 | ’05 | ’10 | ’15 | ’16 | ’17 | ’18 | ’19 | ’20 | ’21 | ’22 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 在庫数(号) | 5,479,828 | 6,962,689 | 8,576,013 | 9,806,062 | 10,029,644 | 10,375,363 | 10,826,044 | 11,287,048 | 11,661,851 | 11,948,544 | 12,268,973 |
アパート売買価格指数 (2014-2023)
| 年 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 |
|---|---|---|---|---|---|---|---|---|---|---|
| インデックス | 80.9 | 84.2 | 86.1 | 87.1 | 87.8 | 86.2 | 88.9 | 100.0 | 106.0 | 92.7 |
3.可視化と分析
マンション在庫数推移分析(2000-2022年)(2000-2022年

- 2000年約5.48Mから2022年約12.27Mで約2倍に増加。
- 特に2010年以降、在庫の増加速度が速くなっています。
アパート売買価格指数トレンド分析 (2014-2023)

- 2014年の80.9から2022年に最高値(106)に達した後、2023年には指数92.7まで低下しました。
- 金利上昇と景気減速による下落の可能性が高いです。
4.相関関係分析
相関散布図

- 相関係数 0.82で、アパート在庫と売買価格指数との間に強い正の相関関係を示しています。
- p-valueは0.0136で統計的に有意であり、2つの変数間の関係が偶然ではないことを示唆しています。
相関行列ヒートマップ

- ヒートマップで2つの変数間の相関係数(0.82)が明確に表示されます。
5.完全なPythonコード
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
from scipy import stats
# データ作成
apartment_stock = pd.DataFrame({
'year'を指定します:[2000年、2005年、2010年、2015年、2016年、2017年、2018年、2019年、2020年、2021年、2022年]、
'stock':[5479828, 6962689, 8576013, 9806062, 10029644, 10375363, 10826044, 11287048, 11661851, 11948544, 12268973].
})
price_index = pd.DataFrame({ {
'year':[2014、2015、2016、2017、2018、2019、2020、2021、2022、2023]、
'index':[80.9, 84.2, 86.1, 87.1, 87.1, 87.8, 86.2, 88.9, 100.0, 106.0, 92.7].
})
# サブプロットで図形を作成します。
plt.figure(figsize=(12, 12))
# 1.マンションストック推移
plt.subplot(2, 1, 1)
plt.plot(apartment_stock['year'], apartment_stock['stock'], marker='o', linewidth=2, color='#3498db')
plt.title('マンションストック推移(2000-2022)', pad=15, fontsize=14)
plt.xlabel('Year', fontsize=12)
plt.ylabel('戸数', fontsize=12)
plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda x, p: format(int(x/1000000), ',') + 'M'))
plt.grid(True, linestyle='--', alpha=0.7)
plt.xticks(rotation=45)
# 値ラベルを追加
for x, y in zip(apartment_stock['year'], apartment_stock['stock']):
plt.annotate(f'{y:,.0f}'、
(x,y)です、
textcoords="オフセットポイント"、
xytext=(0,10)、
ha='center'、
fontsize=8)
# 2.物価指数の推移
plt.subplot(2, 1, 2)
plt.plot(price_index['year'], price_index['index'], marker='o', color='#e74c3c', linewidth=2)
plt.title('マンション価格指数推移(2014-2023)', pad=15, fontsize=14)
plt.xlabel('Year', fontsize=12)
plt.ylabel('Price Index (2021.6=100)', fontsize=12)
plt.grid(True, linestyle='--', alpha=0.7)
plt.xticks(rotation=45)
# 値ラベルを追加
for x, y in zip(price_index['year'], price_index['index']):
plt.annotate(f'{y:.1f}'、
(x,y)です、
textcoords="オフセットポイント"、
xytext=(0,10)、
ha='center'、
fontsize=8)
plt.tight_layout()
plt.show()
# 相関分析
# 重複する年のデータセットをマージする
merged_data = pd.merge(apartment_stock, price_index, on='year', how='inner')
merged_data.columns = ['Year', 'Stock', 'Price_Index'].
# 相関の可視化を作成
plt.figure(figsize=(15, 5))
# 1.回帰線付き散布図を作成します。
plt.subplot(1, 2, 1)
sns.regplot(x='Stock', y='Price_Index', data=merged_data, color='#2ecc71')
plt.title('Stock vs Price Index Correlation', pad=15, fontsize=14)
plt.xlabel('Number of Units', fontsize=12)
plt.ylabel('Price Index', fontsize=12)
plt.gca().xaxis.set_major_formatter(plt.FuncFormatter(lambda x, p: format(int(x/1000000), ',') + 'M'))
# 相関係数とp値を計算します。
correlation_coefficient, p_value = stats.pearsonr(merged_data['Stock'], merged_data['Price_Index'])
# プロットに相関情報を追加する
plt.text(0.05, 0.95, f'Correlation: {correlation_coefficient:.2f}\np-value: {p_value:.4f}'、
transform=plt.gca().transAxes、
fontsize=10、
verticalalignment='top')
# 2.相関行列のヒートマップ
plt.subplot(1, 2, 2)
correlation_matrix = merged_data[['Stock', 'Price_Index']].corr()
sns.heatmap(correlation_matrix、
annot=True、
cmap='coolwarm'、
vmin=-1、
vmax=1、
center=0、
fmt='.2f'、
square=True)
plt.title('Correlation Matrix Heatmap', pad=15, fontsize=14)
plt.tight_layout()
plt.show()6.コード詳細解説
1.データ生成
apartment_stock = pd.DataFrame({...}) price_index = pd.DataFrame({...})
apartment_stock:2000年から2022年までのアパート在庫データを作成。price_index:2014年から2023年までの売買価格指数データを作成。2.可視化
アパートの在庫動向
plt.subplot(2, 1, 1) plt.plot(apartment_stock['year'], apartment_stock['stock'], ...)
plt.plot在庫データを折れ線グラフで表示。注釈をつける: 各データポイントに値ラベルを追加します。売買価格指数推移
plt.subplot(2, 1, 2) plt.plot(price_index['year'], price_index['index'], ...)
plt.plot売買価格指数データを折れ線グラフで表示。3.相関関係分析
散布図
sns.regplot(x='Stock', y='Price_Index', data=merged_data, color='#2ecc71')
sns.regplot在庫と価格の間の散布図を描き、回帰線を追加。- 相関係数とp-valueをテキストでグラフに追加して、相関関係の有意性を強調。
相関行列ヒートマップ
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', ...)
sns.heatmap: 相関係数をヒートマップで可視化。
7.洞察と結論
トレンドの概要
- マンション在庫と売買価格指数は着実に上昇傾向を示し、最近下落。
- 在庫の増加は売買価格指数の上昇と関連しており、これは不動産市場の主要な特徴を反映しています。
政策的意味合い
- 在庫供給管理継続的な供給拡大は売買価格の安定化に貢献する可能性が高い。
- 金利変化への対応: 金利引き上げなどの外部要因は市場に大きな影響を与える可能性があり、政策的な調整が必要。
Pythonデータの可視化を活用した今回の分析は、不動産市場の動向を理解し、より良い政策設計のための基礎資料として活用することができます。データに基づいた意思決定により、不動産市場の安定性を図る必要があります。
ちなみに、エラーバーグラフをご存知ですか? エラーバーグラフとエラーバーの意味:Pythonでデータの信頼性を視覚化する ポストを通じて関連内容を確認し、関連知識をアップグレードしてください!






