Irving Fisher, tesis doctoral, Yale 1891

La máquina de Fisher por dentro

Cómo un tanque de agua con cisternas, varillas y flotadores calcula los precios de equilibrio de una economía; cómo se simula ese aparato en la computadora, y cómo se resuelven aparte sus ecuaciones para comprobar que la simulación acierta.

Basado en W. C. Brainard y H. E. Scarf, «How to Compute Equilibrium Prices in 1891», American Journal of Economics and Sociology 64(1), 2005. Las referencias a páginas, figuras y ecuaciones son de ese artículo.

Parte I

Cómo funciona la máquina

El problema que resuelve

Hay tres consumidores (I, II, III) y tres bienes (A, B, C). Cada consumidor tiene un ingreso fijo en dinero Yi y una utilidad separable ui = Σj uij(xij). La oferta de cada bien, Ej, está dada. Un equilibrio son precios pj, cantidades xij y utilidades marginales del dinero λi que cumplen las ecuaciones de Fisher (p. 60):

u′ij(xij) ≤ λi pj  (= si xij > 0)cada consumidor maximiza Σi xij = Ejcada mercado se vacía Σj pj xij = Yi  (= si λi > 0)cada consumidor gasta su ingreso

La idea de Fisher es que cada ecuación la imponga una pieza física. Cuando el agua deja de moverse, las tres se cumplen a la vez.

1La cisterna es una función de utilidad

El volumen de agua dentro de la cisterna ij es la cantidad xij. Fisher le da a la cisterna una forma tal que la profundidad del agua bajo el borde es la utilidad marginal de ese volumen:

ξ = u′(x)

Al meter agua, el nivel sube y esa profundidad baja: es la utilidad marginal decreciente. La profundidad total de la cisterna es D = u′(0), y cuando el agua llega al borde, u′ = 0: el consumidor está saciado. Una caja rectangular de ancho w da u′(x) = D − x/w, que es una utilidad cuadrática. Una cisterna que se abre hacia arriba se sacia más despacio.

2Flotar equivale a comparar u′ con λp

Las cisternas flotan parcialmente sumergidas en una tina grande. Supongamos que el borde de una cisterna queda a una altura b sobre el agua de la tina:

  • si el agua de adentro está más alta que la de afuera, la cisterna pesa más de lo que el agua la empuja (Arquímedes) y se hunde;
  • si está más baja, sube;
  • solo queda quieta cuando el nivel de adentro coincide con el de la tina. Entonces la profundidad bajo el borde es exactamente b, es decir u′(x) = b.
Cisterna en la tina: la profundidad bajo el borde es u′(x); en reposo coincide con la altura b del borde sobre el agua. agua de la tina ξ = u′(x) b D = u′(0) borde x = volumen dentro
Cisterna en reposo. La profundidad del agua bajo el borde, ξ, es la utilidad marginal. Como el agua de adentro está al nivel de la tina, ξ es igual a la altura b del borde sobre la tina. La forma de la pared derecha es la función f(ξ), ancho a cada profundidad (figura 1 del paper).

3Las varillas fabrican λi · pj

Cada consumidor cuelga sus tres cisternas de un par de varillas en forma de techo, con la cumbre sobre el bien B. Las varillas están articuladas, a nivel del agua, en dos flotadores F que solo se mueven de lado. Las cisternas de A, B y C cuelgan en las posiciones −1, 0 y +1; los flotadores, en −1−a y 1+c.

Varillas de un consumidor en forma de techo, apoyadas en dos flotadores; la altura de cada esquina es proporcional a su distancia al flotador. F F −1−a −1 0 +1 1+c biA = λipA biB = λipB biC = λipC altura sobre el agua ∝ distancia al flotador biA / biB = a/(1+a) = pA / pB cumbre, sobre B
Vista de frente de un consumidor (como la figura 4). Por triángulos semejantes, la altura de cada esquina sobre el agua es proporcional a su distancia al flotador. El agua de cada cisterna queda al nivel de la tina.

En una varilla recta, la altura es proporcional a la distancia al flotador. Por eso la altura de cada borde se separa en dos factores:

  • un factor del consumidor, la inclinación de sus varillas, que hace el papel de λi;
  • un factor del bien, la distancia al flotador. La posición de los flotadores fija los precios relativos: pA/pB = a/(1+a) depende del flotador izquierdo y pC/pB = c/(1+c) del derecho.

