This build method is an adaptation of Gonzaga and Schmertmann's TOPALS mortality build method to migration curves. The curve to estimate is specified by migration probabilities \(\umigprob_x\) at all ages \(x\) from \(0\) to \(\maxage=90\). These probabilities are expressed relative to a standard curve \(\smigprob_x\) in the form \begin{equation} \umigprob_x=\fromfunc(\tofunc(\smigprob_x) + \bmat_x\mmult\bvec) . \end{equation} Here \(\tofunc(x)\) is a transformation function, and \(\bmat\) is a matrix of B-Spline basis functions of degree \(\degree\) defined on the age knots \(x_1,x_2,\ldots,x_n\). Given a set of observed migration probabilities \(\omigprob_j\) for age intervals \([x_j,x_j+n_j)\) the B-spline coefficients \(\bvec\) are chosen to maximise the penalized log likelihood function \begin{equation} \loglik(\bvec) =\sum_j\frac{\pop_j}{n_j}\left(\omigprob_j\log\mmigprob_j-\mmigprob_j\right) -\pen\sum_{i}(\bvec_{i+1}-\bvec_i)^2 \end{equation} where \(\pen\) is a positive penalty, and estimated probabilies \(\mmigprob_j\) are calculated from the curve using \begin{equation} \mmigprob_j=\MigrationProb(x_j,n_j;\umigprob,\buildmethod) . \end{equation} Here \(\buildmethod\) is the helper buildmethod HYBRID_INTENSITY. The build method STUDENT_TOPALS is the same as TOPALS except that the default knots are more dense around ages 17 to 19.
Information on the population weights \(\pop_j\) and the standard schedule \(\smigprob_x\) is specified by appending extrainfo strings to the buildmethod value, ie. TOPALS:PInfo,SMigrationHandle[,ExtraInfo]. If PInfo is a number then it specifies the population per age interval in the migration object, otherwise PInfo must be a string enclosed in quotes specifying the handle of a PCURVE object from which the population per migration age interval is calculated. SMigrationHandle is the handle of the standard migration object exclosed in quotes. The optional string ExtraInfo is a comma-separated list of quoted strings of the form "Parameter=Value" which can be used to change the default behaviour of the build method.
Model Type
The transformation function \(\tofunc(\mmigprob)\) is controlled by the extrainfo string
"ModelType=type" where
\begin{equation}
\tofunc(q) = \left\{\begin{array}{ll}
q, & \xinfovar{type}=\xinfoval{LINEAR}\\
\log q, & \xinfovar{type}=\xinfoval{LOG}
\end{array}\right.
\end{equation}
The default value is "ModelType=LOG".
Degree
The value for the degree \(\degree\) can be set with the extrainfo string "Degree=\(\degree\)". The default value is \(\degree=1\).
Knots
The knot points can be set using the extrainfo string "Knots=\(x_1\)|\(x_2\)|\(\ldots\)|\(x_n\)".
The default knots for TOPALS are \(\left\{0,15,25,60,90\right\}\). The default knots for STUDENT_TOPALS are \(\left\{0,15,17,18,19,25,60,90\right\}\).
Penalty
The value for the penalty \(\pen\) can be set with the extrainfo string "Penalty=\(\lambda\)".
The default value is \(\pen=1\).