Consumo óptimo: compare la MRS y la relación de precios
Esta calculadora de consumo óptimo comprueba la condición interior estándar de elección del consumidor: la relación marginal de sustitución entre dos bienes debe ser igual a su relación de precios.
Ejecutar — gratis
Introduzca la utilidad marginal y el precio de cada bien para obtener ambas razones, la diferencia relativa, la coincidencia según la tolerancia elegida y el bien cuya compra conviene aumentar. El resultado orienta la decisión económica, pero no resuelve la demanda completa porque no incluye renta, cantidades ni la función de utilidad íntegra.
Qué significa la condición entre MRS y precios
Para dos bienes X e Y, la relación marginal de sustitución utilizada aquí es MUx dividida por MUy. Indica cuánta utilidad marginal obtiene el consumidor de X en comparación con Y en la cesta actual. La relación de precios del mercado es Px dividida por Py y expresa el coste relativo de adquirir X en lugar de Y. En un óptimo interior, ambos intercambios coinciden: MUx/MUy = Px/Py. La misma condición puede escribirse como igualdad de utilidad marginal por unidad monetaria, MUx/Px = MUy/Py. Cuando las razones coinciden, trasladar una pequeña parte del gasto de un bien al otro no mejora la utilidad en el margen. La calculadora evalúa esa igualdad con utilidades marginales y precios positivos. No interpreta los valores introducidos como cantidades ni calcula una recta presupuestaria. Se limita a la prueba local de optimalidad que se aplica cuando ya se conocen las utilidades marginales de una cesta candidata.
Cómo interpretar la recomendación de compra
Si la MRS es mayor que Px/Py, el bien X aporta más utilidad marginal respecto de Y de la que exige su coste relativo de mercado. Dicho de otro modo, la utilidad marginal por unidad monetaria es mayor para X. Por tanto, la mejora consiste en comprar más X y menos Y sin aumentar el gasto total. Bajo el supuesto habitual de utilidad marginal decreciente, esa reasignación reduce la MRS hasta acercarla a la relación de precios. Si la MRS es menor que Px/Py, ocurre lo contrario: Y ofrece el mayor rendimiento marginal por unidad monetaria y conviene comprar más Y y menos X. Los campos booleanos muestran esta dirección de forma explícita y la recomendación la resume en una frase. «Comprar más» significa realizar una reasignación marginal, no una compra ilimitada. Como las utilidades marginales suelen cambiar al variar la cesta, usted debe volver a calcular las razones después del ajuste.
Tolerancia, supuestos y soluciones de esquina
La igualdad exacta es poco frecuente cuando las utilidades marginales proceden de estimaciones, encuestas o valores redondeados. Por ello, la tolerancia define una banda relativa alrededor de la relación de precios. El valor predeterminado 0.01 considera equivalentes diferencias de hasta un uno por ciento en cualquier dirección. Use cero si necesita igualdad aritmética exacta o aumente la tolerancia cuando las estimaciones sean imprecisas. relative_gap es positivo si la MRS supera la relación de precios y negativo si queda por debajo; gap_percent presenta la misma diferencia en porcentaje. La prueba corresponde a un óptimo interior y presupone preferencias diferenciables, precios positivos, utilidades marginales positivas y posibilidad de ajustar ambos bienes. Una solución de esquina puede ser correcta si un bien no se consume, los bienes son indivisibles o existen restricciones adicionales. La calculadora tampoco comprueba si se agota el presupuesto ni si la cesta es globalmente óptima; utilícela como prueba específica de primer orden dentro de un análisis más amplio.
Qué puede hacer con ella
Comprobar un ejercicio de economía
Verifique si las utilidades marginales y los precios cumplen el óptimo interior e identifique la reasignación necesaria.
Revisar una cesta de consumo candidata
Convierta las utilidades marginales estimadas en una comparación clara entre el intercambio privado y el de mercado.
Automatizar un análisis de sensibilidad
Consulte la API con precios o utilidades alternativos y registre cómo cambia la dirección recomendada de compra.
Preguntas frecuentes
¿Qué fórmula utiliza la calculadora?
Calcula MRS = MUx/MUy y la relación de precios = Px/Py, y después compara su diferencia relativa.
¿Por qué conviene comprar más X si la MRS supera la relación de precios?
Porque X aporta entonces más utilidad marginal por unidad monetaria que Y. Reasignar gasto hacia X mejora la utilidad bajo los supuestos habituales.
¿La igualdad de las razones demuestra que la cesta es óptima?
Confirma la condición interior de primer orden dentro de la tolerancia. Una prueba completa también puede exigir un presupuesto vinculante, curvatura adecuada y revisión de esquinas.
¿Qué modifica la tolerancia?
Fija la diferencia relativa máxima que se acepta como igualdad. El valor predeterminado 0.01 admite hasta un uno por ciento.
¿La utilidad marginal o el precio pueden ser cero?
No. Cada utilidad marginal y cada precio deben ser números finitos mayores que cero para que ambas razones estén definidas y tengan sentido económico.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/econ/optimal-consumption-mrs-price-ratio \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"marginal_utility_good_x":12,"marginal_utility_good_y":6,"price_good_x":8,"price_good_y":4}'const res = await fetch("https://api.kit.forhosting.com/econ/optimal-consumption-mrs-price-ratio", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"marginal_utility_good_x": 12,
"marginal_utility_good_y": 6,
"price_good_x": 8,
"price_good_y": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/econ/optimal-consumption-mrs-price-ratio",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"marginal_utility_good_x": 12,
"marginal_utility_good_y": 6,
"price_good_x": 8,
"price_good_y": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/econ/optimal-consumption-mrs-price-ratio", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"marginal_utility_good_x":12,"marginal_utility_good_y":6,"price_good_x":8,"price_good_y":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"marginal_utility_good_x":12,"marginal_utility_good_y":6,"price_good_x":8,"price_good_y":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/econ/optimal-consumption-mrs-price-ratio", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"marginal_utility_good_x": 12,
"marginal_utility_good_y": 6,
"price_good_x": 8,
"price_good_y": 4
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "econ.optimal_consumption_mrs_price_ratio",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |