Linear quantile regression models Qτ(y∣x)=x′β(τ) and estimates β(τ) by minimising the check loss. Yu and Moyeed (2001) turned this into Bayesian inference by pretending errors are asymmetric Laplace: its likelihood is the exponentiated negative check loss. The AL is not a plausible data-generating distribution, so the posterior is a loss-based (“quasi”) posterior whose mode is right and whose spread is arbitrary.
Overview
Alternatives to the AL (nonparametric likelihoods: Kottas and Krnjajić 2009, Reich et al. 2010; empirical likelihoods: Otsu 2008, Yang and He 2012) exist but the AL dominates in software: R brms, bayesQR, Stata bayes:qreg.
Main Content
Check loss
ρτ(u)=u{τ−I(u<0)}={uτ−u(1−τ)u≥0u<0. Quantile estimator: β^(τ)=argminβ∑i=1nρτ(yi−xi′β) (Koenker and Bassett 1978; linear programming).
For fixed σ, maximising the likelihood in β is exactly minimising ∑ρτ(yi−μi). The AL is right-skewed for τ<0.5 and left-skewed for τ>0.5, i.e. its skewness depends on the quantile you happen to ask about - impossible for one data-generating process (Koenker and Machado 1999: “rather implausible”; Sriram et al. 2013 “misspecified”; Sriram 2015, Yang et al. 2016 “working likelihood”; Geraci 2019 “pseudo-likelihood”).
Scale-mixture-of-normals representation (Kotz et al. 2001; Kozumi and Kobayashi 2011)
ϵi=yi−μi=σ(θ1νi+θ2νizi) with θ1=τ(1−τ)1−2τ, θ22=τ(1−τ)2, zi∼N(0,1), νi∼Exp(1) independent. This gives conditionally Gaussian full conditionals and Gibbs/EM algorithms; with Stan it is not needed.
Role of σ.σ “weights the information in the data relative to that in the prior” (Syring and Martin 2019); it controls posterior spread. Practice: σ=1 with no discussion (Yu and Moyeed 2001; Yu and Stander 2007 call it a nuisance parameter), an estimated σ with inverse Gamma prior (Kozumi and Kobayashi 2011; Yue and Rue 2011; Wang 2012; Sriram 2015; bayesQR and bayes:qreg use IG(0.01,0.01)), uniform(0,10) (Reich et al. 2010) or half-t(3) (brms). Sriram et al. (2013) prove posterior consistency of the point estimate with σ=1 or with a prior on σ. The AL also enables censoring (Yu and Stander 2007), random effects/latent variables (Geraci and Bottai 2007, 2014; Wang 2012) and joint longitudinal-survival models (Huang and Chen 2016).
Units trap. Because σ has units of y, "σ=1" means something different when y is in dollars versus thousands of dollars; the same prior-data weighting changes with units (cf. Fig. 8: σ=100 with the original response is equivalent to σ=1 with a response rescaled).
Examples
Python: AL log-likelihood equals negative check loss
import numpy as npdef check_loss(u, tau): return u * (tau - (u < 0))def al_loglik(y, mu, sigma, tau): u = (y - mu) / sigma return np.log(tau * (1 - tau) / sigma) - check_loss(u, tau)rng = np.random.default_rng(1); y = rng.standard_normal(500)tau = 0.9grid = np.linspace(0, 2, 401)ll = [al_loglik(y, m, 1.0, tau).sum() for m in grid]loss = [check_loss(y - m, tau).sum() for m in grid]print(grid[np.argmax(ll)], grid[np.argmin(loss)], np.quantile(y, tau)) # all agree