Así bij = λi pj y, con el paso 2, se cumple la primera ecuación. Esta geometría tiene una consecuencia: B tiene que ser el bien más caro, porque es la cumbre del techo. Si el equilibrio pide otra cosa, los flotadores llegan a sus topes y la máquina no puede representarlo (p. 74).

4Dos compartimentos dan el presupuesto

Una tabla de madera divide cada cisterna en dos compartimentos:

  • adelante, de grosor 1: agua de cantidad, xij, azul en la app;
  • atrás, un fuelle de cuero de grosor pj: agua de dinero, yij, verde en la app. Como es pj veces más grueso, cuando su nivel coincide con el de la tina guarda exactamente y = p · x, el valor en dinero de la cantidad.

Las mangueras hacen el resto, porque el agua no se crea ni se destruye:

  • las de cantidad unen los compartimentos delanteros de un mismo bien, así que Σi xij = Ej siempre;
  • las de dinero unen los fuelles de un mismo consumidor, así que Σj yij = Yi siempre. En equilibrio, como y = p · x, eso es el presupuesto.
Vista en planta de las nueve cisternas: compartimentos de cantidad unidos por columna, fuelles de dinero unidos por fila. A B C III II I EA EB EC YIII YII YI pC 1 grosor
Vista desde arriba (como la figura 6), con el fondo de la tina arriba. En cada cisterna, el compartimento de cantidad (azul, grosor 1) está adelante y el fuelle de dinero (verde, grosor pj) atrás. Las mangueras azules unen cada columna y las verdes cada fila. En el dibujo B es el bien más caro y tiene los fuelles más gruesos.

5Las palancas de precio

Al fondo, sobre el agua, otras dos palancas articuladas en los mismos flotadores repiten el triángulo, ahora en planta. Sus pivotes empujan las varillas R, que abren o cierran a la vez los fuelles de toda una columna. La distancia de cada pivote a la línea FF, donde todos los fuelles estarían cerrados, es el precio pj. Como los flotadores son los mismos, el grosor de los fuelles es el mismo precio que fijan las varillas de los consumidores. Los flotadores conectan los precios con las utilidades marginales.

Resumen

Ecuación de FisherLa pieza que la impone
u′ij(xij) = λi pjforma de la cisterna, flotación y varillas en techo
Σi xij = Ejmangueras de cantidad: el agua de cada bien se conserva
Σj pj xij = Yifuelle de grosor pj y mangueras de dinero

Cuando toda el agua queda al nivel de la tina, ninguna pieza siente fuerza y las tres ecuaciones se cumplen a la vez: la máquina ha calculado el equilibrio competitivo.

En la app se ven dos velocidades. Las varillas, los flotadores y los fuelles se acomodan casi al instante, y por eso los precios saltan al principio de la gráfica. Después el agua corre despacio por las mangueras, de las cisternas más altas a las más bajas, y la línea de «desequilibrio» baja poco a poco hasta cero.

Experimentos para probar en la app

  1. Sube todos los ingresos ×1.5. Todos los precios suben ×1.5 y las cantidades no cambian (uno de los ejercicios de Fisher, p. 75).
  2. Arrastra hacia abajo el émbolo de A. Entra más agua de A, sus cisternas se hunden, el flotador izquierdo se acerca y pA baja.
  3. Abre una cisterna con un clic y cambia su forma. Cambias la utilidad de ese consumidor por ese bien y ves cómo se reacomoda todo.
  4. Elige «Tres equilibrios» y usa «Arrancar cerca». Según dónde empiece, la máquina termina en un equilibrio distinto.

Parte II

La simulación del agua

Basta la hidrostática

No hay partículas, ni olas, ni ecuaciones de Navier–Stokes. El agua de cada compartimento se resume en un solo número, su volumen, y todo lo demás se deduce de ese número y de la forma de la cisterna. En cada paso de la simulación:

  1. Se calcula dónde queda la superficie. Con volumen x, la profundidad bajo el borde es u′(x); para eso se integra la forma f(ξ) de manera exacta y se invierte. Con el borde a altura b, el nivel del agua de adentro respecto a la tina es e = b − u′(x). En el fuelle, lo mismo con y/p.
  2. Se mueve agua entre compartimentos conectados. Por cada par unido por manguera, el agua pasa del nivel más alto al más bajo, en proporción a la diferencia.
  3. Se calcula la fuerza sobre cada pieza y se mueve.
