理性人房价定价模型(例:西安小寨赛格附近数据)

由于公式渲染问题,贴张渲染好的图

摘要

本报告旨在通过房价定价模型,对特定城市的住宅理论价格进行估值。

模型引入杰弗里·韦斯特(Geoffrey West)与路易斯·贝当古(Luis Bettencourt)的城市标度律(Urban Scaling Laws),设定人口对租金的弹性系数 k=1.25。以 2024 年西安市人口数据及市场参数为基础,测算出在当前国债收益率与流动性环境下,单位平米的理性估值区间

模型

城市标度律

根据 Bettencourt 等人的研究《Growth, innovation, scaling, and the pace of life in cities》,城市并非简单的线性放大,而是具有生物有机体般的标度特征。

  • 超线性标度 (\beta > 1):社会经济产出(GDP、工资、创新专利、犯罪率等)与人口规模呈 Y \propto N^\beta 关系,其中 \beta \approx 1.15 \sim 1.30
  • 本报告设定:取 k=1.25。这意味着人口每增长 1%,由于集聚效应带来的生产率提升,将推动内生性租金(及预期收入)增长 1.25%

理性人定价模型

采用戈登增长模型(Gordon Growth Model)的变体,将房产视为一种产生永续现金流的资产。

P = \frac{NOI}{Cap Rate} = \frac{R \times 12 \times (1 - V) \times (1 - M)}{r_f + L + T - g}

其中增长率 g = k \cdot \Delta P

参数测算与分析

  • 基础月租金 (R): 30 元/平米。
  • 空置率 (V): 10% ------ 反映了摩擦性空置及市场供需错配风险。
  • 运营成本率 (M): 15% ------ 涵盖物业费、取暖费、中介佣金、保险及房屋维修基金摊销。
  • 无风险利率 (r_f): 2.15% ------ 锚定 30 年期超长期特别国债收益率,代表资金的时间价值。
  • 房产税 (T): 0% ------ 暂不考虑持有环节税收。

流动性折价 (L)

由于房产变现周期长(去化周期),且存在价格波动风险,理性投资者要求流动性折价。

当前二线城市二手房平均去化周期较长,假设为 18 个月。相对于 T+0 的股票或债券,房产具有极高的非流动性成本。参考私募地产基金(PERE)标准,流动性溢价通常在 1.5\% \sim 3.0\% 之间。

设定:取 L = 2.25\%

增长率($g$)

人口流入率 (\Delta P)
根据西安统计数据:

  • 2024 年末常住人口:1316.76 万人
  • 当年增量:8.94 万人
  • 人口增长率 (\Delta P)
    $$ \Delta P = \frac{8.94}{1316.76 - 8.94} \approx 0.6836% $$

基于城市标度律弹性系数 k=1.25
$$ g = k \times \Delta P = 1.25 \times 0.6836% \approx 0.8545% $$

注:此为名义增长率,假设通胀环境温和。

计算代码

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

