If you work with docker, launch the jupyter notebook from the command line as follows
docker pull axlit/edgebox
docker run -p 8888:8888 axlit/edgebox
copy the link from the command line and then navigate to 127.0.0.1:8888 or localhost:8888 in your browser and open README.ipynb notebook.
pyEdgeworthBox provides with a tool to plot the Edgeworth box and calculate equilibrium, core, pareto effective allocation etc in the pure exchange economy. These are studied in the microeconomics courses. A pure exchange economy consists of 2 consumers and 2 goods. Each consumer has her own preferences represented by a utility function and provided with some initial endowment of 2 goods (wich, however, could be 0).
The main class is EdgeBox where you need to put the utilities of each consumer and their initial endowments. Consider an economy where the first consumer has a utility function
This example can be calculated like this:
#!pip install pyEdgeworthBox
%matplotlib inline
import pyEdgeworthBox as eb
EB=eb.EdgeBox( u1 = lambda x,y: x**0.6*y**0.4
, u2 = lambda x,y: x**0.1*y**0.9
, IE1 = [10,20]
, IE2 = [20,10])
EB.plot()
Another example:
EB2=eb.EdgeBox( u1 =lambda x,y: x**2*y
, u2=lambda x,y: x+y
, IE1=[5,5]
, IE2=[5,5])
EB2.plot()
u1 - utility function of the 1st participant
u2 - utility function of the 2nd participant
IE1 - initial endowment of the 1st participant (of the good X and good Y)
IE2 - the same for the 2nd participant
This means that the preferences and endowments are enough to determine the rest (prices, equilibrium etc).
The object of the class EdgeBox contains the following properties that correspond to certain concepts of microeconomics/game theory.
Some of them are a point or a set of points, and some are functions.
The following concepts are set of points used to draw the line, i.e. they might not contain all possible solutions (e.g. usually the case for the contract curve), however, some might (e.g. the equilibrium).
CORE - Core
PARETO - Contract curve, or efficient frontier or the set of Pareto efficient points
EQ1 - Competitive (Walrasian) equilibrium solution of the 1st participant
EQ2 - the same for the 2nd participant
BUDGET - Budget line.
p - price at equilibrium point.
p_weighted - normalized (i.e. s.t. the sum of its components is 1) price at equilibrium point.
The relation between the concepts is the folloiwng: EQ is in CORE is in PARETO.
Note that they don't contain all possible points only some of them.
The properties below are in the functional form, i.e. you need to provide with the input argument(s).
MRS1 - Marginal rate of substitution of the 1st participant.
MRS2 - the same for the 2nd participant.
Bp - budget line.
_pareto - Pareto solutions.
The computation is implemented only for the interior solutions! For "bad" functions solutions could deviate or not be achieved at all.
pip install pyEdgeworthBox
@misc{pyEdgeworthBox2023,
author = {Maxim Litvak},
title = {pyEdgeworthBox: A Python Library for Edgeworth Box Plots},
year = {2024}, % Year of the version or first release, as appropriate
version = {0.3.3},
howpublished = {\url{https://github.com/maxlit/pyEdgeworthBox}},
}