flujoi→k ∝ (ei − ek) / (1/Ai + 1/Ak)

A es el área de la superficie del agua. Ese denominador hace que dos cisternas se igualen al mismo ritmo sin importar su tamaño, como si cada manguera tuviera el grosor adecuado a su cisterna. Es un supuesto: el paper dice que no se conocen las dimensiones de los tubos de Fisher (p. 73). Los flujos van por pares y con signos opuestos, así que el agua total se conserva exactamente, y ninguna cisterna entrega más agua de la que tiene.

El dibujo solo refleja ese número. Cada uno de los 18 cuerpos de agua es un prisma con el perfil de su cisterna, desde la superficie calculada hasta el fondo, y sus vértices se reescriben en cada cuadro. Las mangueras brillan según el flujo que pasa por ellas.

La fuerza sobre una cisterna es exceso de demanda

Por Arquímedes, la fuerza neta hacia abajo sobre la cisterna ij es su peso menos el agua de la tina que desplaza. El desplazamiento cuenta los dos compartimentos, de grosor 1 y pj:

Fij = xij + yij − (1 + pj) · V(bij)

V(b) es el volumen de la cisterna que queda bajo el agua. Por cómo Fisher diseñó la forma, V(b) = (u′)−1(b): es la demanda del consumidor a utilidad marginal b = λi pj.

La fuerza sobre una cisterna es el agua que tiene menos el agua que su consumidor demandaría a los precios del momento.Si el consumidor tiene más de lo que quiere, la cisterna se hunde; si tiene menos, sube. Por eso la máquina «sabe» economía.

En los fuelles, la fuerza es la presión del agua contra la pared trasera, la de adentro menos la de afuera. Integrada sobre el perfil queda

Φ(d) = ∫dD f(t) (t − d) dt,    prij = Φ(prof. adentro) − Φ(bij)

Si adentro hay más dinero del que corresponde al precio, el fuelle se abre y el precio sube.

Para pasar de estas fuerzas a las seis piezas que se mueven (las tres alturas de las varillas de los consumidores, la palanca de precio y los dos flotadores) usé trabajo virtual: la fuerza sobre cada pieza es el trabajo que hacen todas las fuerzas si esa pieza se mueve un poco. Con ρ = (a/(1+a), 1, c/(1+c)), las alturas son bij = hiρj y los precios pj = Pρj, y salen:

Qhi = −Σj Fij ρjvarillas del consumidor i QP = Σj ρj Σi prijpalanca de precio Qa = (−Σi FiA hi + P Σi priA) / (1+a)²flotador izquierdo (el derecho, igual con C)

La dinámica

No modelé inercia: el movimiento es sobreamortiguado. Cada pieza avanza en la dirección de su fuerza y se detiene en cuanto la fuerza desaparece, como si se moviera en agua espesa. El paper también ignora la inercia (p. 74). Hay dos velocidades:

  • Las piezas son 10 veces más rápidas que el agua. La proporción viene del paper: Brainard y Scarf metieron en una tina una botella de Coca-Cola de un litro llena a dos tercios. Se acomodaba unas 10 veces más rápido que si la vaciaban por una manguera de 5/8 de pulgada (p. 73).
  • Para las piezas uso un paso de Newton: se calcula la rigidez entre las seis piezas y se resuelve el sistema completo, de modo que todas relajan al mismo ritmo.

¿Sirvieron las ecuaciones del paper?

Como mapa, mucho. Como receta, no del todo. El Apéndice (figura 9) da la arquitectura, la geometría, la forma de la fuerza y un caso de prueba. Algunos detalles, tal como los leí, no cuadraban con la física, y los derivé de nuevo. Sin el código Matlab de los autores no pude saber si eran erratas o convenciones distintas.