class RealEstateValuation:
    def __init__(self, R, V, M, rf, T, pop_current, pop_increase, k=1.25):
        """
        初始化估值模型参数
        :param R: 月租金 (元/平米)
        :param V: 空置率 (0-1)
        :param M: 维护费用比例 (0-1)
        :param rf: 无风险利率 (0-1)
        :param T: 房产税率 (0-1)
        :param pop_current: 当前年末人口
        :param pop_increase: 当年新增人口
        :param k: 城市标度律弹性系数 (默认为 1.25)
        """
        self.R = R
        self.V = V
        self.M = M
        self.rf = rf
        self.T = T
        self.k = k
        
        # 计算人口增长率 delta_P
        pop_start = pop_current - pop_increase
        self.delta_P = pop_increase / pop_start
        
        # 计算年净营运收入 (NOI)
        self.noi = self.R * 12 * (1 - self.V) * (1 - self.M)

    def calculate_price(self, L):
        """
        计算理性房价
        :param L: 流动性折价/风险溢价 (0-1)
        :return: 估值 (元/平米), 资本化率
        """
        # 增长率 g = k * delta_P
        g = self.k * self.delta_P
        
        # 分母:r_f + L + T - g
        cap_rate = self.rf + L + self.T - g
        
        # 安全检查:防止分母为负或过小 (意味着增长率超过了折现率,导致价格无穷大)
        if cap_rate <= 0.001:
            return np.inf, cap_rate
        
        price = self.noi / cap_rate
        return price, cap_rate

    def sensitivity_analysis(self):
        """
        敏感性分析:流动性折价 (L) vs 人口流入率变化 (Delta P)
        """
        # 设定 L 的变化范围:1.5% 到 3.0%
        l_range = np.linspace(0.015, 0.03, 15)
        
        # 设定人口流入率的变化范围
        # 当前增速约为 0.68%,我们模拟 -0.5% 到 2.0%
        p_growth_range = np.linspace(-0.005, 0.02, 25)
        
        results = np.zeros((len(l_range), len(p_growth_range)))
        
        print(f"{'='*60}")
        print("基准数据分析 (Base Case):")
        print(f"NOI (年净收入): {self.noi:.2f} 元/平米")
        print(f"实际人口增长率:{self.delta_P*100:.4f}%")
        print(f"租金预期增长率 (g): {self.k * self.delta_P * 100:.4f}%")
        print(f"{'='*60}\n")
        
        # 存储用于绘图的数据
        df_heatmap = pd.DataFrame(index=[f"L={x*100:.1f}%" for x in l_range],
                                  columns=[f"ΔP={x*100:.2f}%" for x in p_growth_range])

        for i, l_val in enumerate(l_range):
            for j, p_val in enumerate(p_growth_range):
                # 临时覆盖 delta_P 进行模拟
                original_delta_p = self.delta_P
                self.delta_P = p_val
                
                price, _ = self.calculate_price(l_val)
                results[i, j] = price
                df_heatmap.iloc[i, j] = int(price)
                
                # 恢复 delta_P
                self.delta_P = original_delta_p
        
        return df_heatmap

# ============================
# 执行计算
# ============================

# 输入参数
xi_an_params = {
    'R': 30,             # 月租金 30 元/平米
    'V': 0.10,           # 空置率 10%
    'M': 0.15,           # 维护费 15%
    'rf': 0.0215,        # 30Y 国债 2.15%
    'T': 0.00,           # 税 0%
    'pop_current': 1316.76, # 年末人口
    'pop_increase': 8.94    # 新增人口
}

# 实例化模型
model = RealEstateValuation(**xi_an_params)

# 1. 计算不同流动性折价下的基准估值
liquidity_scenarios = [0.015, 0.0225, 0.030] # 乐观 (1.5%), 中性 (2.25%), 悲观 (3.0%)
print(f"{'流动性折价 (L)':<15} | {'估值 (元/平米)':<15}")
print("-" * 40)
for liq in liquidity_scenarios:
    price, cap_rate = model.calculate_price(liq)
    print(f"{liq*100:.2f}%{' ':<15} | {price:,.2f}")

print("\n")

# 2. 敏感性分析矩阵
df_results = model.sensitivity_analysis()
print("敏感性分析矩阵 (房价估值:元/平米):")
print("行:流动性折价 (L), 列:人口增长率 (ΔP)")
print(df_results)

try:
    plt.figure(figsize=(20, 12))
    sns.heatmap(df_results.astype(float), annot=True, fmt=".0f", cmap="RdYlGn", center=7000)
    plt.title("Housing Valuation Sensitivity: Liquidity(L) vs Pop Growth(ΔP)")
    plt.xlabel("Population Growth Rate")
    plt.ylabel("Liquidity Discount (L)")
    plt.savefig("heatmap.png")
    print("\n[注]:热力图已生成。")
