F5-conf-01 — Competitive equilibrium of a two-agent, two-good exchange economy
Question
Agents A and B have Cobb–Douglas utilities u_i = α_i ln x1 + (1−α_i) ln x2 and endowments (e1_i, e2_i). Good 2 is the numeraire (p2 = 1). We find the Walrasian equilibrium price p = p1/p2 and allocation. We check market clearing and Walras' law, and we validate the closed-form price by numerical root-finding.
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, and summary-sheet aggregates 14 (good 1) and 10 (good 2).- Data issue (
data_issues): the summary sheet gives aggregate good-1 endowment 14, but the individual endowments add up to 8 + 4 = 12. The good-2 figure is consistent (10). - In an exchange economy the aggregate endowment is, by definition, the sum of the individual endowments, and the task names endowments.csv as the primary data. I therefore used 12 and 10 (
aggregate_endowment_good1,aggregate_endowment_good2). - As a diagnostic only, I cleared good 1 against 14 instead. That gives p ≈ 0.6667 with good-2 excess demand ≈ −1.333 ≠ 0, so the economy has no consistent equilibrium. I treat the value 14 as a recording error. Both summary-sheet values are kept in
aggregate_endowment_good1_summary_sheetandaggregate_endowment_good2_summary_sheet. - No rows were excluded (
out/exclusions.csv). Both agents were analysed (n_analysed= 2).
Method
- Assumptions of the closed form:
- α_i ∈ (0,1) and strictly positive endowments, so each agent's wealth w_i = p e1_i + e2_i is positive and demands are interior: x1_i = α_i w_i / p and x2_i = (1−α_i) w_i.
- Price normalisation p2 = 1.
- Closed form: market clearing for good 1, Σ α_i(p e1_i + e2_i) = p E1, 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. The good-2 market then clears by Walras' law.
- Independent numerical validation: Brent's method (
scipy.optimize.brentq) finds the root of the aggregate excess-demand function z1(p) = Σ x1_i(p) − E1 on the bracket [1e-9, 1e9], with tolerance 1e-15. It never evaluates the closed-form expression.- z1 is strictly decreasing in p here, so the root is unique.
- Scope: this check validates the price for these parameters only. It is not a general proof.
- No randomness is involved (
random_seed= null).
Results
| quantity | value | key |
|---|---|---|
| p1/p2 (closed form) | 0.875 | price_ratio_p1_over_p2 |
| p1/p2 (numerical root) | 0.875 (abs. difference 2.2e-16) | price_ratio_numerical, price_abs_diff_closed_vs_numerical |
| x1_A, x2_A | 4.1143, 5.4 | x1_A, x2_A |
| x1_B, x2_B | 7.8857, 4.6 | x1_B, x2_B |
| excess demand good 1 | 0.0 | excess_demand_good1 |
| excess demand good 2 | 0.0 | excess_demand_good2 |
| Walras residual p·z1 + z2 | 0.0 | walras_law_residual |
The allocation adds up to the aggregate endowment (12, 10). Each agent's budget constraint binds. Both agents' marginal rates of substitution equal p = 0.875 (out/state/checks.md), so the allocation is Pareto efficient. feasibility = "complete".
Uncertainty
This is a deterministic theoretical calculation, so there is no sampling uncertainty. The only numerical error is floating-point error: the closed-form and numerical prices differ by about 2.2e-16 (price_abs_diff_closed_vs_numerical), and the residuals are 0 at double precision.
The main source of uncertainty in the result comes from the data, not the computation: which aggregate good-1 endowment is correct. If the individual endowments were wrong and 14 were the right total, the equilibrium would be different. That case cannot be resolved from the inputs.
Limitations and open issues
- The summary-sheet aggregate for good 1 (14) contradicts the individual endowments (12). I resolved this in favour of the primary individual data. If the true error is instead in an individual endowment (for example, if A or B actually holds 2 more units of good 1), the price and allocation would change. The inputs cannot tell these cases apart.
- The closed form relies on interior Cobb–Douglas demands. It does not cover corner solutions, zero endowments or α ∈ {0, 1}.
- The numerical validation covers this parameter set only.