The algorithm seeks to find the least squares solution to the equation: :\ln{(\mathbf{m}_{x,t})} = \mathbf{a}_x + \mathbf{b}_x \mathbf{k}_t + \epsilon_{x,t} where \mathbf{m}_{x,t} is a matrix of mortality rate for each age x in each year t. • Compute \mathbf{a}_x which is the average over time of \ln{(\mathbf{m}_{x,t})} for each age: • ;: \mathbf{a}_x = \frac{\sum_{t=1}^{T}{\ln{(\mathbf{m}_{x,t})}}}{T} • Compute \mathbf{A}_{x,t} which will be used in SVD: • ;: \mathbf{A}_{x,t} = \ln{(\mathbf{m}_{x,t})} - \mathbf{a}_x • Compute the singular value decomposition of \mathbf{A}_{x,t}: • ;: \mathbf{U} \mathbf{S} \mathbf{V^*} = \text{svd}(\mathbf{A}_{x,t}) • Derive \mathbf{b}_x, s_1 (the scaling eigenvalue), and \mathbf{k}_t from \mathbf{U}, \mathbf{S}, and \mathbf{V^*}: • ;: \mathbf{b}_x = (u_{1,1}, u_{2,1}, ..., u_{x,1}) • ;: \mathbf{k}_t = (v_{1,1}, v_{1,2}, ..., v_{1,t}) • Forecast \mathbf{k}_t using a standard univariate
ARIMA model to n additional years: • ;: \mathbf{k}_{t+n} = \text{ARIMA}(\mathbf{k}_t, n) • Use the forecasted \mathbf{k}_{t+n}, with the original \mathbf{b}_x, and \mathbf{a}_x to calculate the forecasted mortality rate for each age: • ;: \mathbf{m}_{x,t+n} = \exp(\mathbf{a}_x + s_1 \mathbf{k}_{t+n} \mathbf{b}_x) == Discussion ==