JP / EN

Scarf's Economic Equilibrium Problem

スカーフの経済均衡問題と補助項による正則化

\[ G_i(x) = F_i(x) + \left( \sum_{j=1}^3 x_j - 1 \right) = 0 \]

Modified Equation using Auxiliary Term
Original Excess Demand: $F_i(x)$

1. はじめに

ハーバート・スカーフ(Herbert Scarf)による経済均衡問題の計算アルゴリズムは、応用一般均衡分析(CGE)の基礎を築き、不動点定理の計算機実装における重要なマイルストーンとなりました。

今回は、一般均衡理論における古典的なベンチマーク問題である「スカーフの例題(Scarf's Example)」を取り上げます。この問題は、経済モデル特有の性質により単純な反復法では解けない(行列が特異になる)という数学的な難所を持っています。

本稿では、方程式に特殊な補助項(Auxiliary Term)を導入して正則化を行い、ホモトピー法(Homotopy Method)を用いて大域的に解を探索した結果を報告します。

2. スカーフの一般均衡モデル

3つの財($x_1, x_2, x_3$)が存在する純粋交換経済を考えます。各財の価格を $x = (x_1, x_2, x_3)$ としたとき、市場における超過需要関数(Excess Demand Function) $F_i(x)$ は以下のように定義されます。

\[ \begin{cases} F_1(x) = \displaystyle \frac{x_3^\alpha}{x_1^\alpha + x_3^\alpha} - \frac{x_1^\alpha}{x_1^\alpha + x_2^\alpha} \\[10pt] F_2(x) = \displaystyle \frac{x_1^\alpha}{x_1^\alpha + x_2^\alpha} - \frac{x_2^\alpha}{x_2^\alpha + x_3^\alpha} \\[10pt] F_3(x) = \displaystyle \frac{x_2^\alpha}{x_2^\alpha + x_3^\alpha} - \frac{x_3^\alpha}{x_3^\alpha + x_1^\alpha} \end{cases} \]

ここで、$F_i(x) > 0$ ならば需要過多、$F_i(x) < 0$ ならば供給過多を表します。市場が均衡する、すなわちすべての財で需給が一致する価格ベクトル $x$ ($F(x)=0$)を見つけることが目的です。

3. 数学的困難:ワルラスの法則とランク落ち

この方程式系は、そのまま解こうとすると計算が破綻します。その理由は、一般均衡モデルが持つ以下の2つの性質にあります。

  • ワルラスの法則 (Walras' Law)
    超過需要の総和は常にゼロになる($\sum F_i(x) = 0$)。これは方程式が互いに独立ではなく、1つが冗長であることを意味し、ヤコビ行列がランク落ち(Singular Matrix)を起こします。
  • 0次同次性
    価格がすべて2倍になっても需給バランスは変わりません($F(kx) = F(x)$)。つまり解が無数に存在(不定)するため、「価格の総和は1」といった正規化条件($\sum x_i = 1$)を課して解を1つに定める必要があります。

4. 解決策:補助項による正則化

「ランク落ち」と「正規化」の問題を同時に解決するため、方程式に以下の補助項(Auxiliary Term)を導入しました。

Step 1: 修正方程式の定義

元の超過需要関数 $F_i(x)$ のすべての式に、価格の総和に関する項を加算し、新しい関数 $G_i(x)$ を定義します。

\[ G_i(x) = F_i(x) + \left( \sum_{j=1}^3 x_j - 1 \right) = 0 \]

ここで加えた $\left( \sum x_j - 1 \right)$ が補助項です。

Step 2: 補助項のからくり(なぜ解けるのか?)

修正方程式の総和 $\sum G_i(x)$ を計算すると、ワルラスの法則($\sum F_i = 0$)により元の式が消え、補助項だけが残ります。

\[ \sum_{i=1}^3 G_i(x) = 0 + 3 \left( \sum x_j - 1 \right) \]

したがって、$G_i(x)=0$ となる解が見つかれば、自動的に $3(\sum x_j - 1) = 0$、すなわち $\sum x_j = 1$(正規化条件) が満たされることになります。
同時に、補助項自体が $0$ になるため、元の式 $F_i(x)=0$ も成立します。

5. 理論的な解の予測

数値解析を行う前に、理論的に予想される正解を確認しておきましょう。

今回のモデル($\alpha=1.0$)では、方程式が $x_1, x_2, x_3$ について完全に対称な形をしています。そのため、解も対称な値($x_1=x_2=x_3$)になると予想されます。

補助項の導入により「総和が1になる($\sum x_i = 1$)」という条件が課されているため、これらを満たす唯一の解は以下のようになります。

\[ x_1 = x_2 = x_3 = \frac{1}{3} \approx 0.333... \]

次のセクションでは、実際にシミュレーションを行い、この値に収束するかどうかを確認します。

6. 解析結果

上記の定式化を行い、不動点ホモトピー法を用いて、自明な初期解から目的の均衡解までのパスを追跡しました。ホモトピー法はSPICE指向型解析法で実現しました。

ホモトピーパスの軌跡 ($\alpha=1.0$)

シミュレーション結果のグラフを以下に示します。

Graph: Homotopy Path
Graph: Homotopy Path
Graph: Homotopy Path

初期状態から計算を開始し、パラメータを進めると、3つの変数は滑らかに収束していきました。
最終的な到達点は以下の通りです。

収束値:
$x_1 \approx 0.3333$
$x_2 \approx 0.3333$
$x_3 \approx 0.3333$

事前に予測した理論解 $1/3$ と完全に一致しました。
これにより、補助項を用いた正則化手法が正しく機能し、ワルラスの法則による特異性を回避して均衡価格を特定できたことが実証されました。

解析環境

  • SPICE: Mac SPICE3
  • PC: MacBook
  • OS: macOS Monterey 12.7.6
  • CPU: 1.2GHz デュアルコア Intel Core m5
  • メモリ: 8GB