Econometrics & Distributional Analysis
Recentered Influence Function (RIF) Unconditional Quantile Formula
Transform outcomes into Firpo-Fortin-Lemieux Recentered Influence Functions RIF(y; q_tau) = q_tau + (tau - I(y <= q_tau)) / f_Y(q_tau) to estimate unconditional quantile treatment effects via OLS.
Why conditional quantile slopes do not equal unconditional distributional policy shifts
By the Law of Iterated Expectations, conditional mean regressions integrate directly to unconditional population means, whereas conditional quantiles do NOT: E[Q_tau(Y | X)] != Q_tau(Y)! Firpo, Fortin, and Lemieux (2009) solved this by replacing each outcome y_i with its Recentered Influence Function at target quantile q_tau: RIF(y_i; q_tau) = q_tau + (tau - IF(y_i <= q_tau, 1, 0)) / f_Y(q_tau), where f_Y(q_tau) is the marginal density of Y at q_tau.
Verify both properties on an 8-worker earnings table (B2:B9 = {20, 22, 24, 28, 32, 36, 40, 48}) at median tau = 0.50 (G2) where MEDIAN = 30.0000 and local density f_Y(30) = 0.0400 (G3): the four workers at or below 30 receive RIF = 30 + (0.50 - 1) / 0.04 = 17.5000, the four above 30 receive RIF = 30 + (0.50 - 0) / 0.04 = 42.5000, and AVERAGE(D2:D9) recovers exact median 30.0000! Regressing RIF on training indicator C2:C9 = {0, 0, 0, 1, 0, 1, 1, 1} yields SLOPE(D2:D9, C2:C9) = +12.5000, matching (0.75 - 0.25) / 0.04!
| Observation Regime (q_0.5 = 30, f_Y = 0.04) | RIF Formula Evaluation | RIF Value |
|---|---|---|
| Below/At Quantile (y_i <= 30) | 30 + (0.50 - 1) / 0.04 | 17.5000 |
| Above Quantile (y_i > 30) | 30 + (0.50 - 0) / 0.04 | 42.5000 |
| Sample Mean AVERAGE(RIF) | (4 * 17.5 + 4 * 42.5) / 8 | 30.0000 (= q_0.5) |
| Unconditional Median Effect SLOPE(RIF, D) | 36.25 - 23.75 = (0.75 - 0.25) / 0.04 | +12.5000 |
Row-Level Recentered Influence Function RIF(y_i; q_tau) Formula
Compute each observation’s RIF value from sample quantile q_tau = PERCENTILE_INC($B$2:$B$9, $G$2) and density $G$3 > 0.
=LET(y_val, B2, tau_q, $G$2, f_den, $G$3, q_val, PERCENTILE_INC($B$2:$B$9, tau_q), IF(OR(tau_q <= 0, tau_q >= 1, f_den <= 0), "Invalid RIF Parameter", ROUND(q_val + (tau_q - IF(y_val <= q_val, 1, 0)) / f_den, 4)))Unconditional Quantile Partial Effect (UQPE) OLS Slope Formula
Once RIF values populate D2:D9, ordinary SLOPE(D2:D9, C2:C9) estimates how shifting treatment share marginally moves the population tau-th quantile.
=IF(OR(G2 <= 0, G2 >= 1, G3 <= 0), "Invalid RIF Parameter", ROUND(SLOPE(D2:D9, C2:C9), 4))Try the example
Use the original values or change them to test your understanding.