---
title: Toeplitz AR model
format: gfm
---

this content was generated by ChatGPT 5.2 Instant (2/13/2026)

# Toeplitz Sequence-of-Returns (SOR) Model

```
method = "toeplitz_sor"
```

## Overview

The Toeplitz SOR model generates **time-correlated multi-year return paths** using a stationary time covariance structure.

Unlike independent annual stochastic draws, this model explicitly incorporates:

* Serial correlation across years
* Volatility clustering (optional extension)
* Fat-tailed innovations (optional)
* Cross-asset correlation
* Stationary long-run behavior

It is designed to model realistic **sequence-of-returns risk** while remaining computationally efficient and mathematically controlled.


# 1. Conceptual Foundation

Traditional stochastic retirement models assume:

[
r_t \sim \mathcal{N}(\mu, \sigma^2)
]

with independence across time.

Empirical financial data, however, shows:

* Weak but persistent autocorrelation
* Multi-year regime clustering
* Volatility persistence
* Tail risk beyond Gaussian

The Toeplitz model addresses this by imposing a **structured time covariance matrix**.


# 2. Mathematical Structure

Let:

* ( N ) = number of years in the planning horizon
* ( K ) = number of asset classes (4 in OWL)
* ( r_t \in \mathbb{R}^K ) = return vector at year ( t )

We generate a stacked vector:

[
R = [r_1, r_2, ..., r_N]
]

with joint distribution:

[
R \sim \mathcal{N}(\mu, \Sigma_{time})
]

where:

[
\Sigma_{time} =
\begin{bmatrix}
\Gamma_0 & \Gamma_1 & \Gamma_2 & \dots \
\Gamma_1 & \Gamma_0 & \Gamma_1 & \dots \
\Gamma_2 & \Gamma_1 & \Gamma_0 & \dots \
\vdots & \vdots & \vdots & \ddots
\end{bmatrix}
]

This is a **block Toeplitz matrix**.

Each block ( \Gamma_k ) is a ( K \times K ) matrix representing covariance at lag ( k ).



# 3. Toeplitz Time Correlation

Toeplitz structure means:

[
\text{Cov}(r_t, r_{t+k}) = \Gamma_k
]

Correlation depends only on lag ( k ), not on absolute time.

This enforces stationarity.



## 3.1 Lag Structure

A common parameterization is AR(1)-style decay:

[
\rho_k = \rho_1 \cdot \alpha^{k-1}
]

Where:

* ( \rho_1 ) = lag-1 autocorrelation
* ( \alpha \in (0,1) ) = decay factor

Example:

```
autocorrelation_lag1 = 0.25
autocorrelation_decay = 0.7
```

Produces:

* Lag 1: 0.25
* Lag 2: 0.175
* Lag 3: 0.1225
* etc.

This models gradual memory decay.



# 4. Full Covariance Construction

Let:

* ( \Sigma_0 ) = contemporaneous cross-asset covariance matrix
* ( D_k ) = scalar lag correlation at lag k

Then:

[
\Gamma_k = D_k \cdot \Sigma_0
]

So time and cross-asset structure combine multiplicatively.



# 5. Innovation Distribution

Returns may be generated using:

### Option A — Multivariate Normal

[
r_t = \mu + \epsilon_t
]

[
\epsilon \sim \mathcal{N}(0, \Sigma_{time})
]



### Option B — Multivariate Student-t

[
\epsilon \sim t_\nu(0, \Sigma_{time})
]

Where:

* ( \nu ) = degrees of freedom
* Smaller ( \nu ) → fatter tails

Typical values:

* 6 → realistic equity tail risk
* 4 → crisis-heavy distribution



# 6. Computational Implementation Strategy

Full ( NK \times NK ) covariance matrices are expensive.

Instead:

### Efficient AR(1) construction

For each asset class:

[
r_t = \mu + \phi r_{t-1} + \eta_t
]

Where:

* ( \phi = \rho_1 )
* ( \eta_t \sim \mathcal{N}(0, \sigma^2 (1-\phi^2)) )

This preserves correct variance and correlation.

Cross-asset covariance is applied to ( \eta_t ).

This reduces computation from O(N²) to O(N).



# 7. Model Properties

| Property              | Behavior    |
| --------------------- | ----------- |
| Stationary            | Yes         |
| Long-run mean         | μ           |
| Long-run variance     | σ²          |
| Multi-year clustering | Yes         |
| Crisis reproduction   | Approximate |
| Fat tails             | Optional    |
| Structural breaks     | No          |



# 8. Why Toeplitz?

Advantages:

* Mathematically clean
* Stable for Monte Carlo
* Controllable persistence
* No historical overfitting
* Smooth statistical behavior
* Easy to stress test

Disadvantages:

* Does not reproduce exact historical crisis shapes
* Stationary assumption may understate regime shifts



# 9. Comparison to Other Methods

| Method                 | Time Correlation | Crisis Realism | Parametric Control |
| ---------------------- | ---------------- | -------------- | ------------------ |
| Independent Stochastic | No               | Low            | High               |
| Toeplitz SOR           | Yes              | Moderate       | High               |
| Block Bootstrap        | Yes              | High           | Low                |



# 10. Recommended Default Parameters

For retirement modeling:

```
method = "toeplitz_sor"
values = [6.5, 4.0, 3.0, 2.5]
standard_deviations = [18.0, 8.0, 6.0, 2.5]
autocorrelation_lag1 = 0.25
autocorrelation_decay = 0.7
innovation_distribution = "student_t"
degrees_of_freedom = 6
```

These produce:

* Mild persistence
* Realistic crisis clustering
* Fat-tail drawdowns
* Stable long-run behavior



# 11. Interaction with OWL

Toeplitz SOR integrates cleanly with:

* `reverse_sequence`
* `roll_sequence`
* `rate_seed`
* `reproducible_rates`

It produces deterministic output for fixed seeds and stochastic output otherwise.



# 12. When to Use Toeplitz

Prefer Toeplitz when:

* You want controlled parametric stress
* You want smooth Monte Carlo stability
* You need reproducibility
* You want to explore persistence sensitivity

Prefer Bootstrap when:

* You want real historical crisis shapes
* You want exact tail replication
* You want regime realism



# 13. Conceptual Interpretation for Retirement Risk

Toeplitz SOR captures:

* Early retirement crash clustering
* Multi-year bear markets
* Persistent low real return environments
* Gradual recovery regimes

It models “bad luck persistence” rather than isolated bad years.