except Exception as e:
    print(e)
    print("绘图库不可用。")

结果


流动性折价 (L) | 估值 (元/平米)

1.50% | 9,851.46
2.25% | 7,767.54
3.00% | 6,411.32


敏感性分析矩阵 (不同人口净增速 不同流动性折价 的 定价结果)

公式渲染有问题,放个图

某平台给的二手房房价地图,看起来离理性价格 7,767.54(偏核心地段) 至少 还有 25% 的跌幅

注:理性价格并非指底部价格,可能回归到理性后企稳,也可能因恐慌继续下跌。

Xian 还是便宜,我附近跟你差不多的 2 线城市 2 万

也是二手房的价格吗,Xian 新房的溢价好像挺高的,我就选了二手房

建模,还挺有意思

二手 9 层以下洋房


(网图)

日本除了东京都市圈,都出现了逆城市化的迹象,特别是大阪都市圈持续收缩。

模型里给西安的人口增速用的是 24 年的(增长挺快的一年)未来不见得能持续。

2 Likes

挤城市里没什么好的。

我在城市边缘,开车 5 分钟能到村镇,可惜买不到“宅基地”,否则平房比鸽子笼住得不要爽太多。

1 Like

富裕国家会靠引入移民支撑人口,中国移民占比仍然很低(远低于儒家文化圈的日本韩国)

https://www.gsm.pku.edu.cn/info/1316/26708.htm

北大光华这篇文章 2023-01-04 发表,当时 30 年期国债收益率是 3.2%

说明上面的模型还是高估了(资本化率按 2.15% + 2.25%-0.85%),
若按 REITs 的市场定价(无套利原则,资本化率使用 2.15% + 2.2%),西安偏核心区域的理性价格应该在6964 元/平米

南华早报有专门的中国房地产板块新闻

  • 《南华早报》(South China Morning Post, SCMP)是香港销量最高的英文报纸
  • 2016 年被阿里巴巴集团收购。

以下是对这两篇报道的总结:

1. 中国房地产市场尚未触底,将持续拖累经济增长约五年

  • 前财政部长楼继伟指出,中国房地产市场目前仍处于下行阶段,尚未见底
  • 房地产行业将在未来大约五年内继续对整体经济增长构成拖累,因其正处于结构性转型期。

2. 房地产不太可能引发系统性金融风险,但需政策应对

  • 尽管大型开发商接连出现流动性危机、导致大量购房者“烂尾楼”问题,楼继伟认为房地产不太可能成为系统性风险源头
  • 但他强调,必须采取积极的财政与货币政策,以抵消房地产低迷带来的负面经济影响。

3. 房地产下行加剧通缩压力,抑制消费

  • 房市疲软已抑制居民消费意愿,并加剧通货紧缩压力
  • 因此,扩张性财政与货币政策需持续一段时间,以稳定经济。

4. 政策重点不应仅是刺激投资与产出,而应推动结构性改革

  • 楼继伟警告,不能一味追求 GDP 或投资增长,必须推进深层次结构性改革
  • 户籍制度(hukou)改革是关键:现有制度将教育、医疗、养老等公共服务与户籍绑定,阻碍了近 3 亿农民工在城市真正融入。
  • 改革户籍制度可释放农民工的住房需求(购房或租房),从而提振房地产市场。

5. 户籍改革面临巨大阻力

  • 尽管改革能刺激内需,但推进难度极大,因为会触及地方政府利益(如土地财政、公共服务分配等)。

6. 建议适时推出全国性房地产税

  • 楼继伟重申其12 年前提出的全国房产税建议
  • 程序性立法基础已在 2022 年前后完成,但因疫情和经济下行压力被推迟实施
  • 未来应在“适当时机”推出,以建立地方财政新支柱、减少对土地出让金的依赖。

