Suppose a continuum of workers and firms, both of size 1. Workers are identical but there are two types of firms, one more productive than the other. \(y_i\) is type \(i\) employer’s revenue flow per worker, \(i \in \{1, 2\}\), with \(y_2 > y_1\). The fraction of low productivity employers is indicated by \(\sigma\). At a moment in time, each worker is either unemployed (state 0) or employed (state 1). At random time intervals, a worker receives information about a new or alternative job opening. Consider \(\lambda_0 = \lambda_1 = \lambda\) the arrival rate representing the parameter of a Poisson arrival process. As workers are assumed to randomly search among employers, an offer is assumed to be the realization of a random draw from \(F(.)\), the distribution of wage offers across employers. \(F(.)\) is the weighted average salary offer made by the two types of company: \[F(w) = \sigma F_1(w) + (1 -\sigma)F_2(w) \]
where \(F_i(.)\) is the distribution function of wage offers posted by the firm-type \(i\). Job-worker matches are destroyed at an exogenous positive rate \(s\). Any unemployed worker receives utility flow \(b\) per instant. All agents discount future income at rate \(r\).
The first necessary condition for defining an equilibrium \(\{F_1, F_2, \pi_1, \pi_2\}\) is that in steady-state, the flow of workers into unemployment should be equal to the flow of workers out of unemployment:
Condition 1: \[\underbrace{\underbrace{s}_{\substack{\text{Separation} \\ \text{rate}}} \times \underbrace{(1-u)}_{\substack{\text{Employment} \\ \text{rate}}}}_{\substack{\text{Flow of workers} \\ \text{into unemployment}}} = \underbrace{\underbrace{\lambda}_{\substack{\text{Job offers} \\ \text{arrival rate}}} \times \underbrace{\left[1-F(w^r)\right]}_{\substack{\text{Probability that the} \\ \text{offer is high enough}}} \times \underbrace{u}_{\substack{\text{Unemployment} \\ \text{rate}}}}_{\text{Flow of workers out of unemployment}}\]
As in equilibrium, no firm would offer a wage that no worker would be willing to accept, all wage offers will be larger than reservation wage (i.e., \(F(w^r) = 0\)), meaning that the probability that the offer is high enough \(\left[1-F(w^r)\right]\) is equal to 1. This allows to determine the unemployment rate as:
\[s(1-u) = \lambda u \hspace{.05in} \Leftrightarrow \hspace{.05in} \boxed{u = \frac{s}{s + \lambda}}\]
The second condition is that in steady-state, at every wage level \(w\), the flow of workers into jobs providing a wage no larger than \(w\) should be equal to the flow of workers out of jobs providing a wage no larger than \(w\):
Condition 2: \[\underbrace{\underbrace{\underbrace{s}_{\substack{\text{Separation} \\ \text{rate}}} \times \underbrace{(1-u)}_{\substack{\text{Employment} \\ \text{rate}}} \times \underbrace{G(w)}_{\substack{\text{Share of workers} \\ \text{earning at most }w}}}_{\text{Firings from jobs providing a wage no larger than }w} + \underbrace{\underbrace{\lambda}_{\substack{\text{Job offers} \\ \text{arrival rate}}} \times \underbrace{\left[1-F(w)\right]}_{\substack{\text{Probability that the} \\ \text{offer is higher than }w}} \times \underbrace{(1 - u)G(w)}_{\substack{\text{Stock of workers} \\ \text{earning at most }w}}}_{\text{Outflow to jobs offering a wage larger than }w}}_{\text{Flow of workers out of jobs providing a wage no larger than }w}\]
\[= \underbrace{\underbrace{\lambda}_{\substack{\text{Job offers} \\ \text{arrival rate}}} \times \underbrace{u}_{\substack{\text{Unemployment} \\ \text{rate}}} \times \underbrace{\max\{F(w) - F(w^r),0\}}_{\text{Firms offering a wage no larger than }w} }_{\text{Flow of workers into jobs providing a wage no larger than }w} \]
Still considering that no firm would offer wages that are lower than the reservation wage (\(F(w^r) = 0\)), this allows to recover the distribution of salaries \(G(w)\) as:
\[s(1-u)G(w) + \lambda\left[1-F(w)\right](1-u)G(w) = \lambda \underbrace{\max\{F(w) - F(w^r),0\}}_{F(w)}u\] \[G(w) \times \bigg(s(1-u) + \lambda\left[1-F(w)\right](1-u)\bigg) = \lambda F(w)u\] \[G(w) = \frac{\lambda F(w)}{s + \lambda\left[1-F(w)\right]}\times\frac{u}{1-u}\] \[G(w) = \frac{\lambda F(w)}{s + \lambda\left[1-F(w)\right]}\times\frac{\frac{s}{s+\lambda}}{1-\frac{s}{s+\lambda}}\] \[G(w) = \frac{\lambda F(w)}{s + \lambda\left[1-F(w)\right]}\times\frac{s}{\lambda}\] \[\boxed{G(w) = \frac{sF(w)}{s + \lambda\left[1-F(w)\right]}}\]
These two first conditions allow to write the equation of firms’ profit. Indeed, we know that every match between a worker and a firm of type \(i\) will generate a productivity \(y_i\), and will cost \(w\), the wage of the worker, to the firm. Denoting \(l(w)\) the measure of workers per firm earning a wage \(w\), the profit of firm \(i\) thus writes \(\pi_i = l(w)(y_i - w)\), with:
\[l(w) = \underset{\varepsilon \rightarrow 0}{\lim} \frac{G(w) - G(w-\varepsilon)}{F(w) - F(w-\varepsilon)}(1-u)\] \[l(w) = \frac{G'(w)}{F'(w)} (1-u),\]
where \(G'(w) = g(w)\) is the density of salaries at wage \(w\), that according to the formula of \(G(w)\) derived above writes:
\[g(w) = \frac{ sF'(w)( s + \lambda \left[ 1 - F(w) \right]) + sF(w)\lambda F'(w)}{(s + \lambda\left[ 1 - F(w)\right])^2}\] \[g(w) = \frac{s^2F'(w) + sF'(w)\lambda -sF'(w)\lambda F(w) +sF'(w)\lambda F(w)}{(s + \lambda\left[ 1 - F(w)\right] )^2}\] \[g(w) = \frac{s(s+\lambda)F'(w)}{(s + \lambda\left[ 1 - F(w)\right])^2}\]
By plugging this expression in that of \(l(w)\), we obtain:
\[l(w) = \frac{s(s+\lambda)}{(s + \lambda\left[ 1 - F(w)\right])^2}\times(1-u)\] \[l(w) = \frac{s(s+\lambda)}{(s + \lambda\left[ 1 - F(w)\right])^2}\times\bigg( 1-\frac{s}{s+\lambda}\bigg)\] \[\boxed{l(w) = \frac{s\lambda}{(s + \lambda\left[ 1 - F(w)\right])^2}}\]
And we can thus rewrite the profit function \(\pi_i = l(w)(y_i - w)\) as:
\[\boxed{\pi_i = \frac{s\lambda}{(s + \lambda\left[ 1 - F(w)\right])^2}(y_i-w)},\]
with \(F(w) = \sigma F_1(w) + (1 -\sigma)F_2(w)\). Thus, the last unknown expression remaining at this stage to be able to characterize the equilibrium \(\{F_1, F_2, \pi_1, \pi_2\}\) is that of \(F_1(w)\) and \(F_2(w)\). To do so, first note that \(w_2 \geq w_1\) for each \(w_i\) on the support of \(F_i\) under the following condition:
Condition 3:
\[\begin{equation*} \begin{cases} l(w)(y_i-w) = \pi_i \text{, on the support of $F_i$,}&\\ l(w)(y_i-w) \leq \pi_i \text{, otherwise.} \end{cases} \end{equation*}\]
This indeed implies a productivity-segregated labor demand over the wage dimension, as can be justified by the following inequalities. \[\pi_2 = \underbrace{l(w_2)(y_2 - w_2) \geq l(w_1)(y_2 - w_1)}_{\text{From Condition 3}} > \underbrace{l(w_1)(y_1-w_1) = \pi_1 \geq l(w_2)(y_1 - w_2)}_{\text{From Condition 3}}\]
Note that consequently \(F(\underline{w}_1) = 0\), \(F(\overline{w}_1) = F(\underline{w}_2) = \sigma\), \(F(\overline{w}_2) = 1\), and \(F_i(\underline{w}_i) =0\), \(F_i(\overline{w}_i) = 1\) \(\forall i\). The last condition to recover \(F(w)\), and as a consequence to characterize \(\pi_i\), is that at equilibrium every wage offer should yield the same steady-state profit. As implied by the preceding argument, the following equality should then hold over each type-specific domain of wage offers:
Condition 4: \[\frac{s\lambda}{(s + \lambda\left[1-F_i(w)\right])^2}(y_i-w) = \frac{s\lambda}{(s + \lambda\underbrace{\left[1-F_i(\underline{w}_i)\right]}_{=1 \: \forall i})^2}(y_i-\underline{w}_i) \hspace{.2in} \forall i,\]
allowing to recover \(F_i(w)\) as:
\[\frac{y_i - w}{(s + \lambda\left[1-F_i(w)\right])^2} = \frac{y_i - \underline{w}_i}{(s+\lambda)^2}\] \[\frac{s + \lambda\left[1-F_i(w)\right]}{s + \lambda} = \sqrt{\frac{y_i - w}{y_i - \underline{w}_i}} \] \[ \lambda\left[1-F_i(w)\right] = (s+\lambda) \sqrt{\frac{y_i - w}{y_i - \underline{w}_i}}-s \] \[\left[1-F_i(w)\right] =\frac{s+\lambda}{\lambda}\sqrt{\frac{y_i - w}{y_i - \underline{w}_i}}-\frac{s}{\lambda}\] \[F_i(w) = 1 + \frac{s}{\lambda} - \frac{s+\lambda}{\lambda}\sqrt{\frac{y_i - w}{y_i - \underline{w}_i}} \] \[\boxed{F_i(w) = \frac{s+\lambda}{\lambda} \bigg( 1 -\sqrt{\frac{y_i - w}{y_i - \underline{w}_i}} \bigg)}\]
Thus, the 4 conditions stated above allow to define the equilibrium as:
\[\begin{equation*} \begin{cases} \pi_i = \frac{s\lambda}{(s+\lambda\left[1-F(w)\right])^2} (y_i - w) &\\ & \forall i = \{1,2\}, \\[-1em] F_i(w) = \frac{s+\lambda}{\lambda} \bigg( 1 -\sqrt{\frac{y_i - w}{y_i - \underline{w}_i}} \bigg) \end{cases} \end{equation*}\]
with \(F(w) = \sigma F_1(w) + (1 -\sigma)F_2(w)\).
Case 1: \(y_1 < b\)
To investigate what value of the minimum wage would exclude firms of type 1 in that case, one should first define the bounds \(\{\underline{w}_1, \overline{w}_1, \underline{w}_2, \overline{w}_2\}\) of the supports of the wage offer distributions for both types \(\{F_1(w), F_2(w)\}\). Consider first a general framework without a minimum wage. The lowest wage \(\underline{w}_1\) firms of type 1 could offer to workers is the reservation wage \(w^r\), i.e., the level of wage such that the worker is indifferent between working or not working. Denote the employment status of the worker \(e = \{0,1\}\), and \(V_e\) the value associated with employment status \(e\).
\[rV_0 = \underbrace{b}_{\substack{\text{Unemployment} \\ \text{benefits}}} + \underbrace{\lambda_0\int_{\underline{w}}^{\overline{w}}}_{\substack{\text{Probability} \\ \text{of receiving} \\ \text{any job offer}}}\underbrace{\left[V_1(x) - V_0 \right]}_{\substack{\text{Associated} \\ \text{gains}}}dF(x) \]
\[rV_1(w) = \underbrace{w}_{\substack{\text{Current} \\ \text{wage}}} + \underbrace{\lambda_1\int_{w}^{\overline{w}}}_{\substack{\text{Probability} \\ \text{of receiving} \\ \text{a better} \\ \text{job offer}}} \underbrace{\left[V_1(x) - V_1(w) \right]}_{\text{Associated gains}}dF(x) - \underbrace{s}_{\substack{\text{Probability} \\ \text{of job loss}}} \underbrace{\left[V_1(w) - V_0\right]}_{\text{Associated loss}}\]
We see that the value of being employed depends on the wage, but not the value of unemployment. The reservation wage is such that \(V_1(w^r) = V_0 \Leftrightarrow rV_1(w^r) = rV_0\), which yields:
\[b + \lambda_0\int_{w^r}^{\overline{w}}\left[V_1(x) - V_0 \right]dF(x) = w^r + \lambda_1\int_{w^r}^{\overline{w}} \left[V_1(x) - V_1(w^r) \right]dF(x) - s \underbrace{\left[V_1(w^r) - V_0\right]}_{= 0}\]
\[ w^r = b + (\lambda_0 - \lambda_1)\int_{w^r}^{\overline{w}}\left[V_1(x) - V_0 \right]dF(x)\]
And as in our setting \(\lambda_e = \lambda\) \(\forall e\), i.e., the arrival rate of job offers is the same for employed and unemployed workers, the fact that \(\lambda_0 - \lambda_1 = 0\) yields \(\boxed{w^r = b}\).
Given that \(F_i(\overline{w_i}) = 1\) \(\forall i\), the expression of the upper bounds of both supports can be expressed from \(F_i(w)\):
\[F_i(w) = \frac{s+\lambda}{\lambda} \bigg( 1 -\sqrt{\frac{y_i - w}{y_i - \underline{w}_i}} \bigg)\] \[1 = \frac{s+\lambda}{\lambda} \bigg( 1 -\sqrt{\frac{y_i - \overline{w}_i}{y_i - \underline{w}_i}} \bigg)\] \[ \frac{s+\lambda}{\lambda}\sqrt{\frac{y_i-\overline{w}_i}{y_i - \underline{w}_i}} = \frac{s+\lambda}{\lambda}-1\] \[\frac{y_i-\overline{w}_i}{y_i - \underline{w}_i}=\bigg(\frac{s}{s+\lambda}\bigg)^2\] \[\overline{w}_i = y_i -(y_i - \underline{w}_i)\bigg(\frac{s}{s+\lambda}\bigg)^2 \] \[\overline{w}_i = \underline{w}_i + (y_i - \underline{w}_i)\left[1 - \bigg(\frac{s}{s+\lambda}\bigg)^2\right], \]
and from Condition 3, \(\underline{w}_2 = \overline{w}_1\), such that the set \(\{\underline{w}_1, \overline{w}_1, \underline{w}_2, \overline{w}_2\}\) is defined by:
\[\begin{equation*} \begin{cases} \underline{w}_1 = b &\\ \overline{w}_1 = \underline{w}_2 = b + (y_1 - b)\left[1 - (\frac{s}{s+\lambda})^2\right]&\\ \overline{w}_2 = \underline{w}_2 + (y_2 - \underline{w}_2)\left[1 - (\frac{s}{s+\lambda})^2\right] \end{cases} \end{equation*}\]
According to the above, if \(y_1 < b\), then any wage offer from firm 1 that would yield positive profits would be rejected by workers because they would be better off not working thanks to the unemployment benefits that are higher than any offer firm 1 could make for its business to be profitable. In that case, whatever the value of the minimum wage, low productivity firms are thus excluded from the market.
Case 2: \(y_1 > b\)
In this more realistic setting, low productivity firms are not necessarily excluded from the market as they can make profit by offering wages that workers would accept, and the value of the minimum wage could be a concern for these firms. Indeed, in that case the lowest wage firms of type 1 are legally allowed to set is the value of the minimum wage. If the government sets a minimum wage that is larger than \(y_1\), then firm 1 would legally not be allowed to offer wages that are weakly lower than the value that would be generated from the match with a worker. In other words, as soon as \(mw > y_1\), firms of type 1 are not able to make any weakly positive profit and are excluded from the market, not because workers would not accept the offer as in the previous case but because firms are not allowed to set the wage low enough. This conclusion can be drawn directly from the profit equation, but we can also see it from the expressions of the bounds of the support of low productivity firms, \(\{\underline{w}_1, \overline{w}_1\}\):
\[\begin{equation*} \begin{cases} \underline{w}_1 = mw &\\ \overline{w}_1 = mw + (y_1 - mw)\left[1 - (\frac{s}{s+\lambda})^2\right]& \end{cases} \end{equation*}\]
Indeed, as \(mw\) increases towards \(y_1\), \(\underline{w}_1\) increases towards \(y_1\) at rate 1, and \(\overline{w}_1\) does also increase towards \(y_1\) but at rate \((\frac{s}{s+\lambda})^2 < 1\). In other words, as the minimum wage increases, the bounds of the support of wages of the low productivity firm shifts to the right of the wage axis, and shrinks as it gets closer to \(y_1\), up to the point at which \(mw = y_1\), where \(\underline{w}_1 = \overline{w}_1 = y_1\). By letting the minimum wage go beyond this threshold of \(y_1\), we obtain \(\underline{w}_1 = mw > y_1\) and \[\overline{w}_1 = \underbrace{mw}_{> y_1} + \underbrace{(y_1 - \underbrace{mw}_{> y_1})\left[1 - (\frac{s}{s+\lambda})^2\right]}_{<0},\]
i.e., that \(\underline{w}_1 = mw > \overline{w}_1 \Leftrightarrow \underline{w}_1 > \overline{w}_1\), which is inconsistent and simply translates the fact that in this region where \(mw > y_1\), low productivity firms are excluded from the market.
Consider the following set of parameters:
# Minimum wage
mw <- .8
# Job destruction rate
s <- .287
# Job offer arrival rate
lambda <- .142
# Productivity of firms of type 1
y1 <- 2
# Productivity of firms of type 2
y2 <- 2.5
# Share of low-productivity firms
sigma <- .25
# Precision of the curves:
precision <- 1/1000
The bounds of the wage distribution write:
lb1 <- mw
ub1 <- lb1 + ((y1 - lb1) * (1 - ((s / (s + lambda))^2)))
lb2 <- ub1
ub2 <- lb2 + ((y2 - lb2) * (1 - ((s / (s + lambda))^2)))
And the wage offer/salaries cumulative and density distribution are obtained from:
# Compute F(w)
##############
# Over the domain of firm 1
w1 <- seq(lb1, ub1, precision)
Fw1 <- (lambda / (lambda + s))^-1 * (1 - sqrt((y1 - w1)/(y1 - lb1)))
# Over the domain of firm 2
w2 <- seq(lb2 + precision, ub2, precision)
Fw2 <- (lambda / (lambda + s))^-1 * (1 - sqrt((y2 - w2)/(y2 - lb2)))
# Over the whole domain
wage <- c(w1, w2)
Fw <- c(Fw1 * sigma, sigma + (Fw2 * (1-sigma)))
# Compute G(w)
##############
Gw <- (s * Fw) / (s + (lambda * (1 - Fw)))
# Compute f(w)
##############
# Over the domain of firm 1
fw1 <- (sigma *(s + lambda)) / (2 * lambda * sqrt(y1 - lb1) *
sqrt(y1 - w1))
# Over the domain of firm 2
fw2 <- ((1-sigma) *(s + lambda)) / (2 * lambda * sqrt(y2 - lb2) *
sqrt(y2 - w2))
# Over the whole support
fw <- c(fw1, fw2)
# Compute g(w)
##############
gw <- (s*(s+lambda)*fw) / ((s + (lambda * (1 - Fw)))^2)
And we can plot the distributions as:
data <- data.frame(wage, Fw, Gw, fw, gw)
cumulplot <- ggplot(data = data, aes(x = wage)) +
geom_point(aes(y = Fw), color = 'steelblue',
size = 1, alpha = .2) +
geom_point(aes(y = Gw), color = 'black',
size = 1, alpha = .2) +
geom_segment(aes(x=ub1,y=0,xend=ub1,yend=(sigma*max(Fw1))),
linetype = "dashed", size = 1, alpha = .6) +
scale_y_continuous(name = "Wage offers (Blue) - Salaries (Black)",
limits = c(0, 1), breaks = seq(0,1,.25)) +
scale_x_continuous(name = "Wage", limits = c(lb1, ub2),
breaks = seq(lb1, ub2, .2)) +
annotate("text", x = 1.75, y = 0.75, label = "F(w)", size = 4) +
annotate("text", x = 1.92, y = 0.55, label = "G(w)", size = 4) +
ggtitle("Figure 1: Cumulative distributions")
densityplot <- ggplot(data = data, aes(x = wage)) +
geom_point(aes(y = fw), color = 'steelblue',
size = 1, alpha = .2) +
geom_point(aes(y = gw), color = 'black',
size = 1, alpha = .2) +
geom_segment(aes(x=ub1,y=0,xend=ub1,yend=(min(fw2))),
linetype = "dashed", size = 1, alpha = .6) +
scale_y_continuous(name = "Wage offers (Blue) - Salaries (Black)",
limits = c(0, 2.5), breaks = seq(0,2.5,.5)) +
scale_x_continuous(name = "Wage", limits = c(lb1, ub2),
breaks = seq(lb1, ub2, .2)) +
annotate("text", x = 1.975, y = 1.25, label = "f(w)", size = 4) +
annotate("text", x = 1.825, y = 1.9, label = "g(w)", size = 4) +
ggtitle("Figure 2: Density distributions")
ggarrange(cumulplot, densityplot, ncol = 2, nrow = 1)
Implication 1: Wage distributions are kinked
Figure 1 represents the distribution of wage offers \(F(w)\) and the distribution of salaries \(G(w)\) in the economy. A major difference with what is obtained from the model with homogenous firms is the fact that both the distribution of wage offers and that of salaries are kinked. In this simple setting with two types of firms we only observe one kink, but more generally in a setting with \(n\) types of firms, we would observe \(n-1\) kinks, one at each of the \(n-1\) junctions between the supports of wage offer distributions of each type of firm. This kink then results in a jump in the densities of wage offers \(f(w)\) and salaries \(g(w)\) in the economy, as represented by Figure 2.
Implication 2: More productive firms offer higher wages
We can see that the kink in Figure 1 and the jump in Figure 2 occur at the wage level \(\overline{w}_1 = \underline{w}_2\) that separates low productivity firms from high productivity firms. This does illustrate an implication of Condition 3, that wages offered by high productivity firms, above \(\overline{w}_1\), are larger than wages offered by low productivity firms, below \(\overline{w}_1\).
Implication 3: More productive firms have larger workforce and retain workers longer
Figure 3 shows the evolution of \(l(w)\), and Figure 4 shows the evolution of the number of workers per firm being offered a better wage expressed as:
\[q(w) = \underbrace{\lambda}_{\substack{\text{Probability} \\ \text{of receiving} \\ \text{a wage offer}}} \times \underbrace{\left[1-F(w)\right]}_{\substack{ \text{Probability that} \\ \text{it is better than} \\ \text{the current wage}}} \times \underbrace{l(w)}_{\substack{ \text{Number} \\ \text{of workers} \\ \text{per firm}}}\]
# Number of workers per firm earning w
lw <- (s*lambda) / ((s + (lambda * (1 - Fw)))^2)
data <- data.frame(data, lw)
plotlw <- ggplot(data = data, aes(x = wage)) +
geom_point(aes(y = lw), color = 'steelblue',
size = 1, alpha = .2) +
geom_segment(aes(x=ub1,y=.15,xend=ub1,yend=(lw[match(round(ub1,2), wage)])),
linetype = "dashed", size = 1, alpha = .6) +
scale_y_continuous(name = "Number of workers per firm",
limits = c(.15, .55), breaks = seq(.2,.5,.1)) +
scale_x_continuous(name = "Wage", limits = c(lb1, ub2),
breaks = seq(lb1, ub2, .2)) +
annotate("text", x = 1.82, y = .45, label = "l(w)", size = 4) +
ggtitle("Figure 3: Labor force")
# Number of workers per firm being offered a better wage
exits <- lambda * (1-Fw) * lw
data <- data.frame(data, exits)
plotqw <- ggplot(data = data, aes(x = wage)) +
geom_point(aes(y = exits), color = 'steelblue',
size = 1, alpha = .2) +
geom_segment(aes(x=ub1,y=0,xend=ub1,yend=(exits[match(round(ub1,2), wage)])),
linetype = "dashed", size = 1, alpha = .6) +
scale_y_continuous(name = "Voluntary quits",
limits = c(0, max(exits)), breaks = seq(0,max(exits),.01)) +
scale_x_continuous(name = "Wage", limits = c(lb1, ub2),
breaks = seq(lb1, ub2, .2)) +
annotate("text", x = 1.95, y = .015, label = "q(w)", size = 4) +
ggtitle("Figure 4: Voluntary quits")
ggarrange(plotlw, plotqw, ncol = 2, nrow = 1)
The fact that the higher the wage the larger the steady-state labor force simply reflects that higher wage firms, that are also more profitable given Condition 3, attract more workers from and lose less workers to other employers. The voluntary quits per firm are naturally decreasing with \(w\) because the higher the wage the lower the chances to receive an offer with a higher wage.
Let wage inequality refer to the difference between the average wage and the minimum wage. To evaluate the impact of a minimum wage increase on wage inequality, consider 4 economies where:
\[\begin{equation*} \{\sigma, y_1, y_2\} = \{.25, 2, 2.25\}\\ \{\sigma, y_1, y_2\} = \{.25, 2, 3\}\\ \{\sigma, y_1, y_2\} = \{.75, 2, 2.25\}\\ \{\sigma, y_1, y_2\} = \{.75, 2, 3\} \end{equation*}\]
The impact of an increase in the minimum wage on wage inequality as measured by the difference between the average wage and the minimum wage is summarized in the following table.
param1 <- c(.25, 2, 2.25)
param2 <- c(.25, 2, 3)
param3 <- c(.75, 2, 2.25)
param4 <- c(.75, 2, 3)
param <- rbind(param1, param2, param3, param4)
s <- .287
lambda <- .142
precision <- 1/1000
inequalities <- c()
minimum_wages <- c(.8, 1)
for (mw in minimum_wages) {
inequalitiesi <- c()
for (i in seq(1, 4, 1)) {
# Bounds of the distributions
#############################
lb1 <- mw
ub1 <- lb1 + ((param[i, 2] - lb1) * (1 - ((s / (s + lambda))^2)))
lb2 <- ub1
ub2 <- lb2 + ((param[i, 3] - lb2) * (1 - ((s / (s + lambda))^2)))
# Compute F(w)
##############
# Over the support of firm 1
w1 <- seq(lb1, ub1, precision)
Fw1 <- (((lambda + s) / lambda) * (1 - sqrt((param[i, 2] - w1)/(param[i, 2] - lb1))))
# Over the support of firm 2
w2 <- seq(lb2 + precision, ub2, precision)
Fw2 <- (((lambda + s) / lambda) * (1 - sqrt((param[i, 3] - w2)/(param[i, 3] - lb2))))
# Over the whole support
wage <- c(w1, w2)
Fw <- c(Fw1 * param[i, 1], param[i, 1] + (Fw2 * (1-param[i, 1])))
# Compute f(w)
##############
# Over the support of firm 1
fw1 <- ((param[i, 1] *(s + lambda)) / (2 * lambda * sqrt(param[i, 2] - lb1) * sqrt(param[i, 2] - w1)))
# Over the support of firm 2
fw2 <- (((1-param[i, 1]) *(s + lambda)) / (2 * lambda * sqrt(param[i, 3] - lb2) * sqrt(param[i, 3] - w2)))
# Over the whole support
fw <- c(fw1, fw2)
# Compute g(w)
##############
gw <- (s*(s+lambda)*fw) / ((s + (lambda * (1 - Fw)))^2)
# Compute the level of inequalities
###################################
mean_wage <- sum(gw * wage) / sum(gw)
inequalitiesi <- c(inequalitiesi, mean_wage - mw)
}
inequalities <- rbind(inequalities, inequalitiesi)
}
# Compute the percentage change of the level of inequalities in each economy.
#############################################################################
pct_decrease <- c()
for (i in 1:4){
pct <- (inequalities[1,i] - inequalities[2,i]) / inequalities[1,i]
pct_decrease <- c(pct_decrease, pct)
}
pct_decrease <- round(pct_decrease * 100)
# Frame the results
###################
table <- rbind(round(inequalities, 2), pct_decrease)
rownames(table) <- c("Inequalities (mw = .8)",
"Inequalities (mw = 1)",
"Percentage decrease")
colnames(table) <- c("{.25, 2.25}", "{.25, 3}",
"{.75, 2.25}", "{.75, 3}")
table
## {.25, 2.25} {.25, 3} {.75, 2.25} {.75, 3}
## Inequalities (mw = .8) 0.82 1.01 0.56 0.63
## Inequalities (mw = 1) 0.69 0.89 0.47 0.54
## Percentage decrease 15.00 12.00 16.00 14.00
And graphically:
plotEconomy <- function(parameters) {
# Compute G(w) and the average wage under mw = .8
mw <- .8
s <- .287
lambda <- .142
y1 <- 2
precision <- 1/1000
lb1 <- mw
ub1 <- lb1 + ((y1 - lb1) * (1 - ((s / (s + lambda))^2)))
lb2 <- ub1
ub2 <- lb2 + ((parameters[2] - lb2) * (1 - ((s / (s + lambda))^2)))
w1 <- seq(lb1, ub1, precision)
Fw1 <- (lambda / (lambda + s))^-1 * (1 - sqrt((y1 - w1)/(y1 - lb1)))
w2 <- seq(lb2 + precision, ub2, precision)
Fw2 <- (lambda / (lambda + s))^-1 * (1 - sqrt((parameters[2] - w2)/(parameters[2] - lb2)))
wage <- c(w1, w2)
Fw <- c(Fw1 * parameters[1], parameters[1] + (Fw2 * (1-parameters[1])))
fw1 <- (parameters[1] *(s + lambda)) / (2 * lambda * sqrt(y1 - lb1) * sqrt(y1 - w1))
fw2 <- ((1-parameters[1]) *(s + lambda)) / (2 * lambda * sqrt(parameters[2] - lb2) * sqrt(parameters[2] - w2))
fw <- c(fw1, fw2)
Gw <- (s * Fw) / (s + (lambda * (1 - Fw)))
gw <- (s*(s+lambda)*fw) / ((s + (lambda * (1 - Fw)))^2)
mean_wage <- sum(gw * wage) / sum(gw)
# Compute G(w) and the average wage under mw = 1
mw <- 1
lb1 <- mw
lb1id <- which.min(abs(wage-lb1))
ub1 <- lb1 + ((y1 - lb1) * (1 - ((s / (s + lambda))^2)))
lb2 <- ub1
ub1id <- which.min(abs(wage-ub1))
ub2 <- lb2 + ((parameters[2] - lb2) * (1 - ((s / (s + lambda))^2)))
ubmax <- ub2
upperw <- seq(wage[length(wage)], ubmax, precision)
wage <- c(wage, upperw)
upperGw <- rep(NA, length(upperw))
Gw <- c(Gw, upperGw)
w1 <- wage[lb1id:ub1id]
Fw1 <- (lambda / (lambda + s))^-1 * (1 - sqrt((y1 - w1)/(y1 - lb1)))
w2 <- wage[seq(ub1id, length(wage), 1)]
Fw2 <- (lambda / (lambda + s))^-1 * (1 - sqrt((parameters[2] - w2)/(parameters[2] - lb2)))
wage2 <- c(w1, w2)
Fw <- c(Fw1 * parameters[1], parameters[1] + (Fw2 * (1-parameters[1])))
fw1 <- (parameters[1] *(s + lambda)) / (2 * lambda * sqrt(y1 - lb1) * sqrt(y1 - w1))
fw2 <- ((1-parameters[1]) *(s + lambda)) / (2 * lambda * sqrt(parameters[2] - lb2) * sqrt(parameters[2] - w2))
fw <- c(fw1, fw2)
Gw2 <- (s * Fw) / (s + (lambda * (1 - Fw)))
gw <- (s*(s+lambda)*fw) / ((s + (lambda * (1 - Fw)))^2)
mean_wage2 <- sum(gw * wage2) / sum(gw)
seqbelowGw2 <- rep(NA, length(wage) - length(wage2))
Gw2 <- c(seqbelowGw2, Gw2)
# Plot the economy
##################
data <- data.frame(wage, Gw, Gw2)
ggplot(data = data, aes(x = wage)) +
geom_point(aes(y = Gw), na.rm=TRUE , color = 'steelblue',
size = 1, alpha = .2) +
geom_segment(aes(x=.8,y=7/8,xend=.8,yend=1),
color = "steelblue", size = 1, alpha = .6) +
geom_segment(aes(x=mean_wage,y=7/8,xend=mean_wage,yend=1),
color = "steelblue", size = 1, alpha = .6) +
geom_segment(aes(x=.8,y=7.5/8,xend=.8+.02,yend=7.5/8-.02),
color = "steelblue", size = 1, alpha = .6) +
geom_segment(aes(x=.8,y=7.5/8,xend=.8+.02,yend=7.5/8+.02),
color = "steelblue", size = 1, alpha = .6) +
geom_segment(aes(x=mean_wage,y=7.5/8,xend=mean_wage -.02,
yend=7.5/8-.02),
color = "steelblue", size = 1, alpha = .6) +
geom_segment(aes(x=mean_wage,y=7.5/8,xend=mean_wage -.02,
yend=7.5/8+.02),
color = "steelblue", size = 1, alpha = .6) +
geom_segment(aes(x=.8,y=7.5/8,xend=mean_wage,yend=7.5/8),
color = "steelblue", linetype = "dashed",
size = 1, alpha = .6) +
annotate("text", x = (mean_wage + .8)/2, y = 7.5/8 + .05, label =
paste("Inequality (mw=.8): ", round(mean_wage - .8, 2),
sep = ""), size = 4, color = "steelblue") +
annotate("text", x = .8 , y = 6.75/8, label =
"mw", size = 4, color = "steelblue") +
annotate("text", x = mean_wage, y = 6.75/8, label =
"mean", size = 4, color = "steelblue") +
geom_point(aes(y = Gw2), na.rm=TRUE , color = 'black',
size = 1, alpha = .2) +
geom_segment(aes(x=1,y=5/8,xend=1,yend=6/8),
color = "black", size = 1, alpha = .6) +
geom_segment(aes(x=mean_wage2,y=5/8,xend=mean_wage2,yend=6/8),
color = "black", size = 1, alpha = .6) +
geom_segment(aes(x=1,y=5.5/8,xend=1+.02,yend=5.5/8-.02),
color = "black", size = 1, alpha = .6) +
geom_segment(aes(x=1,y=5.5/8,xend=1+.02,yend=5.5/8+.02),
color = "black", size = 1, alpha = .6) +
geom_segment(aes(x=mean_wage2,y=5.5/8,xend=mean_wage2 -.02,
yend=5.5/8-.02),
color = "black", size = 1, alpha = .6) +
geom_segment(aes(x=mean_wage2,y=5.5/8,xend=mean_wage2 -.02,
yend=5.5/8+.02),
color = "black", size = 1, alpha = .6) +
geom_segment(aes(x=1,y=5.5/8,xend=mean_wage2,yend=5.5/8),
color = "black", linetype = "dashed",
size = 1, alpha = .6) +
annotate("text", x = (mean_wage2 + 1)/2, y = 5.5/8 + .05, label =
paste("Inequality (mw=1): ", round(mean_wage2 - 1, 2),
sep = ""), size = 4, color = "black") +
annotate("text", x = 1 , y = 4.75/8, label =
"mw", size = 4, color = "black") +
annotate("text", x = mean_wage2, y = 4.75/8, label =
"mean", size = 4, color = "black") +
scale_y_continuous(name = "Salaries repartition",
limits = c(0, 1), breaks = seq(0,1,.25)) +
scale_x_continuous(name = "Wage", limits = c(.8, ub2),
breaks = seq(.8, ub2, .2)) +
ggtitle(paste("Sigma = ", parameters[1], ", y2 = ", parameters[2], sep = ""))
}
parameters1 <- c(.25, 2.25)
parameters2 <- c(.75, 2.25)
parameters3 <- c(.25, 3)
parameters4 <- c(.75, 3)
ggarrange(plotEconomy(parameters1), plotEconomy(parameters2), plotEconomy(parameters3), plotEconomy(parameters4), ncol = 2, nrow = 2)
table
## {.25, 2.25} {.25, 3} {.75, 2.25} {.75, 3}
## Inequalities (mw = .8) 0.82 1.01 0.56 0.63
## Inequalities (mw = 1) 0.69 0.89 0.47 0.54
## Percentage decrease 15.00 12.00 16.00 14.00
Mechanism 1: A higher \(y_2\) yields higher inequality
In each case, an increase in \(y_2\) is associated with an increase in the level of inequality. This is a direct implication of how the bounds of the distribution of wages are set for each type of firm:
\[\begin{equation*} \begin{cases} \underline{w}_1 = b &\\ \overline{w}_1 = \underline{w}_2 = b + (y_1 - b)\left[1 - (\frac{s}{s+\lambda})^2\right]&\\ \overline{w}_2 = \underline{w}_2 + (y_2 - \underline{w}_2)\left[1 - (\frac{s}{s+\lambda})^2\right] \end{cases} \end{equation*}\]
This set of equations shows that \(y_2\) will only affect \(\overline{w}_2\) which is a positive function of it. It can also be seen by comparing the location of the kink and the bounds of \(F(w)\) and \(G(w)\) on the wage axis between the top-left and the bottom-left figures and between the top-right and the bottom-right figures. Thus, an increase of \(y_2\) will enlarge the wage support of high productivity/high wage firms without impacting that of low productivity/low paying firms. As a consequence, there will be more wage dispersion, and in particular, the distribution of wages will be stretched to the right, which would increase the average wage by increasing the wage of high paid workers. Everything else equal, especially the minimum wage, a rise in \(y_2\) does increase inequality.
Mechanism 2: A higher \(\sigma\) yields lower inequality
A higher proportion of low productivity firms reduces inequality. Indeed, the proportion of firms of a certain type does not affect the bounds of their support. In that case, as low productivity firms are also the ones that will pay the lowest wage, an increase in their proportion will raise the prevalence of low wage workers and lower that of high wage workers in the economy, as can be seen by comparing the top-left and top-right figures and the bottom-left and bottom-right figures. When measuring inequalities as the difference between the average wage and the minimum wage, this naturally decreases inequality as it lowers the average wage.
Mechanism 3: A higher \(mw\) yields lower inequality
As shown in the table above, in each case a rise in the minimum wage decreases inequalities. Indeed, very naturally, as \(\underline{w}_1\), which takes the value of the minimum wage, tends to \(\overline{w}_2\), i.e., increases, the measure of inequality tends to 0. Note that not only the width of the support decreases, but also the share of the support occupied by low productivity firms decreases as the minimum wage increases, up to the point where the minimum wage exceeds \(y_1\) where low productivity firms are excluded from the market, as discussed previously. But the rise in the minimum wage does not have the same impact depending on the values of \(\sigma\) and \(y_2\).
Mechanism 4: A higher \(mw\) lowers more inequalities when \(\sigma\) is larger
It is clear that whatever \(y_2\), an increase in the minimum wage decreases more inequality when there are more low productivity firms. Indeed, when \(\sigma\) is higher there are more low wage workers in the economy. As there is more mass at the left of the distribution, raising the lower bound has a greater impact on inequalities than when \(\sigma\) is lower.
Mechanism 5: A higher \(mw\) lowers less inequalities when \(y_2\) is larger
Finally, the higher the productivity of high productivity firms, the lower the impact of a minimum wage increase. Indeed, the higher \(y_2\), the more stretched to the right the distribution, and the lower the impact of an increase of the left bound of the distribution on inequality in the economy, because the larger the role played by wages set by high productivity firms on their unaffected support (if \(mw < y_2\)) in the value of average wage, and thus, in the level of inequality.