Suppose that there are two types of workers: type H and type L. Type H workers are more productive than type L workers and type H workers find it less costly to obtain a given level of education e. Specifically, the marginal products of labor for each type of worker is:
$$m_H(e) = a_H e$$
$$m_L(e) = a_L e,$$
where \(a_L < a_H\) are constants. And the costs to each type of obtaining a given level of education \(e\) is:
$$c_H(e) = k_H e^2$$
$$c_L(e) = k_L e^2,$$
where \(k_L > k_H\). A worker's type is only observable by the worker but the amount of education a worker obtains is observed by a potential employer. So while a worker's wage cannot depend directly on that worker's type, the wage can be a function of that worker's chosen level of education. We consider two classes of equilibria: Pooling and separating.

Pooling Equilibria

A pooling equilibrium in ths model is a threshold value of education \(\bar{e}\) such that:

If a worker obtains \(e<\bar{e}\) units of education, then employers believe that worker is type L and pay that worker a wage \(w(e) = a_Le\).

If a worker obtains \(e\geqslant\bar{e}\) units of education, then employers believe that worker is type H with probability \(p\) and pay that worker a wage \(w(\bar{e}) = \bar{a} \bar{e} = \left( pa_H + (1-p)a_L\right)\bar{e} \).

Separating Equilibria

A pooling equilibrium in ths model is a threshold value of education \(\bar{e}\) such that:

If a worker obtains \(e<\bar{e}\) units of education, then employers believe that worker is type L and pay that worker a wage \(w(e) = a_Le\).

If a worker obtains \(e\geqslant\bar{e}\) units of education, then employers believe that worker is type H and pay that worker a wage \(w(e) = a_H e \).

Notes on the simulations

For the animated figures above, I used the following parameter values: \(\alpha_L = 4\), \(\alpha_H = 8\), \(k_L = 0.5\), \(k_H = 0.25\), and \(p = 0.25\). For the pooling equilibrium animation, I computed equilibria for \(e \in[0,19]\). And for the separating equilibrium animation, I computed equilibria for \(e \in[0,34]\). The Python code that I used to create these animations is available in this Github repository.