Three numbers in a yield curve

To first order a bond curve sees a fast hidden chain in the short rate only through three numbers.

Suppose the short rate is driven by hidden regimes that change often, with any number of states and any pattern of transitions. To first order in the switching time, the yield curve sees only three numbers about them.

Two quite different regime chains that share those three numbers produce yield curves that agree to within a small fraction of a basis point.

The model

The short rate $r_t$ follows a Vasicek model whose mean level and volatility depend on a hidden state $y_t$:

$$dr_t = \kappa\,\big(\theta(y_t) - r_t\big)\,dt + \sigma(y_t)\,dW_t .$$

The hidden state $y_t$ is a Markov chain on $n$ states with generator $Q$. It is the fast process.

The rate $r_t$ is the slow process: it reverts at rate $\kappa$, while the chain switches at rates much larger than $\kappa$. The small parameter is the ratio of the two time scales.

An observer who cannot see the regime prices a zero-coupon bond by drawing the regime from its stationary distribution $\pi$:

$$P(T) = \mathbb{E}\Big[\exp\Big(-\int_0^T r_s\,ds\Big)\ \Big|\ r_0 = x,\ y_0 \sim \pi\Big].$$

Write $\theta_i$ and $s_i = \sigma_i^2$ for the level and the variance in state $i$, and write $\bar\theta$ and $\bar s$ for their averages under $\pi$.

Step 1: the bond price becomes a linear system

Because the model is affine in $r$, the bond price conditional on the starting regime factors as

$$P_i(T) = e^{-B(T)\,x}\,a_i(T), \qquad B(T) = \frac{1 - e^{-\kappa T}}{\kappa}.$$

The factor $B$ does not depend on the regime, because the reversion speed $\kappa$ is shared. The vector $a(T)$ carries everything the regimes contribute. Substituting into the pricing equation gives the linear system

$$a' = \big(Q + \operatorname{diag} g\big)\,a, \qquad a(0) = \mathbf 1,$$

where the forcing in state $i$ is

$$g_i(T) = -\kappa\,\theta_i\,B(T) + \tfrac12\,s_i\,B(T)^2 .$$

The first term is the drift pulling the rate toward $\theta_i$. The second is the convexity from the variance $s_i$. The engine page derives this system and solves it to all orders.

Step 2: the first-order answer is a Green–Kubo integral

The averaging page explains the first correction with a two-state switch. The exponent of the expectation gains half the variance of the fluctuating integral. For a general chain the same argument gives

$$\log\big(\pi\cdot a(T)\big) \approx \int_0^T \bar g\,dt + \int_0^T \mathcal K\big(\tilde g(t),\,\tilde g(t)\big)\,dt,$$

where $\tilde g = g - \bar g$ is the fluctuation of the forcing about its average. The bilinear form $\mathcal K$ measures how long a fluctuation is remembered:

$$\mathcal K(f, h) = \int_0^\infty \operatorname{Cov}_\pi\big(f(y_0),\,h(y_\tau)\big)\,d\tau .$$

This is a Green–Kubo integral. It can be computed with the group inverse of the generator from the solvability page:

$$\mathcal K(f, h) = -\,\pi\cdot\big(f\ Q^{\#} h\big).$$

The starting regime is drawn from $\pi$, so the memory of the starting state averages away. Only the variance term survives.

Step 3: expand in powers of $B$

Write $u = \theta - \bar\theta$ and $v = s - \bar s$ for the fluctuations of level and variance across regimes. Then

$$\tilde g = -\kappa\,u\,B + \tfrac12\,v\,B^2 .$$

Since $\mathcal K$ is bilinear, the correction is a polynomial in $B$ with three coefficients:

$$\mathcal K(\tilde g, \tilde g) = c_2\,B^2 + c_3\,B^3 + c_4\,B^4,$$

with

$$c_2 = \kappa^2\,\mathcal K(u, u), \qquad c_3 = -\kappa\,\mathcal K_{\mathrm{sym}}(u, v), \qquad c_4 = \tfrac14\,\mathcal K(v, v).$$

Here $\mathcal K_{\mathrm{sym}}(u, v)$ is the average of $\mathcal K(u, v)$ and $\mathcal K(v, u)$. Putting the pieces together gives the yield curve to first order:

$$\begin{aligned} \log P(T) + B(T)\,x \;=\; &-\kappa\,\bar\theta\int_0^T B + \Big(\tfrac12\,\bar s + c_2\Big)\int_0^T B^2 \\ &+ c_3\int_0^T B^3 + c_4\int_0^T B^4 . \end{aligned}$$

The first two terms are Vasicek with averaged parameters. The three numbers $c_2$, $c_3$ and $c_4$ are all the regimes add. The chain may have many states and many transition rates, but they enter only through these three numbers.

The four shapes

Each coefficient multiplies its own function of maturity. The integrals have closed forms, since $\kappa B$ is a polynomial in $e^{-\kappa T}$. The chart shows each integral scaled so that it tends to 1 at long maturities:

$$\frac{\kappa^k}{T}\int_0^T B^k\,dt, \qquad k = 1, 2, 3, 4 .$$

Higher powers start later, because $B$ is small at short maturities and $B^k$ is smaller still. So the three numbers leave different fingerprints on the short and intermediate parts of the curve. At long maturities all four shapes flatten, and only their total is visible.

The inequality

The symmetric part of $\mathcal K$ is a covariance. For two functions $f$ and $h$ of the regime, the running integrals of $f(y_t)$ and $h(y_t)$ over a long time $t$ satisfy

$$\operatorname{Cov}\Big(\int_0^t f(y_s)\,ds,\ \int_0^t h(y_s)\,ds\Big) \approx 2t\ \mathcal K_{\mathrm{sym}}(f, h).$$

So the matrix

$$M = \begin{pmatrix} \mathcal K(u, u) & \mathcal K_{\mathrm{sym}}(u, v) \\ \mathcal K_{\mathrm{sym}}(u, v) & \mathcal K(v, v) \end{pmatrix}$$

is half the long-run covariance matrix of the integrated level and the integrated variance. A covariance matrix is positive semidefinite, whether or not the chain is reversible. Its determinant is therefore non-negative, and in terms of the three numbers that says

$$c_2 \ge 0, \qquad c_4 \ge 0, \qquad c_3^2 \le 4\,c_2\,c_4 .$$

With two regimes the latent inequality is an equality. The fluctuations $u$ and $v$ are then both multiples of one centered pattern, so $M$ has rank at most one. Equality also occurs when $u$ and $v$ are proportional in a larger chain, so it identifies a one-dimensional feature span, not the number of hidden regimes.

The same holds for any number of switched features. Let the fluctuating forcing be a sum of maturity shapes times centred regime functions,

$$\tilde g(t) = \sum_{r=1}^{d} \phi_r(t)\,f_r, \qquad \pi\cdot f_r = 0, \qquad H_{rs} = \mathcal K_{\mathrm{sym}}(f_r, f_s),$$

so that the correction is $\int_0^T \phi^{\top} H \phi\,dt$. The matrix $H$ is half the long-run covariance of the integrated $f_r$, so it is positive semidefinite, and every principal minor is an inequality among the curve coefficients.

Its rank is bounded by the number of regimes. For an irreducible chain $\mathcal K_{\mathrm{sym}}(f, f)$ vanishes only at $f = 0$, so the kernel of $H$ is the kernel of the $n \times d$ matrix $F = (f_1, \dots, f_d)$, and

$$\operatorname{rank} H = \operatorname{rank} F \le \min(d,\ n - 1),$$

since centred functions of $n$ states span $n - 1$ dimensions. A rank $r$ read off the coefficients needs at least $r + 1$ regimes. Here $d = 2$, $\phi = (B, B^2)$, $f_1 = -\kappa u$ and $f_2 = \tfrac12 v$, so

$$H = \begin{pmatrix} c_2 & c_3/2 \\ c_3/2 & c_4 \end{pmatrix},$$

and $H \succeq 0$ is the inequality above. The bound applies to $H$ itself. When several instruments load on the features through a maturity-dependent matrix $L(t)$, the integrated matrix $\int_0^T L\,H\,L^{\top}\,dt$ can have rank above $n - 1$, so an integrated rank is not a count of regimes.

Observable coefficients

The coefficient of $\int B^2$ is $\tfrac12\bar s + c_2$. A market that only sees bond prices cannot split this sum: extra average variance and extra regime variance look the same. What can be fitted are four coefficients,

$$\beta_1 = -\kappa\,\bar\theta, \qquad \beta_2 = \tfrac12\,\bar s + c_2, \qquad \beta_3 = c_3, \qquad \beta_4 = c_4 .$$

Since $\bar s \ge 0$, we have $\beta_2 \ge c_2$, and the inequality survives in observable form:

$$\beta_3^2 \le 4\,\beta_2\,\beta_4 .$$

A fitted curve that violates it cannot come from fast switching of the level and volatility, at least not at first order.

When $\beta_4 > 0$ the observable inequality is strict. The variances then differ across regimes, so $\bar s > 0$, and

$$4\beta_2\beta_4 - \beta_3^2 = 2\,\bar s\,c_4 + \big(4c_2c_4 - c_3^2\big) > 0 .$$

So a yield curve cannot test the rank of $M$. Testing $c_3^2 = 4c_2c_4$ needs an independent estimate of the average variance $\bar s$.

An example with $\kappa = 1$ and both chains started from their stationary laws: a three-state chain that jumps between every pair of states at rate 10, with levels $(7\%, 3\%, 5\%)$ and variances $(0.005, 0.0045, 0.0015)$ has a matrix $M$ of rank two. A two-state chain with generator $10\begin{pmatrix} -1 & 1 \\ 1 & -1 \end{pmatrix}$, levels $(5.17609\%, 4.82391\%)$ and variances $(0.00494611, 0.00242215)$ has rank one. The two give the same $\beta_1, \dots, \beta_4$, so their yield curves agree to first order.

The identifiability note proves precisely which coefficients a stationary curve determines, supplies the general fixed-feature Gram/rank theorem and an exact kernel theorem for rank after integrating maturity-dependent loadings, gives an explicit $O(m^{-2})$ finite-rate bound, and treats a specified starting regime. Such a start adds $B(T)$ and $B(T)^2$ terms, although the latter is already a linear combination of $\int B$ and $\int B^2$.

Two chains that the curve cannot tell apart

Here are two three-state chains with different transition structures. Neither is reversible. The first visits all states in both directions, and the second cycles mostly one way:

$$Q_A = \begin{pmatrix} -3 & 2 & 1 \\ 1 & -2 & 1 \\ 0.5 & 1.5 & -2 \end{pmatrix}, \qquad Q_B = \begin{pmatrix} -1 & 1 & 0 \\ 0.2 & -2.2 & 2 \\ 3 & 0 & -3 \end{pmatrix}.$$

Chain A has levels $(8\%, 4\%, 1\%)$ and variances $(0.003, 0.0015, 0.0005)$. The levels and variances of chain B were solved for so that it has the same $\bar\theta$, the same $\bar s$ and the same matrix $M$:

Both generators are multiplied by 2 below, so the regimes last a few months, and $\kappa = 1$. The chart shows the regime effect on the yield, which is the yield minus the averaged Vasicek yield, in basis points.

The two numerical solutions lie almost on top of each other. The formula with the three numbers sits a little away from both, and that gap is the second-order term, which the formula omits. The difference between the chains is smaller still, because it too is of second order.

The certificate checks the order directly. Multiplying both generators by a factor $m$ and scaling the difference in $\log P$ by $m^2$ gives a number that settles as $m$ grows:

maturity$m = 10$$m = 20$$m = 40$$m = 80$
1−2.38e-6−2.31e-6−2.27e-6−2.25e-6
3−6.07e-6−5.88e-6−5.78e-6−5.73e-6
5−7.72e-6−7.51e-6−7.40e-6−7.35e-6
10−1.09e-5−1.07e-5−1.06e-5−1.05e-5

If the chains differed at first order, these scaled numbers would grow in proportion to $m$.

The long end

At long maturities $B$ settles at $1/\kappa$, so the forcing settles at

$$g_{\infty,i} = -\theta_i + \frac{s_i}{2\kappa^2}.$$

The linear system then has constant coefficients. Its solution grows like the exponential of the largest eigenvalue $\Lambda$ of $Q + \operatorname{diag} g_\infty$, and the long yield is

$$y_\infty = \lim_{T\to\infty} \Big(-\frac{\log P(T)}{T}\Big) = -\Lambda .$$

With two regimes that each leave at rate $\lambda$, write $g_\infty = \bar g \pm \tilde g$. The matrix is $2\times2$ and its largest eigenvalue is

$$\Lambda = \bar g + \sqrt{\lambda^2 + \tilde g^{\,2}} - \lambda .$$

Expanding the square root in powers of $\tilde g/\lambda$ gives

$$\Lambda = \bar g + \frac{\tilde g^{\,2}}{2\lambda} - \frac{\tilde g^{\,4}}{8\lambda^3} + \frac{\tilde g^{\,6}}{16\lambda^5} - \cdots$$

The second term is the Green–Kubo term from the averaging page. The series converges whenever $\lambda > |\tilde g|$, that is, whenever the switching rate exceeds half the gap between the long-run rates of the two regimes. With rates a few percent apart, that means faster than once every few decades.

The same holds for a chain of any size. Scale the generator as $Q = Q_0/\varepsilon$ and write $D = g_\infty$. The eigenvalue has a series whose terms come from the group inverse, starting from $v_0 = \mathbf 1$:

$$\mu_k = \pi\cdot\big(D\,v_{k-1}\big), \qquad v_k = Q_0^{\#}\Big(\sum_{j=1}^{k-1}\mu_j\,v_{k-j} - D\,v_{k-1}\Big),$$ $$\Lambda = \sum_{k\ge1} \varepsilon^{\,k-1}\,\mu_k .$$

The first term is the average and the second is the Green–Kubo term, which equals the long-maturity limit of the three-number formula:

$$\mu_2 = \frac{c_2}{\kappa^2} + \frac{c_3}{\kappa^3} + \frac{c_4}{\kappa^4}.$$

The zero eigenvalue of $Q_0$ is simple, so $\Lambda$ is an analytic function of $\varepsilon$ near zero and the series converges. For chain A the terms shrink by a factor of about $0.01\,\varepsilon$ each. The errors of the partial sums, in basis points of long yield, are:

generatorlong yield1 term2 terms3 terms5 terms10 terms
$Q_A/20$339.55 bp4020.24e-35e-6
$Q_A/2$372.15 bp41e-22e-46e-83e-12
$2\,Q_A$374.99 bp0.99e-43e-66e-11< 1e-11

At $Q_A/20$ the regimes last seven to ten years on average, and the series still converges quickly. The long end is simpler than the rest of the curve: it forgets the start, so there is no initial layer, and the whole correction is one eigenvalue.

A fixed-maturity truncation and this exact long-end eigenvalue can be joined without a gap. The uniform long-maturity note proves the time-dependent result for finite irreducible chains, including defective generators, using the instantaneous Perron eigenvalue and geometric transport of its slow mode. It also shows sharply that when the fast generator's invariant law moves, the stationary-observation remainder is generally $O(m^{-2})$, not the fixed-generator $O(m^{-3})$ rate.

Between fixed maturity and the long end

The three-number formula holds at fixed maturity with an error of order $\varepsilon^2$, and the eigenvalue series holds as $T \to \infty$. Neither covers the middle. The secular part of the formula, $\bar g_\infty T$ plus the Green–Kubo term $\varepsilon\mu_2 T$, is the eigenvalue series stopped after two terms, so its error grows like $\varepsilon^2\mu_3 T$ and is of order one once $T$ is of order $1/\varepsilon^2$.

The remedy is to keep the eigenvalue exact and expand only the transient. With $\Lambda$ the principal eigenvalue of $Q + \operatorname{diag} g_\infty$, $\bar g = \pi\cdot g$ and $k = \mathcal K(\tilde g, \tilde g)$ the integrand of the first-order term, with $\bar g_\infty$ and $k_\infty$ their limits,

$$\log\big(\pi\cdot a(T)\big) = \Lambda\,T + \int_0^T \big(\bar g - \bar g_\infty\big)\,dt + \int_0^T \big(k - k_\infty\big)\,dt + O(\varepsilon^2),$$

uniformly in $T \ge 0$. At fixed $T$ this differs from the three-number formula by $\varepsilon^2\mu_3T + \cdots$, within that formula's error. As $T$ grows the two integrals converge, and what remains is the exact long yield.

For two regimes the proof is short. The mean $\bar a = \tfrac12(a_1 + a_2) = \pi\cdot a$ and the normalized difference $\omega = (a_1 - a_2)/(a_1 + a_2)$ satisfy, as on the CIR page,

$$\log\bar a(T) = \int_0^T \big(\bar g + \tilde g\,\omega\big)\,dt, \qquad \omega' = \tilde g\,(1 - \omega^2) - 2\lambda\,\omega, \qquad \omega(0) = 0 .$$

Freeze $t$. The balance $\tilde g(1 - \omega^2) = 2\lambda\omega$ has the stable root $\omega^*(t) = \big(\sqrt{\lambda^2 + \tilde g^{\,2}} - \lambda\big)/\tilde g$, and $\bar g + \tilde g\,\omega^* = \Lambda(t)$ is the principal eigenvalue of $Q + \operatorname{diag} g(t)$. So

$$\log\bar a(T) - \int_0^T \Lambda(t)\,dt = \int_0^T \tilde g\,(\omega - \omega^*)\,dt .$$

The gap $\omega - \omega^*$ starts at zero, because $\tilde g(0) = 0$, and is driven only by $\omega^{*\prime} = O(\varepsilon\,\tilde g')$ against a restoring rate $2\lambda - 2|\tilde g|$. It is therefore $O(\varepsilon^2)$ and decays like $\tilde g'$, so the integral is bounded by a constant times $\varepsilon^2$ for every $T$.

Finally $\Lambda(t) = \bar g + \tilde g^{\,2}/(2\lambda) - \tilde g^{\,4}/(8\lambda^3) + \cdots$ with $k = \tilde g^{\,2}/(2\lambda)$, so $\int_0^T(\Lambda(t) - \Lambda)\,dt$ is the two integrals above plus an $O(\varepsilon^3)$ integral that converges.

The same symmetry makes $\mu_3 = 0$ for two regimes: $\Lambda$ depends on $\tilde g^{\,2}$ only. The fixed-maturity formula is then out by $\varepsilon^3\mu_4 T$ at long maturities, which is why the composite matters most for chains of three or more regimes, where $\mu_3 \ne 0$.

For a start in a known regime $\nu$, add $\log(\nu\cdot r(T))$, with $r(T)$ the Perron vector of $Q + \operatorname{diag} g(T)$ normalized by $\pi\cdot r = 1$. For two regimes $r \propto (1 + \omega^*, 1 - \omega^*)$, and $\log(1 \pm \omega^*) = \pm\tfrac12\varepsilon\,\tilde g(T) + O(\varepsilon^2)$ is the memory factor of the CIR page. Without it the error is $O(\varepsilon)$ at every maturity; with it, $O(\varepsilon^2)$ uniformly, and there is no initial layer at this order because $g(0) = 0$.

The certificate checks both chains on maturities up to $1/\varepsilon^2$, with the tail of the exact solution computed from the constant-coefficient system once the forcing has settled. Doubling $1/\varepsilon$ divides the largest error by about four. The fixed-maturity formula at $T = 1/\varepsilon^2$ settles instead at $|\mu_3| = 3.61e-7$ for chain A.

largest error over $0 \le T \le 1/\varepsilon^2$$1/\varepsilon = 10$$1/\varepsilon = 20$$1/\varepsilon = 40$$1/\varepsilon = 80$
chain A, composite3.04e-77.48e-81.86e-84.93e-9
chain A, fixed-maturity formula at $T = 1/\varepsilon^2$6.64e-74.35e-73.79e-73.65e-7
chain A, known start, with $\log(\nu\cdot r)$3.04e-57.65e-61.96e-65.22e-7
chain A, known start, without1.16e-35.80e-42.90e-41.45e-4
two regimes, composite1.09e-62.70e-76.70e-81.67e-8

The finite-chain corollary now proves this simpler composite for every fixed irreducible generator, including defective ones, provided the forcing and its derivative approach their limits integrably. It follows by comparing the exact moving-Perron transport formula with the first two instantaneous eigenvalue coefficients. The omitted difference is uniformly $O(1/m^2)$, not a secular term, because the exact limiting Perron root retains every constant-forcing order. For a known initial prior $\nu$, the same theorem proves the displayed correction $\log\{\nu r_m(T)\}$ with the same uniform order.

Consequences

Certificate: verify_three_numbers.py.