7. 官方数据印证房地产对经济的持续拖累

  • 2025 年 1–10 月,固定资产投资同比下降 1.7%,降幅较 1–9 月扩大,主要受房地产投资疲软和基建支出乏力拖累。
  • 10 月新房价格环比下跌 0.5%(70 城平均),为近 12 个月最大跌幅;同比下跌 2.6%。
  • 传统销售旺季(“金九银十”)表现惨淡,仅 6 个城市房价环比上涨。
  • 一线城市(经济较发达)新房价格也环比下跌 0.3%,显示市场信心普遍低迷
  • 背后原因包括:经济放缓、就业前景不确定、购房者信心不足

8. 政策放松效果有限

  • 尽管政府已在三大城市(如北京、上海、广州?)放宽购房限制,但未能有效提振市场
  • 说明单纯放松限购等措施不足以扭转趋势,需更系统性改革与信心重建。

美国的房地产数据

最新日期:2025-11-26
30 年房贷利率:6.23%
30 年美债:4.64%
当前利差:1.59%

import pandas_datareader.data as web
import pandas as pd
import matplotlib.pyplot as plt
import datetime

start_date = datetime.datetime(1971, 4, 2)
end_date = datetime.datetime.now()

# FRED 数据系列 ID
# MORTGAGE30US: 30-Year Fixed Rate Mortgage Average in the United States (周频)
# DGS30: Market Yield on U.S. Treasury Securities at 30-Year Constant Maturity (日频)
series_ids = ['MORTGAGE30US', 'DGS30']

print("正在从 FRED 下载数据,请稍候...")

try:
    # pandas_datareader 可以直接从 FRED 拉取数据
    # 注意:如果你有 FRED API Key,可以使用 os.environ["FRED_API_KEY"] = "YOUR_KEY" 
    # 或者直接调用,通常少量数据不需要 Key 也能下载,如果失败请申请 Key。
    df = web.DataReader(series_ids, 'fred', start_date, end_date)

    # 因为国债是日频 (Daily),房贷利率是周频 (Weekly),数据会有空值 (NaN)。
    # 我们使用前向填充 (ffill) 来填补国债数据的空缺,以匹配房贷数据的发布日。
    df['DGS30'] = df['DGS30'].ffill()

    # 删除 'MORTGAGE30US' 为空的行(只保留房贷利率发布的那些日期)
    df = df.dropna(subset=['MORTGAGE30US'])

    df['Spread'] = df['MORTGAGE30US'] - df['DGS30']

    # ---绘图 ---
    plt.figure(figsize=(12, 6))
    
    # 绘制利差线
    plt.plot(df.index, df['Spread'], label='Spread (Mortgage - 30Y Treasury)', color='#1f77b4', linewidth=1.5)
    
    # 添加平均值线作为参考
    avg_spread = df['Spread'].mean()
    plt.axhline(y=avg_spread, color='r', linestyle='--', alpha=0.7, label=f'Average Spread ({avg_spread:.2f}%)')

    # 添加 0 轴线
    plt.axhline(y=0, color='black', linewidth=0.8)

    # 图表装饰
    plt.title('US 30-Year Mortgage Rate vs 30-Year Treasury Yield Spread', fontsize=16, fontweight='bold')
    plt.ylabel('Spread (Percentage Points)', fontsize=12)
    plt.xlabel('Date', fontsize=12)
    plt.legend(loc='upper right')
    plt.grid(True, which='both', linestyle='--', alpha=0.5)
    
    # 填充颜色,强调利差扩大的区域
    plt.fill_between(df.index, df['Spread'], avg_spread, where=(df['Spread'] > avg_spread), 
                     interpolate=True, color='green', alpha=0.1, label='Above Average')
    plt.fill_between(df.index, df['Spread'], avg_spread, where=(df['Spread'] <= avg_spread), 
                     interpolate=True, color='red', alpha=0.1, label='Below Average')

    plt.tight_layout()
    plt.savefig("US_house_spread.png")

    # 打印最新数据
    latest = df.iloc[-1]
    print(f"最新日期:{latest.name.date()}")
    print(f"房贷利率:{latest['MORTGAGE30US']}%")
    print(f"30 年美债:{latest['DGS30']}%")
    print(f"当前利差:{latest['Spread']:.2f}%")

