Quantile Regression Robust Estimation Conditional Quantiles

# Quantile Regression: Robust Estimation & Conditional Quantiles

## Introduction & Motivation

Quantile regression estimates conditional quantiles instead of mean. τ-th quantile: minimize absolute deviations weighted by τ. Robust to outliers; asymmetric loss captures heteroskedasticity. Applications: conditional value-at-risk (finance), income distribution (economics), medical prognosis (varying patient outcomes).

Motivation: OLS assumes homoskedasticity; breaks with heteroskedasticity. Quantile regression reveals full conditional distribution, not just mean.

Applications: Risk assessment, pricing, medical diagnosis, economic inequality.

---

## Core Concepts & Theory

### Quantile Definition

τ-th quantile: value where τ proportion of data below. Linear quantile: β(τ) = argmin Σ ρ_τ(y_i - x_i^T β)
where ρ_τ(u) = u(τ - I(u<0)).

### Asymmetric Loss

Loss weighs underprediction τ times overprediction; reflects quantile level.

---

## Mathematical Formulation

Quantile loss (check function):
$$ ho_ au(u) = u( au - \mathbb{I}_{u < 0})$$

Quantile regression objective:
$$\min_\beta \sum_{i=1}^n ho_ au(y_i - \mathbf{x}_i^T \beta)$$

Conditional quantile:
$$Q_y( au | \mathbf{x}) = \mathbf{x}^T \beta^*( au)$$

---

## Advanced Theory & Extensions

### Quantile Crossing

Quantile curves may cross; solutions: rearrangement operators.

### Conditional Autoregressive Expectiles

CARE models: dynamic quantile estimation.

---

## Computational Considerations

Linear: O(n × d) via linear programming or gradient descent.

Non-parametric: O(n²) kernel bandwidth selection.

---

## Practical Implementation Strategies

### Cross-Validation

Select τ and regularization via CV on quantile loss.

### Multiple Quantiles

Estimate portfolio of quantiles (0.1, 0.5, 0.9) simultaneously.

---

## Benchmark Datasets & Evaluation

Boston Housing: Heteroskedastic regression.

Income Quantiles: Earnings prediction at multiple levels.

Metrics: Quantile loss, coverage (% observations below predicted), interval width.

---

## Key Challenges & Limitations

### Non-Crossing Quantiles

Quantile curves cross; violated monotonicity. Use isotonic regression.

### High Dimension

Variable selection in quantile regression challenging.

---

## Hyperparameter Tuning

τ (quantile level): 0.1-0.9; lower = lower tail.

Regularization λ: Ridge/Lasso via CV.

---

## Real-World Applications & Case Studies

Finance: Value-at-Risk (VaR) via quantile regression.

Healthcare: Personalized medicine; conditional treatment effects by patient severity.

Econometrics: Wage distribution; inequality measurement.

---

## Integration with Other Methods

Quantile + Ensemble → Random forests for quantiles.

---

## Summary & Key Takeaways

Quantile regression estimates conditional quantiles via asymmetric loss, enabling robust heteroskedastic regression.

Principles:
1. Asymmetric loss weights underestimation by τ.
2. Estimates full conditional distribution.
3. Robust to outliers.
4. Multiple quantiles reveal heteroskedasticity.
5. Non-crossing quantiles may require post-hoc adjustment.

---

---

## Appendix: Practical Labs

### Lab 1: Basic Quantile Regression

import numpy as np
from scipy.optimize import minimize

def quantile_loss(y, X, beta, tau):
 residuals = y - X @ beta
 return np.sum(np.where(residuals >= 0, tau * residuals, (tau - 1) * residuals))

np.random.seed(42)
n = 100
X = np.column_stack([np.ones(n), np.random.randn(n)])
y = 2 + 1.5 * X[:, 1] + np.random.randn(n) * (0.5 + X[:, 1]**2)

for tau in [0.1, 0.5, 0.9]:
 result = minimize(lambda b: quantile_loss(y, X, b, tau), [0, 0])
 beta = result.x
 print(f"Tau {tau}: {beta}")

print("✓ Quantile regression working")

if __name__ == "__main__":
 print("Lab 1: Quantile - PASSED")

### Lab 2: Multiple Quantiles

import numpy as np

def estimate_quantiles(y, X, taus):
 quantiles = {}
 for tau in taus:
 loss = lambda b: np.sum(np.where(y - X@b >= 0, tau*(y-X@b), (tau-1)*(y-X@b)))
 from scipy.optimize import minimize
 result = minimize(loss, [0, 0])
 quantiles[tau] = result.x
 return quantiles

np.random.seed(42)
X = np.column_stack([np.ones(50), np.random.randn(50)])
y = 1 + 2*X[:, 1] + np.random.randn(50)

taus = [0.25, 0.5, 0.75]
quants = estimate_quantiles(y, X, taus)

assert len(quants) == 3, "Should estimate 3 quantiles"
print("✓ Multiple quantiles working")

if __name__ == "__main__":
 print("Lab 2: Quantiles - PASSED")

### Lab 3: Quantile Loss Comparison

import numpy as np

def quantile_error(y_true, y_pred, tau):
 residuals = y_true - y_pred
 return np.sum(np.where(residuals >= 0, tau*residuals, (tau-1)*residuals))

np.random.seed(42)
y_true = np.random.randn(100)
y_pred = y_true + np.random.randn(100)*0.2

tau_list = [0.1, 0.5, 0.9]
errors = [quantile_error(y_true, y_pred, tau) for tau in tau_list]

print(f"Quantile errors: {errors}")
assert all(e > 0 for e in errors), "Errors should be positive"
print("✓ Quantile loss working")

if __name__ == "__main__":
 print("Lab 3: Loss - PASSED")

### Lab 4: Heteroskedasticity Detection

import numpy as np

def quantile_interval_width(y, X, tau_low=0.1, tau_high=0.9):
 from scipy.optimize import minimize
 
 intervals = []
 for i in range(len(X)):
 x_i = X[i:i+1]
 
 loss_low = lambda b: np.sum(np.where(y - x_i@b >= 0, tau_low*(y-x_i@b), (tau_low-1)*(y-x_i@b)))
 loss_high = lambda b: np.sum(np.where(y - x_i@b >= 0, tau_high*(y-x_i@b), (tau_high-1)*(y-x_i@b)))
 
 r_low = minimize(loss_low, [0, 0]).x
 r_high = minimize(loss_high, [0, 0]).x
 
 width = (x_i @ r_high - x_i @ r_low)[0]
 intervals.append(width)
 
 return np.array(intervals)

np.random.seed(42)
X = np.column_stack([np.ones(30), np.random.randn(30)])
y = X[:, 1] + np.random.randn(30) * (0.1 + abs(X[:, 1]))

widths = quantile_interval_width(y, X)
print(f"Interval widths: {widths[:5]}")
assert len(widths) == 30, "Should have 30 intervals"
print("✓ Heteroskedasticity detection working")

if __name__ == "__main__":
 print("Lab 4: Heteroskedasticity - PASSED")

Go deeper with CFSGPT

Get AI-powered deep-dives, save terms, and run advanced simulations — free account.

Create Free Account