\( \newcommand{\smoothedasmp}{\texttt{SMOOTHED\_ASMP}} \newcommand{\bsplineasmp}{\texttt{BSPLINE\_ASMP}} \newcommand{\objfunc}{S} \newcommand{\minage}{\alpha} \newcommand{\maxage}{\beta} \newcommand{\knotspacing}{\delta x} \newcommand{\bmat}{B} \newcommand{\bvec}{\theta} \newcommand{\diff}{\Delta} \newcommand{\migprob}{q} \newcommand{\smigprob}{\tilde{\migprob}} \newcommand{\pen}{\lambda} \newcommand{\tofunc}{f} \newcommand{\fromfunc}{\tofunc^{-1}} \newcommand{\nbasis}{n} \newcommand{\degree}{m} \newcommand{\order}{k} \newcommand{\xinfovar}[1]{\textit{#1}} \newcommand{\xinfoval}[1]{\texttt{#1}} \newcommand{\ceil}[1]{\left\lceil #1\right\rceil} \newcommand{\nintern}{n} \)

Smoothed ASMP

This build method smooths a migration curve using P-Splines. Given migration probabilities \(\migprob_x\) for \(x=0,1,2,\ldots,\omega\), B-Spline functions \(\bmat_j(x)\) of degree \(\degree\) defined on knots \(\minage,x_1,x_2,\ldots,x_\nintern,\maxage\), and weights \(\bvec_j\), the smoothed migration probability \(\smigprob_x\) is given by \begin{equation} \smigprob_x=\left\{\begin{array}{ll} \fromfunc\left( \sum_{j=1}^\nbasis\bmat_j(x)\bvec_j\right) & x\in [\minage,\maxage]\\ \migprob_x & \mathrm{otherwise} \end{array}\right. \end{equation} where \(\tofunc(\migprob)\) is a transformation function. The weights \(\bvec_j\) are chosen to minimise the objective function \begin{equation} \objfunc=\sum_{x=\minage}^\maxage\left\{\tofunc(\migprob_x) -\tofunc(\smigprob_x)\right\}^2 +\pen \sum_{j=\order+1}^\nbasis\left(\diff^\order\bvec_j\right)^2 \end{equation} where \(\diff^\order\) is the the \(\order\)-order difference operator and \(\pen\) is a non-negative penalty. The build method BSPLINE_ASMP is the special case \(\pen=0\).

Extra Information

The default behaviour can be modified by appending an extrainfo string to the buildmethod, eg SMOOTHED_ASMP:ExtraInfo. Here ExtraInfo is a comma-separated list of quoted strings of the form "Parameter=Value".

ModelType
The transformation function \(\tofunc(\migprob)\) 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=LINEAR.

Degree
The value for the degree \(\degree\) can be set with the extrainfo string "Degree=\(\degree\)". The default value is \(\degree=2\).

Order
The value for the order \(\order\) can be set with the extrainfo string "Order=\(\order\)". The default value is \(\order=1\).

Knots
There are two ways to set the B-Spline knots. The first way is to set the minimum and maximum ages using extrainfo strings "MinAge=\(\minage\)" and "MaxAge=\(\maxage\)" respectively. The internal points are then equally spaced upwards from \(\minage\) \begin{equation} x_i = \minage + \knotspacing\times i,\quad i=1,\ldots,\nintern \end{equation} where \begin{equation} \nintern=\ceil{\frac{\maxage-\minage}{\knotspacing}}-1 \end{equation} and the spacing \(\knotspacing\) is specified by the extrainfo string "KnotSpacing=\(\knotspacing\)". The default values are \(\minage=0\), \(\maxage=90\) and \(\knotspacing=2\). The second way is to set the knots explicitly using the extrainfo string "Knots=\(\minage\)|\(x_1\)|\(x_2\)|\(\ldots\)|\(x_\nintern\)|\(\maxage\)".

Penalty
The value for the penalty \(\pen\) can be set with the extrainfo string "Penalty=\(\lambda\)". If \(\pen\) is negative then it is chosen to minimize the Bayesian Information Criterion. The default value is \(\pen=-1\).