ApéndiceQué diceQué hice
Estado24 variables: 9 cantidades, 9 gastos, 2 flotadores, 3 ángulos de consumidor y 1 de precioLas mismas, con alturas en lugar de ángulos, que son equivalentes
(3), (4)Alturas y precios a partir de los brazos de palancaUsadas tal cual; coinciden con la figura 4
(5), (6)Profundidades del agua y utilidades marginalesUsadas tal cual
(7)Fuerza en las varillas: x − u′−1(b) + y − p u′−1(b)La misma expresión (es Arquímedes), pero el signo impreso haría subir una cisterna a la que le sobra peso; derivé la fuerza de nuevo
(8), (8′)Presión en los fuelles, aproximadaLa integral exacta Φ
(9)Flotadores, suponiendo que las varillas no giran mientras se muevenTrabajo virtual, sin ese supuesto
(10), (11)Flujo según la altura del agua sobre el fondo de cada cisternaFlujo según el nivel absoluto respecto a la tina, porque las cisternas de un mismo bien cuelgan a alturas distintas
VelocidadesDesconocidas; las piezas, mucho más rápidas que el aguaProporción 10 a 1, de la botella

Lo que no salió a la primera

  • Las piezas tardaban en acomodarse. Al principio movía cada pieza por separado, y el precio y los flotadores se estorbaban entre sí. Lo resolvió el paso de Newton con todas las piezas a la vez.
  • Newton empujaba al revés. Tras un salto grande de oferta, en la transición la rigidez dejaba de ser positiva y el paso iba contra la fuerza: los flotadores terminaban en sus topes. Ahora cada paso está obligado a disipar energía, como en un sistema físico real (una corrección de Levenberg–Marquardt verificada con Cholesky). Una prueba cubre el caso.
  • El ejemplo del paper es lento. Con cisternas de 46 × 3.6 junto a otras de 1.5 × 12, el sistema está mal condicionado: cerca de los equilibrios 1 y 3, la fuerza responde mil veces más en unas direcciones que en otras. Es propio del ejemplo y explica por qué los autores necesitaron miles de iteraciones.

Cómo sé que funciona, y sus límites

Cuando el agua deja de moverse, comparo con el equilibrio calculado aparte (parte III). Coinciden hasta la sexta cifra decimal o más. Además, subir todos los ingresos ×1.5 da precios exactamente ×1.5 con las mismas cantidades, y el agua se conserva a nueve decimales en todo momento.

  • Sin inercia no hay oscilaciones ni el agua se pasa de largo. Con inercia, el paper sugiere oscilaciones amortiguadas alrededor del equilibrio.
  • El flujo es lineal en la diferencia de niveles, sin turbulencia ni fricción que crezca con la velocidad.
  • El grosor de las mangueras y la proporción 10 a 1 son supuestos. Cambian el camino, no el destino. Por eso, en el ejemplo de tres equilibrios, la máquina puede llegar a uno u otro según el arranque.

Parte III

Cómo se resuelven las ecuaciones de Fisher

Para saber si la máquina acierta hace falta resolver las ecuaciones por otro camino, sin agua. Son 15 incógnitas (9 cantidades, 3 valores de λ y 3 precios) con desigualdades y posibles soluciones de esquina. Como las utilidades son separables, el problema se reduce a 3 incógnitas en tres capas.

Newton en log p 3 incógnitas: los precios. Busca zj(p) = Σi xij(p) − Ej = 0.
Bisección para cada λi Con precios dados, el λ que hace gastar exactamente el ingreso.
Demanda de cada cisterna xij = Dij(λipj), con D = (u′)−1. Sin incógnitas: es una fórmula.

1Las cantidades salen solas

Como la utilidad es separable, la condición de primer orden de cada bien involucra solo ese bien: xij = Dij(λi pj). La función D es el volumen de la cisterna bajo la profundidad λp, la misma que da el empuje de Arquímedes en la máquina. Las esquinas se resuelven solas: si λp ≥ u′(0), la demanda es cero (la cisterna colgaría vacía fuera del agua); si λp ≤ 0, la cisterna se llena. Para una caja rectangular es x = w·(D − λp), recortado entre cero y la capacidad. Para las otras formas, la integral del perfil es exacta y se despeja una cuadrática en cada tramo.

2Cada λi por bisección

Con precios dados, cada λi debe hacer que el consumidor gaste exactamente su ingreso:

Σj pj · Dij(λi pj) = Yi

El gasto baja siempre que sube λ, porque la demanda decrece. Una función monótona cruza el ingreso una sola vez, y la bisección encuentra el cruce con garantía. Con λ = 0 el consumidor compra todo lo que le cabe; con λ = maxj u′ij(0)/pj no compra nada; se parte el intervalo a la mitad unas 50 veces. Si aun con λ = 0 no alcanza a gastar su ingreso, está saciado: λi = 0 y le sobra dinero. Es el «= si λi > 0» de Fisher.

