Hechscher-Ohlin-Samuelson#
Model of Trade#
See the Edgeworth Box notebook to understand how the Edgeworth Box diagrams drawn below were constructed to represent this economy.
from hos import *
Small Open Economy#
Consider a small-open economy with two production sectors – agriculture and manufacturing – with production in each sector taking place with constant returns to scale production functions. Producers in the agricultural sector maximize profits
Producers in manufacturing maximize
In equilibrium total factor demands must equal total supplies:
Here is an [Edgeworth Box](Edgeworth.ipynb_ that depicts the situation where
edgeplot(50)
(LA,KA)=(50.0, 69.2) (QA, QM)=(60.8, 41.2) RTS= 2.1

If you’re reading this using a jupyter server you can interact with the following plot, changing the technology parameters and position of the isoquant. If you are not this may appear blank or static.
LA = 50
interact(edgeplot, LA=(10, Lbar-10,1),
Kbar=fixed(Kbar), Lbar=fixed(Lbar),
alpha=(0.1,0.9,0.1),beta=(0.1,0.9,0.1));
Resource Allocation in a small open economy#
From the first order conditions for profit maximization in each sector we have:
Note this condition states that competition has driven firms to price at marginal cost in each industry or
This states that the world price line with slope (negative)
The Stolper Samuelson line#
We can derive a relationship between relative product prices (set on the world market) and the equilibrium wage-rental ration
With the Cobb Douglas technology we can write:
The first order necessary conditions for an interior optimum in each sector lead to an equilibrium where the following condition must hold:
Using these expressions and earlier factor demand expressions we can derive:
or
where
Inverting, we get an expression for the Stolper Samuelson Line
The Stolper Samuelson Theorem#
The Stolper Samuelson theorem tells us how changes in the world relative price of products translates into changes in the relative price of factors and therefore in the distribution of income in society.
The theorem states that an increase in the relative price of a good will lead to an increase in both the relative and the real price of the factor used intensively in the production of that good (and conversely to a decline in both the real and the relative price of the other factor).
This relationship can be seen from the formula. If agriculture were more labor intensive than manufacturing, so
ssline(a=0.3, b=0.7)

Solving for equilibrium allocation as a function of relative price p#
Code to solve for unique HOS equilibrium as a function of world relative price
From Lerner-Edgeworth box
Equilibrium in the capital market:
$
We can use
Noting that
We now have enough to solve the model. If the economy is open to trade, it takes factor prices as given. For example if the
Show code cell source
from IPython.display import display, Markdown
p = 1
a = 0.3
b = 0.7
wr = wreq(p, a=a, b=b)
ka = kl(wr,a)
km = kl(wr,b)
LA, KA = hos_eq(p, Kbar=100, Lbar=100)
display(Markdown(rf"""
When $\frac{{P_a}}{{P_m}}=1, \frac{{w}}{{r}}$ = {wr:0.2f}
and $(k_a, k_m)$ = ({ka:0.2f}, {km:0.2f})
"""))
When $\frac{P_a}{P_m}=1, \frac{w}{r}$ = 1.00 and $(k_a, k_m)$ = (0.43, 2.33)
HOS(1)
(LA,KA)=(40.0, 60.0) (QA, QM)=(51.0, 51.0) RTS= 2.2

HOS(1.06)
(LA,KA)=( 9.7, 19.4) (QA, QM)=(14.7, 86.3) RTS= 3.0

interact(HOS, p=(0.8, 1.1,0.01),
Kbar=fixed(Kbar), Lbar=(90, 150,10),
alpha=(0.1,0.5,0.1), beta=(0.5,0.9,0.1));
klplot(1)

lerner(p=1.2)
w/r = 2.49, KLa = 3.73, KLm = 1.66

interact(lerner, p=(0.7,1.4,0.1));
closed_plot(alpha=0.8, beta=0.2)
(Qa, Qm) = (60.6, 60.6)

interact(closed_plot, alpha=(0.1,0.9,0.1), beta=(0.1,0.9,0.1));
NOTE: Something is off on this Rybyczynski Edgeworth plot… had been working..
rybplot(1, Kbar=Kbar, Lbar=Lbar, alpha=0.65, beta=0.35)

Rbyczynski Theorem. Adding labor should more than proportionately expand the productinon of the labor-intensive product and reduce the production of the other good.
Here Manufacturing is the labor-intensive sector. We added increase
rybplot(1, Kbar=Kbar, Lbar=Lbar*1.5, alpha=0.65, beta=0.35)

interact(rybplot, p = fixed(1), Lbar =(50,150,10), Kbar =(50,150,10), alpha=fixed(0.65), beta=fixed(0.35));