Pools with Different Numbers of Coupons Remaining
Suppose that one pool has two remaining coupons, and the other has three. MATLAB® expects the prepayment matrix to be in the following format:
V11 V21 V12 V22 NaN V23
the single monthly mortality (SMM) rate for pool
jth coupon period since
The use of
NaN to pad the prepayment matrix
is necessary because MATLAB cannot concatenate vectors of different
lengths into a matrix. Also, it can serve as an error check against
any unintended operation (any MATLAB operation that would return
For example, assume that the 2-month pool has a constant SMM of 0.5% and the 3-month pool has a constant SMM of 1% in every period. The prepayment matrix you would create is depicted below.
Create this input in whatever manner is best for you.
Summary of Prepayment Data Vector Representation
When you specify a PSA prepayment speed, MATLAB "seasons" the pool according to its age.
When you specify your own prepayment matrix, identify the maximum number of coupons remaining using
cpncount. Then supply the matrix elements up to the point when cash flow ceases to exist.
When different length pools must exist in the same matrix, pad the shorter one(s) with
NaN. Each column of the prepayment matrix corresponds to a specific pool.
- Fixed-Rate Mortgage Pool
- Prepayment Modeling with a Two Factor Hull White Model and a LIBOR Market Model
- Computing Option-Adjusted Spread
- Pricing Mortgage Backed Securities Using the Black-Derman-Toy Model
- Using Collateralized Mortgage Obligations (CMOs)