SPB Git

spb/wp29_uqo

Public

# F5-conf-01: Competitive equilibrium of a 2-agent, 2-good exchange economy

# Question

Agents A and B have Cobb–Douglas utilities u_i = α_i ln x1 + (1−α_i) ln x2 and trade their endowments. Good 2 is the numeraire (p2 = 1). The task is to find the Walrasian relative price p = p1/p2 and the equilibrium allocation, check that the good-1 market clears and that Walras' law holds, and confirm the closed-form price by solving z1(p) = 0 numerically.

# Data and exclusions

  • data/endowments.csv (2 rows; n_input_rows): A = (8, 2), B = (4, 8). All values are strictly positive, with no missing or duplicate rows.
  • data/parameters.csv (4 rows): α_A = 0.4, α_B = 0.6, and the summary-sheet aggregates good1 = 14 and good2 = 10.
  • Data issue (data_issues). The summary sheet gives 14 as the aggregate endowment of good 1, but the individual endowments add up to 8 + 4 = 12. For good 2 the two sources agree (10). I used the sum of the primary individual endowments (aggregate_endowment_good1 = 12, aggregate_endowment_good2 = 10). Incomes come from individual endowments, so clearing against 14 would mean the market-clearing condition and the budget constraints describe two different economies.
  • No agents were excluded (out/exclusions.csv), so n_analysed = 2. Hashes and other details are in out/state/data_audit.md.

# Method

  • Demands. Income is m_i = p·e1_i + e2_i, giving x1_i = α_i m_i / p and x2_i = (1−α_i) m_i.
  • Closed form. Clearing good 1 means Σ α_i (p e1_i + e2_i) = p Σ e1_i, which gives p* = Σ α_i e2_i / Σ (1−α_i) e1_i = (0.4·2 + 0.6·8)/(0.6·8 + 0.4·4) = 5.6/6.4.
  • Assumptions.
    • Interior solution: 0 < α_i < 1 and strictly positive endowments, so every agent has positive income and positive consumption.
    • Price normalisation p2 = 1.
    • Uniqueness: with Cobb–Douglas preferences z1(p) is strictly decreasing, so there is only one equilibrium.
  • Independent numerical check (the baseline). Brent's method (scipy.optimize.brentq) on the aggregate excess demand z1(p) as defined from the demand functions, over the bracket [1e-6, 1e6]. The closed-form expression is not evaluated in this step.
  • Walras' law. The residual p·z1 + z2 is computed at p*, and also at 41 prices off equilibrium (log-grid from 0.01 to 100), because the law holds at every price, not only in equilibrium.
  • The method has no randomness (random_seed = null).

# Results

  • Equilibrium price p1/p2 = 0.875 (price_ratio_p1_over_p2). The numerical root is also 0.875 (price_ratio_numerical), with an absolute difference of 1.1e-16 (abs_diff_closed_form_vs_numerical).
  • Allocation:
    • A gets x1 = 4.1143 (x1_A) and x2 = 5.4 (x2_A).
    • B gets x1 = 7.8857 (x1_B) and x2 = 4.6 (x2_B).
    • Incomes are 9.0 (income_A) and 11.5 (income_B).
  • Excess demand for good 1 at p* is 0.0 (excess_demand_good1), and for good 2 it is 0.0 (excess_demand_good2).
  • The Walras' law residual is 0.0 at p* (walras_law_residual). Its largest absolute value on the off-equilibrium grid is 5.7e-14 (walras_law_residual_max_abs_offeq_grid), which is floating-point rounding.
  • Further checks in out/state/checks.md all passed: budget constraints hold with equality, MRS_A = MRS_B = p, and a clean rerun reproduces results.json byte for byte.
  • feasibility = "complete".

# Uncertainty

This is a deterministic theoretical exercise, so there is no sampling uncertainty. The only numerical error is floating-point rounding: about 1e-16 between the two price calculations and at most about 6e-14 in the Walras residual. The real source of uncertainty is the input conflict described above.

Sensitivity check, not a result. If the summary-sheet value of 14 were used in the good-1 clearing condition while incomes still came from the individual endowments, the "clearing" price would be 0.6667 (sensitivity_price_if_summary_aggregate_good1). The Walras residual would then be −1.333 (sensitivity_walras_residual_if_summary_aggregate_good1) instead of zero. That non-zero residual shows the 14 is inconsistent with the rest of the data.

# Limitations and open issues

  • I resolved the aggregate-endowment discrepancy (14 vs 12) in favour of the individual endowments, which the task names as the primary data. If the summary sheet is right and an individual endowment of good 1 was mis-recorded, the economy would be different and the results would change. The inputs cannot tell us which entry is in error.
  • The numerical validation covers only the equilibrium price (the root of z1) for the given parameters. The allocation follows from the demand functions and is checked through market clearing and the budget constraints.
  • The closed form holds only under the interior, strictly-positive-endowment Cobb–Douglas assumptions stated above.
Files · main
Menu

Theme