Julia求解瓦尔拉斯一般均衡:awesome-econ-ai-stuff的GE模型构建与比较静态分析实战

【免费下载链接】awesome-econ-ai-stuff

AI Skills for Economists

项目地址: https://gitcode.com/gh_mirrors/aw/awesome-econ-ai-stuff
点击查看 免费下载

awesome-econ-ai-stuff 是面向经济学家的 AI 技能库(AI Skills for Economists),其中的 general-equilibrium-model-builder 技能可以帮你在 Julia 中快速构建并数值求解 Walrasian 一般均衡(GE)模型,还能自动完成比较静态分析。本文以 2×2 纯交换经济体为例,带你从零走完「定义经济体 → 求解均衡价格 → 验证市场出清 → 禀赋冲击实验」的完整实战流程 📊

📦 快速安装:3 步搭建 Julia 均衡求解环境

1. 克隆仓库并安装技能

git clone https://gitcode.com/gh_mirrors/aw/awesome-econ-ai-stuff
cd awesome-econ-ai-stuff

# 以 Claude Code 为例,把技能复制到工具目录
mkdir -p ~/.claude/skills
cp -r _skills/theory/general-equilibrium-model-builder ~/.claude/skills/

技能的完整说明位于 SKILL.md,遵循开放的 SKILL.md 标准,同时兼容 Cursor、Codex、Gemini CLI 等 AI 编码工具(完整兼容列表见 README.md)。

2. 安装 Julia 与求解依赖

要求 Julia 1.9+,在 REPL 中执行:

using Pkg
Pkg.add(["NLsolve", "LinearAlgebra", "Plots", "ForwardDiff"])
包用途
NLsolve非线性方程求解器,求解超额需求 z(p) = 0
LinearAlgebra向量 / 矩阵运算
Plots可视化(如 Edgeworth 盒子图)
ForwardDiff自动微分,计算 Jacobian

🧩 构建 2×2 纯交换经济体:偏好、禀赋与经济结构

纯交换经济体由每位消费者的「效用函数 + 初始禀赋」共同刻画。技能生成模型前,会先向你确认 5 个关键信息:商品数、消费者数、偏好类型、禀赋向量、输出形式(见 SKILL.md 第 1 步)。

本文的示例经济体设定如下:

消费者效用函数(Cobb-Douglas)初始禀赋 ω
消费者 1u(x,y) = x^0.6 · y^0.4(4, 1)
消费者 2u(x,y) = x^0.3 · y^0.7(1, 4)

经济学逻辑很直白:给定价格 p,每位消费者在预算约束下求解效用最大化 $\max u(x)$ s.t. $p \cdot x \leq p \cdot \omega$,解出 Marshallian 需求;再把所有人的「需求 − 禀赋」加总,得到超额需求函数 $z(p)$。Walrasian 均衡就是令 $z(p^*) = 0$ 的价格与配置组合(定义见 SKILL.md 第 3 步)。

用 PureExchangeEconomy 结构体,只需 8 行代码就能把整个经济体「装」进模型(完整骨架见 SKILL.md 代码段):

economy = PureExchangeEconomy(
    2,                           # 2 种商品
    2,                           # 2 位消费者
    [4.0 1.0; 1.0 4.0],         # 禀赋矩阵
    [[0.6, 0.4], [0.3, 0.7]],   # Cobb-Douglas 参数
    :cobb_douglas
)

🎯 用 Julia 求解 Walrasian 均衡价格:归一化与超额需求

求解器的数值策略只有 4 步(见 SKILL.md 数值求解策略):

  1. 价格归一化:价格只确定到标量倍数,令 p₁ = 1 作为计价物
  2. 降维:由 Walras 法则 $p \cdot z(p) = 0$,只需解 $z_2(p) = 0$
  3. 牛顿法迭代:nlsolve + 前向自动微分求 Jacobian
  4. 价格为正:采用对数价格参数化,保证迭代过程中不越界

核心入口只有两个函数(实现见 solve_equilibrium):

p_star = solve_equilibrium(economy)                  # 求解均衡价格
x_star = equilibrium_allocations(p_star, economy)    # 计算均衡配置

✅ 验证三步法:市场出清、Walras 法则与帕累托效率

数值解不能只看「收敛」二字,三步验证全部内置(最佳实践见 SKILL.md 第 370 行起):

检查项做法判定标准
市场出清比较总配置 Σx* 与总禀赋isapprox 返回 true
Walras 法则数值计算 p*·z(p*)应 ≈ 0
帕累托效率检查各消费者 MRS₁₂ 是否相等相等即位于契约曲线
mrs = check_pareto_efficiency(x_star, economy)  # 两个 MRS 应相等

运行 examples/pure_exchange_2x2.jl 后,控制台会依次打印均衡价格、两位消费者的均衡配置与福利变化,并以 ✓ / ✗ 标记市场出清、Walras 法则与 MRS 相等性,最后自动生成 Edgeworth 盒子图——同时展示禀赋点、均衡点、预算线与契约曲线(绘图逻辑见 plot_edgeworth_box)。

📈 比较静态分析:禀赋冲击如何改变均衡价格

examples/comparative_statics.jl 把「参数实验」做成了可复用函数:endowment_shock_analysis(第 102-161 行)在指定的冲击区间上批量重新求解均衡,记录价格比 p₂/p₁、配置与效应的变化,plot_comparative_statics(第 168-242 行)自动生成 2×2 布局的响应曲线图。脚本内置 3 组实验:

  1. 实验 1:增加消费者 1 的商品 1 禀赋 → 商品 1 相对更便宜,价格比 p₂/p₁ 上升,双方都向商品 1 替代
  2. 实验 2:增加消费者 2 的商品 2 禀赋 → 价格比 p₂/p₁ 下降,消费者 2 财富上升
  3. 实验 3:总禀赋不变的总赋转移 → 价格与福利分配同时改变,但每个均衡仍是帕累托有效

运行后脚本会输出一条「关键洞察」清单:

  • 某商品供给增加 ⇒ 其相对价格下降
  • 禀赋冲击同时影响价格与配置,二者不可分割
  • 转移改变福利分配,但所有均衡都是帕累托有效的
  • 一般均衡能捕捉局部均衡遗漏的溢出效应

⚠️ 新手常见陷阱与调优清单

技能文档总结了 5 个高频错误(见 SKILL.md Common Pitfalls):

  • ❌ 忘记价格归一化——价格只确定到标量倍数
  • ❌ 漏查角点解(某商品消费为零的情形)
  • ❌ 忽略边界附近(p → 0)的数值精度问题
  • ❌ 未验证唯一性就假设均衡唯一(多均衡是可能的)
  • ❌ 混淆 Marshallian 需求与 Hicksian 需求

💡 求解器不收敛时的调优思路:换多个初始值 p0 重试,或收紧容差参数 tol=1e-10。

📚 延伸阅读:相关技能与文档

该技能的当前版本聚焦纯交换经济,官方路线图计划扩展到生产经济、Arrow-Debreu 不确定性模型、OLG 与 CGE 可计算一般均衡(见 SKILL.md Extensions),值得持续关注 🔭

【免费下载链接】awesome-econ-ai-stuff

AI Skills for Economists

项目地址: https://gitcode.com/gh_mirrors/aw/awesome-econ-ai-stuff
点击查看 免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值