The PTOPALS buildmethod fits migration probabilities by representing them relative to a standard migration curve in terms of a linear P-Spline (see Dyrting 2020 and Dyrting and Taylor 2024).
The user must specify the population \(\pop\) and the standard migration probabilities \(\smprob\) using and extrainfo string of the form PTOPALS:PInfo,SInfo[,ExtraInfo]. If PInfo is a number then the population \(\pop_x\) is flat at this value. If it is a string then it specifies the handle of a PCURVE object. If SInfo is a number then the standard migration probabilities are flat at this value. If it is a string then it specifies the handle of the standard MIGRATION object. ExtraInfo is an optional comma-separated list of quoted strings of the form "Parameter=Value" which can be used to change the method's default settings.
Degree
By default PTOPALS uses linear B-Splines. The degree of splines can be changed with the extrainfo string "Degree=m".
Order
By default PTOPALS uses a first order penalty \(k=1\)". The order can be changed with the extrainfo string "Order=k".
There are two ways to set the B-Spline knots. The first way is to set the maximum age using extrainfo string "MaxAge=\(\maxage\)". The internal points are then equally spaced upwards from 1 as follows \begin{eqnarray} x_0&=&0\\ x_1&=&1\\ x_i &= &x_{i-1}+\knotspacing,\quad i=2,\ldots,\nintern\\ x_{\nintern+1}&=&\maxage \end{eqnarray} where \begin{equation} \nintern=\ceil{\frac{\maxage-1}{\knotspacing}} \end{equation} and the spacing \(\knotspacing\) is specified by the extrainfo string "KnotSpacing=\(\knotspacing\)". The default values are \(\maxage=110\) and \(\knotspacing=2\). The second way is to set the knots explicitly using the extrainfo string "Knots=\(x_0\)|\(x_1\)|\(x_2\)|\(\ldots\)|\(x_\nintern\)|\(\maxage\)".
Penalty
By default PTOPALS automatically calculates the penalty \(\pen\) by minimizing the Bayesean information criterion ("Penalty=BIC"). An alternative is the Akaike information criterion ("Penalty=AIC").
The penalty can also be specified explicitly using "Penalty=\(\pen\)".