3Los precios por Newton

Quedan 3 ecuaciones con 3 incógnitas, el exceso de demanda zj(p) = 0. Con ingresos fijos en dinero no hay homogeneidad: duplicar los precios no deja la demanda igual, porque el ingreso no cambia. El nivel de precios queda determinado y no sobra ninguna ecuación, a diferencia de una economía con dotaciones. El método:

  • en log p, para que los precios nunca sean negativos y el problema no dependa de las unidades;
  • derivadas por diferencias finitas: se mueve cada log p en 1e-6 y se repiten las capas 1 y 2;
  • pasos amortiguados: ningún paso multiplica un precio por más de e ≈ 2.7, y si el error no baja, el paso se acorta a la mitad. La demanda tiene quiebres en las esquinas, donde Newton puro puede saltar mal;
  • tolerancia de 1e-11 en el exceso de demanda relativo a la oferta.

Equilibrios múltiples

Newton encuentra un equilibrio, el más cercano a donde arranca. Para encontrarlos todos, arranco desde una malla de 9 × 9 precios relativos pA/pB y pC/pB, de 0.08 a 12. Cada arranque se escala para que p·E = ΣY, condición que todo equilibrio cumple (sale de sumar los presupuestos). De los 81 resultados se quitan los repetidos. Tarda entre 20 y 50 milisegundos.

Si las utilidades fueran homogéneas (Cobb-Douglas, CES), el equilibrio sería único y saldría de un problema convexo, el de Eisenberg y Gale. Con estas utilidades, cuadráticas y con saciedad, no hay esa garantía, y el ejemplo del paper tiene tres equilibrios. La malla es una búsqueda, no una prueba de que no haya más. Con una malla de 15 × 15 salen los mismos tres, y en casos genéricos el número de equilibrios es impar.

Verificación

El solucionador encuentra los tres equilibrios del ejemplo del paper (p. 77). Los precios del paper son la última iteración de su simulación, que aún muestra desequilibrios en la figura 7, así que difieren hasta 3.1 %:

pA paperpA aquípB paperpB aquípC paperpC aquí
Equilibrio 10.61990.60861.96001.90081.63701.6562
Equilibrio 21.10541.10412.40602.35791.09641.1041
Equilibrio 31.65601.65621.93101.90080.60820.6086

Este cálculo y la máquina son dos métodos independientes, uno algebraico y otro físico, y llegan al mismo punto. El solucionador también sirvió para leer el ejemplo: «46 × 3.6» podía ser ancho × profundidad o al revés. Solo la primera lectura, con los ingresos multiplicados por 100, da tres equilibrios parecidos a los del paper; la otra da uno solo.

Parte IV

Hallazgos

  • Errata en la página 61. La utilidad cerrada que el paper da para f(ξ) = b + aξ corresponde en realidad a f(ξ) = b + 2aξ. Para b + aξ la correcta es u(x) = [(b+ad)³ − 3abx − ((b+ad)² − 2ax)3/2] / 3a².
  • La trampa de los topes. El paper se pregunta si la máquina podría quedar varada contra sus topes en lugar de llegar al equilibrio (p. 71). Pasa con su propio arranque, el gasto repartido por partes iguales entre bienes: en el ejemplo de tres equilibrios, el fuelle de B pide al principio un precio de 8.3, y con un tope menor la máquina se queda lejos del equilibrio. La app arranca con el gasto en proporción a las ofertas, y así lo evita.
  • Estabilidad. Con esta dinámica los tres equilibrios del ejemplo son estables. En la simulación del paper, el equilibrio 2 parecía asentado tras 2 500 iteraciones y luego se iba al 1 (figura 8). La diferencia está en las velocidades supuestas, que el propio paper reconoce no conocer.

Dónde está cada cosa en el código

src/model/cistern.jsForma de la cisterna: u′, demanda, utilidad y empuje. src/model/machine.jsEstado de 24 variables, fuerzas por trabajo virtual, paso de Newton y flujo del agua. src/model/equilibrium.jsLas tres capas: bisección, Newton y búsqueda de equilibrios múltiples. src/scene/Dibujo en three.js. Es una imagen afín del modelo: las varillas siguen siendo rectas y exactas. tests/model.test.jsLas pruebas, incluida la errata de la página 61.