Arte SheetsLearn. Try. Understand.

Labor Economics & Policy Econometrics

Roy Self-Selection Positive vs Negative Sorting Formula

Diagnose Andrew Roy’s (1951) and George Borjas’s (1987) occupational/migration skill selection via covariance wedges Cov(u_1, u_1 - u_0) and Cov(u_0, u_1 - u_0).

Understand why migrants or career-switchers can be negatively selected even with high skill correlation!

Introduced by Andrew D. Roy (1951) ("Some Thoughts on the Distribution of Earnings") and famously applied to immigration by George Borjas (1987), the Roy Model governs self-selection whenever workers choose Destination Sector 1 (log wage w_1 = mu_1 + u_1, SD sigma_1) over Origin Sector 0 (log wage w_0 = mu_0 + u_0, SD sigma_0, cross-sector skill correlation rho in (-1, 1)) net of switching/migration cost C whenever w_1 - w_0 - C > 0! Selection into Sector 1 depends NOT just on correlation rho, but on Return-to-Skill Dispersion sigma_1 vs sigma_0! Specifically, Destination Selection Wedge S_1 = Cov(u_1, u_1 - u_0) = sigma_1^2 - rho * sigma_1 * sigma_0 and Origin Selection Wedge S_0 = Cov(u_0, u_1 - u_0) = rho * sigma_1 * sigma_0 - sigma_0^2 determine three distinct sorting regimes: Positive Selection (S_1 > 0 AND S_0 > 0, when sigma_1 / sigma_0 > 1 / rho and rho > 0), Negative Selection (S_1 < 0 AND S_0 < 0, when destination compresses rewards sigma_1 / sigma_0 < rho!), and Refugee / Inverse Sorting (S_1 > 0 AND S_0 < 0)!

Test on Origin_Mean mu_0 = 4.00 (B2), Origin_SD sigma_0 = 0.20 (B3), Destination_Mean mu_1 = 4.30 (B4), Destination_SD sigma_1 = 0.50 (B5), Skill_Correlation rho = 0.80 (B6), and Log_Migration_Cost C = 0.12 (B7): S_1 = 0.50^2 - 0.80*0.50*0.20 = 0.25 - 0.08 = +0.1700 (> 0), S_0 = 0.08 - 0.20^2 = +0.0400 (> 0 -> Positive Hierarchical Sorting!), Difference Volatility sigma_v = SQRT(0.25 + 0.04 - 2*0.08) = SQRT(0.13) = 0.3606, and Standardized Selection Index z* = -(mu_1 - mu_0 - C) / sigma_v = -0.18 / 0.3606 = -0.4992! Now swap dispersions (sigma_0 = 0.50, sigma_1 = 0.20 at rho = 0.80): S_1 = 0.04 - 0.08 = -0.0400 < 0 and S_0 = -0.1700 < 0 — Negative Selection where an egalitarian destination attracts below-average earners from an unequal origin!

Roy-Borjas Selection Metric (sigma_0=0.20, sigma_1=0.50, rho=0.80)FormulaVerified Output
Destination Selection Wedge (S_1)sigma_1^2 - rho * sigma_1 * sigma_0+0.1700 (> 0)
Origin Selection Wedge (S_0)rho * sigma_1 * sigma_0 - sigma_0^2+0.0400 (> 0)
Comparative-Advantage SD (sigma_v)SQRT(sigma_1^2 + sigma_0^2 - 2*rho*s1*s0)0.3606
Roy Sorting Regime ClassificationIF(AND(S_1>0, S_0>0), "Positive Sorting", ...)Positive Sorting

Origin & Destination Skill-Selection Covariance Wedges Formula

Validate sigma_0 > 0, sigma_1 > 0, and strict correlation -1 < rho < 1 (so sigma_v > 0).

=LET(s_0, B3, s_1, B5, rh_c, B6, IF(OR(s_0 <= 0, s_1 <= 0, rh_c <= -1, rh_c >= 1), "Invalid Roy Input", LET(w_1, (s_1^2) - rh_c * s_1 * s_0, w_0, rh_c * s_1 * s_0 - (s_0^2), IFS(AND(w_1 > 0, w_0 > 0), "Positive Sorting", AND(w_1 < 0, w_0 < 0), "Negative Sorting", TRUE, "Refugee Sorting"))))

Standardized Roy Self-Selection Threshold z* Formula

Workers migrate into Sector 1 whenever standardized comparative-advantage draw v / sigma_v exceeds z* = -(mu_1 - mu_0 - C) / sigma_v.

=LET(m_0, B2, s_0, B3, m_1, B4, s_1, B5, rh_c, B6, c_sw, B7, IF(OR(s_0 <= 0, s_1 <= 0, rh_c <= -1, rh_c >= 1), "Invalid Roy Input", LET(sg_v, SQRT((s_1^2) + (s_0^2) - 2 * rh_c * s_1 * s_0), ROUND(-(m_1 - m_0 - c_sw) / sg_v, 4))))

Try the example

Use the original values or change them to test your understanding.

Further reading