SPB Git

spb/wp29_uqo

Public

# F5-conf-01 — Competitive equilibrium of a 2×2 Cobb–Douglas exchange economy

# Question

Find the Walrasian equilibrium relative price p = p1/p2 (good 2 numeraire, p2 = 1) and the allocation for agents A and B with u_i = α_i ln x1 + (1−α_i) ln x2. Then verify market clearing and Walras' law, and check the closed-form price against a separate numerical root-finder.

# Data and exclusions

  • data/endowments.csv (2 rows; n_input_rows): A = (8, 2), B = (4, 8). data/parameters.csv (4 rows): α_A = 0.4, α_B = 0.6 (alpha_A, alpha_B).
  • No rows were excluded (out/exclusions.csv); n_analysed = 2 agents.
  • Data issue (data_issues): the summary sheet gives aggregate_endowment_good1_recorded = 14, but the per-agent endowments add up to 12. For good 2 the two sources agree (10). The task calls the per-agent endowments the primary data, so market clearing uses aggregate_endowment_good1 = 12 and aggregate_endowment_good2 = 10. The value of 14 cannot be used consistently: each agent's wealth comes from their own endowment, so clearing against 14 would break Walras' law by p·(−2).

# Method

  • Demands: x1_i = α_i·w_i/p and x2_i = (1−α_i)·w_i, where w_i = p·e1_i + e2_i.
  • Closed form: setting z1(p) = Σ x1_i − Σ e1_i = 0 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: α_i ∈ (0,1) and all endowments are strictly positive. These make every demand interior and every wealth positive, so the equilibrium exists and is unique. The price normalisation is p2 = 1.
  • Numerical validation: Brent's method (scipy.optimize.brentq) finds the root of the aggregate excess demand z1(p) directly on [1e-6, 1e6]. It does not evaluate the closed-form expression. There is a sign change at the bracket ends, and z1 is strictly decreasing in p, so the root is unique.
  • No randomness is used (random_seed = null).

# Results

  • Equilibrium price: price_ratio_p1_over_p2 = 0.875 (stored as 0.8749999999999999).
  • Numerical root: price_ratio_numerical = 0.875. The absolute difference from the closed form is 1.1e-16 (price_abs_diff_closed_vs_numerical).
  • Allocation:
    • Agent A: x1_A = 4.1143 (= 144/35), x2_A = 5.4.
    • Agent B: x1_B = 7.8857 (= 276/35), x2_B = 4.6.
  • Market clearing holds: excess_demand_good1 = 0.0 and excess_demand_good2 = 0.0.
  • Walras' law holds: walras_law_residual = 0.0 at equilibrium. Away from equilibrium the residual stays within floating-point error, with a maximum of 7.1e-15 over p ∈ [0.1, 10] (walras_law_residual_offeq_max_abs).
  • Feasibility: feasibility = "complete".

# Uncertainty

This is a deterministic theoretical calculation, so there is no sampling uncertainty. The only numerical error is floating-point rounding, of order 1e-16 (price_abs_diff_closed_vs_numerical, walras_law_residual_offeq_max_abs).

The main source of uncertainty is in the inputs: which aggregate endowment of good 1 is correct. If the per-agent endowments were wrong and the true total were 14, the equilibrium would be different. The data cannot tell us how the extra 2 units would be split between the agents.

# Limitations and open issues

  • The good-1 total in the summary sheet (14) contradicts the per-agent data (12). I resolved this in favour of the primary per-agent data, but the conflict is unresolved at its source.
  • The closed form only holds for interior Cobb–Douglas solutions. Corner cases (α_i ∈ {0,1} or zero endowments) are outside its scope; the script checks for them and would stop if they occurred.
  • The numerical check confirms the price for this one parameter set only. It does not test other parameter sets, and it does not test uniqueness beyond the monotonicity of z1.
Files · 152a55b8fa2830f50fa35e5aed99c0037f713345
Menu

Theme