330. Sample Average Approximation

Sample Average Approximation (SAA) — replace an intractable expectation in a stochastic program with a Monte Carlo average over scenarios.

330.1. Problem

Original stochastic program:

The expectation is hard (high-dimensional integral; complex distribution).

330.2. SAA approximation

Generate i.i.d. samples from the distribution of . Solve:

This is just a deterministic mathematical program — with scenarios. Solvable by standard tools (simplex, branch-and-bound, etc.).

330.3. Convergence

As :

with the optimal solution also converging to the true optimum . Rate: by CLT — the error variance decays as , standard error as .

330.4. Confidence intervals

The objective value from a single SAA run is a random estimate. Standard confidence interval:

where is the sample standard deviation of the recourse values .

330.5. Practical SAA algorithm

  1. Generate samples
  2. Solve SAA problem →
  3. Independently evaluate on fresh samples (out-of-sample, ) to estimate true
  4. Compare in-sample vs out-of-sample estimate. If similar, is a good solution. If much worse out-of-sample, increase .

This out-of-sample validation is essential — in-sample optimization can over-fit to the scenarios used.

330.6. Choosing

Trade-off:

Heuristics:

330.7. Variance reduction

Plain Monte Carlo has variance . Tricks to do better:

330.8. When SAA shines

330.9. See also