except Exception as e:
    print(f"发生错误:{e}")
    print("提示:如果遇到网络错误,可能需要配置代理或申请 FRED API Key。")

法拍房案例

西京医院和西交附近

98 平米

房产登记于 2006 年 12 月 31 日

15 次出价,最终 78.5756 万成交

网拍结束时间:2025/09/02

法拍房还是比市场挂牌价更有前瞻性

房租数据

上海北京深圳断崖式领先


房价数据

冰山指数:使用的是挂牌价最低价(比较接近实际成交价,但也给了议价率 9.8% 真实价格也许还得打个九折)




2 Likes

https://www.zhihu.com/pin/1982982755102000666

AI 解读网友观点

这篇文章的作者“一直住顶楼”主要是在给当下想要通过“租售比”(靠收租金回本)逻辑在中国买房投资的人泼冷水

作者的核心观点是:中国房地产正在经历逻辑重构,目前的租售比看起来虽然比以前好了,但按照成熟市场的标准(如美国),依然不具备投资价值,现在入场是错误的,应该等待。

以下是逐条深度解读:

租售比定义

  • 原文观点:中国人算的租售比是“粗糙”的(房租/房价),而美国等成熟市场算的是“净回报率”(扣除房产税、空置期、修缮费、管理费后的纯利)。
  • 解读
    • 你在中国买套房,200 万,年租金 4 万,你觉得自己回报率是 2%。
    • 在美国,所谓 6-7% 的回报率,是扣掉每年约 1%-2% 的房产税、扣掉可能 1 个月没租出去的空置成本、扣掉给中介的管理费之后,真正落到口袋里的钱

租售比不是万能钥匙

  • 原文观点:租售比只在供需和租金稳定的地方有效。有些地方租售比低(房价高租金低),是因为有高增长预期。
  • 解读
    • 房价由两部分决定:居住价值(租金) + 看涨预期
    • 如果你买的是核心区豪宅,大家赌的是它未来翻倍,那么哪怕现在租金回报比较低,大家也愿意买。

租金的不稳定性(风险提示)

  • 原文观点:租金波动大(年化变动可达 10%)。现在租金刚好覆盖房贷利息就买房,是缺乏常识。
  • 解读
    • 比如现在你的房租刚好能抵消月供,你觉得安全了。但如果明年经济不好,房租跌了 10%,或者你要降价才能租出去,你的现金流就断了。

市场反应迟钝(不要指望抄底快)

  • 原文观点:市场对于“租售比”的价值回归反应很慢,比供需关系导致的暴跌要慢得多。
  • 解读
    • 如果是因为没有人买房(供大于求),房价跌起来很快。
    • 但如果是因为“房租太低撑不起房价”,这个下跌过程是阴跌,是漫长的钝刀子割肉。
    • 潜台词:别指望房价跌一点,租售比一划算,市场马上就反弹。这个磨底的过程会以“年”为单位。

高收益陷阱

  • 原文观点:美国有些房子永远是 6-7% 的回报,不会因为回报高就涨价变成 4-5%。
  • 解读
    • 这是一个反直觉的金融常识。在债券或房产中,价格涨 = 收益率跌
    • 如果你买入一个资产,期待它升值,其实你是在期待它的租售比变低(分母变大)。
    • 美国有些区域(通常是贫民区或非核心区),租金回报很高(6-7%),因为大家都不看好那里的未来,觉得风险大、不升值。所以市场这就给它定死了这个低价。
    • 潜台词:即便你看到某些房子租金回报高,也不代表房价会涨。它可能永远就是个收租的“现金奶牛”,甚至本金还会缩水。如果你不懂这个,就别碰房产投资。

极高的交易摩擦成本

  • 原文观点:中国卖房难、税费高、时间长。
  • 解读
    • 买股票,一秒钟卖出,钱到账。
    • 卖房子,挂牌半年,各种税费中介费。
    • 潜台词:流动性是资产定价的重要因素。既然很难变现,现在局势又不明朗,“慢”就是最好的策略

核心结论:你需要“风险溢价”

  • 原文观点:当房价不涨了,合理的租金回报率不应该是“等于房贷利率”,而应该是“房贷利率 + 1%~2%”。
  • 解读:这是全文最核心的金融逻辑。
    • 过去模式:房贷利率 5%,租金回报 1.5%。大家还愿意买,因为指望房价每年涨 10%。
    • 未来模式(日本/美国模式):房价不涨了。那么我买房图什么?图租金收益。
    • 如果房贷利率是 3.5%,那么买房的回报率必须达到 4.5%-5.5% 甚至更高,大家才愿意买。因为买房有风险、有折旧、还有麻烦事。
    • 潜台词:现在中国很多城市的租售比还没跑赢房贷利率,或者刚刚持平。按照国际惯例,房价还需要继续跌,或者租金继续涨,直到租金回报率显著高于银行利息时,才是入场的底。

总结作者的建议:

作者是在劝退当下的抄底者。他认为现在的中国房地产市场正在从**“博取差价模式”“现金流模式”**切换。

在新的模式下,目前的房价依然太贵,因为租金回报率(真实的、扣除成本后的)太低,且没有提供足够的风险溢价。

总结:只要租金回报率没有显著高于银行贷款利率,就不要为了投资而买房,拿着现金等待是最好的选择。

1 Like

全国银行间同业拆借中心发布的贷款市场报价利率(LPR)

LPR 报价 1 年期 5 年期以上
2025-11-20 3.00% 3.50%



  • LPR (Loan Prime Rate) 贷款市场报价利率:是当前中国贷款定价的基准,每月 20 日由全国银行间同业拆借中心公布,包括 1 年期和 5 年期以上两个品种。
  • 加点(Basis Points):银行会在 LPR 基础上根据借款人的资质、地区等因素加点,形成实际的房贷利率
  • 公积金贷款:利率独立于 LPR,由住建部及各地公积金中心制定,有固定的档位,例如 北京住房公积金网 的首套/二套、5 年以下/以上有不同利率。

当前(示例)情况(基于搜索结果的估算,需以最新公告为准):

  • 商业房贷 :可能在 5 年期以上 LPR(例如 3.5%)基础上加点。
  • 公积金房贷:各地不同,例如北京新政后首套房利率 2.6%(5 年以上),二套 3.075% 等。
1 Like

https://zh.cn.nikkei.com/industry/propertiesconstruction/60696-2025-12-12-05-00-55.html

不动产调查公司东京 KANTEI 按都道府县统计了 2024 年新出售的新建住宅楼平均价格(按 70 平方米换算),除以当地的平均年收入,算出了“房价收入比”。日本全国平均值为 10.38 倍,比 2023 年的 10.09 倍有所上升,连续 2 年超过 10 倍。

  • 房价部分:统一换算为70㎡标准公寓的新建平均价格(全国平均约 7000-8000 万日元左右,地方较低但高端项目拉高平均)。
  • 收入部分:使用各都道府县的平均年收入(一人あたり、即个人平均)


其他数据参考:Property Prices Index 2025 Mid-Year


2024 年西安市全体居民人均可支配收入为45082 元,同比增长 5.3%。其中,城镇居民为 53678 元(增长 4.9%),农村居民为 21185 元(增长 6.9%)


  • 日本这几年房价增速显著高于工资增速

  • 45082*10/70 = 6440 元/平

  • 53678*10/70 = 7668 元/平

  • 21185*10/70 = 3026 元/平

1 Like