Cohort Estimation
The algorithm first determines a sequence t_{0},...,t_{K} of
snapshot dates. The elapsed time, in years, between two consecutive
snapshot dates t_{k-1} and t_{k} is
equal to 1 / ns, where ns is
the number of snapshots per year. These K +1 dates
determine K transition periods.
The algorithm computes $${N}_{i}^{n}$$, the number of
transition periods in which obligor n starts at
rating i. These are added up over all obligors
to get N_{i}, the number of
obligors in the sample that start a period at rating i.
The number periods in which obligor n starts at
rating i and ends at rating j,
or migrates from i to j, denoted
by$${N}_{ij}^{n}$$, is also computed. These are
also added up to get $${N}_{ij}^{}$$, the total number
of migrations from i to j in
the sample.
The estimate of the transition probability from i to j in
one period, denoted by$${P}_{ij}^{}$$, is given by:
$${P}_{ij}^{}=\frac{Nij}{Ni}$$
These probabilities are arranged in a one-period transition
matrix P_{0}, where the i,j entry
in P_{0} is P_{i}_{j}.
If the number of snapshots per year ns is
4 (quarterly snapshots), the probabilities in P_{0} are
3-month (or 0.25-year) transition probabilities. You may, however,
be interested in 1-year or 2-year transition probabilities. The latter
time interval is called the transition interval, Δt ,
and it is used to convert P_{0} into
the final transition matrix, P, according to the
formula:
$$P={P}_{0}^{ns\u25b3t}$$
For example, if ns = 4 and
Δt = 2, P contains
the 2-year transition probabilities estimated from quarterly snapshots.
Note:
For the cohort algorithm, optional output arguments idTotals and sampleTotals from transprob contain
the following information: idTotals(n).totalsVec = $$({N}_{i}^{n})\forall i$$ idTotals(n).totalsMat = $$({N}_{i,j}^{n})\forall ij$$ idTotals(n).algoritm = 'cohort' sampleTotals.totalsVec = $$({N}_{i}^{})\forall i$$ sampleTotals.totalsMat = $$({N}_{i,j}^{})\forall ij$$ sampleTotals.algoritm = 'cohort'
For efficiency, the vectors and matrices in idTotals are
stored as sparse arrays. |
Duration Estimation
The algorithm computes $${T}_{i}^{n}$$,
the total time that obligor n spends in rating i within
the estimation time window. These quantities are added up over all
obligors to get $${T}_{i}^{}$$, the total time
spent in rating i, collectively, by all obligors
in the sample. The algorithm also computes $${T}_{ij}^{n}$$, the number times that obligor n migrates
from rating i to rating j, with i not
equal to j, within the estimation time window.
And it also adds them up to get $${T}_{ij}^{}$$, the total number
of migrations, by all obligors in the sample, from the rating i to j,
with i not equal to j.
To estimate the transition probabilities, the duration algorithm
first needs to compute a generator matrix $$\Lambda $$. Each off-diagonal entry of
this matrix is an estimate of the transition rate out of rating i into
rating j, and is given by:
$${\lambda}_{ij}^{}=\frac{{T}_{ij}^{}}{{T}_{i}^{}},i\ne j$$
The diagonal entries are computed as:
$${\lambda}_{ii}^{}=-{\displaystyle \sum _{j\ne i}^{}}{\lambda}_{ij}^{}$$
With the generator matrix and the transition interval Δt (e.g.,
Δt = 2 corresponds to
2-year transition probabilities), the transition matrix is obtained
as $$P=\mathrm{exp}(\Delta t\Lambda )$$, where exp denotes
matrix exponentiation (expm in
MATLAB).
Note:
For the duration algorithm, optional output arguments idTotals and sampleTotals from transprob contain
the following information: idTotals(n).totalsVec = $$({T}_{i}^{n})\forall i$$ idTotals(n).totalsMat = $$({T}_{i,j}^{n})\forall ij$$ idTotals(n).algoritm = 'duration' sampleTotals.totalsVec = $$({T}_{i}^{})\forall i$$ sampleTotals.totalsMat = $$({T}_{i,j}^{})\forall ij$$ sampleTotals.algoritm = 'duration'
For efficiency, the vectors and matrices in idTotals are
stored as sparse arrays. |