The DNAmf function internally calls DNAmf_internal to fit the DNA model with nonseparable kernel.
The model structure is:
\(\begin{cases}
& f_1(\bm{x}) = W_1(\bm{x}),\\
& f_l(\bm{x}) = W(t_l, \bm{x}, f_{l-1}(\bm{x})),
\end{cases}\)
where \(W(t, \bm{x}, y) \sim GP(\alpha, \tau^2 K((t, \bm{x}, y), (t', \bm{x}', y')))\) is a GP model.
Hyperparameters \((\alpha, \tau^2, \bm{\theta})\) are estimated by
maximizing the log-likelihood via an optimization algorithm "L-BFGS-B".
For constant=FALSE, \(\alpha=0\).
The nonseparable covariance kernel is defined as:
$$K((t, \bm{x}, y), (t', \bm{x}', y'))=
\left(\frac{(t-t')^2}{\theta_t} + 1\right)^{ - \left(\frac{\beta(d+1)}{2}+\delta \right) }
\prod^d_{j=1}\phi(x_j,x'_j;\theta_{j})\phi(y,y';\theta_{y}),$$
where \(\phi(\cdot, \cdot)\) depens on the chosen kernel:
For nonseparable squared exponential kernel(kernel = "sqex"):
$$\phi(x, x';\theta) = \exp \left( -\left(\frac{(t-t')^2}{\theta_t} + 1\right)^{-\beta}
\frac{ (x-x')^2 }{\theta} \right)$$
For nonseparable Matern kernel with smoothness parameter of \(\nu=1.5\) (kernel = "matern1.5"):
$$\phi(x,x';\theta) = \left( 1+\frac{1}{\left(\frac{(t-t')^2}{\theta_t} + 1\right)^{ \frac{\beta}{2} }}\frac{\sqrt{3}|x- x'|}{\theta} \right)
\exp \left( -\frac{1}{\left(\frac{(t-t')^2}{\theta_t} + 1\right)^{ \frac{\beta}{2} }}\frac{\sqrt{3}|x- x'|}{\theta} \right)$$
For nonseparable Matern kernel with smoothness parameter of \(\nu=2.5\) (kernel = "matern2.5"):
$$\phi(x, x';\theta) = \left( 1+\frac{1}{\left(\frac{(t-t')^2}{\theta_t} + 1\right)^{ \frac{\beta}{2} }}\frac{\sqrt{5}|x- x'|}{\theta}+
\frac{1}{3}\left(\frac{1}{\left(\frac{(t-t')^2}{\theta_t} + 1\right)^{ \frac{\beta}{2} }}\frac{\sqrt{5}|x- x'|}{\theta} \right)^2 \right) $$
$$\times \exp \left( -\frac{1}{\left(\frac{(t-t')^2}{\theta_t} + 1\right)^{ \frac{\beta}{2} }}\frac{\sqrt{5}|x- x'|}{\theta} \right)$$
When the input locations are not nested, the internal makenested function constructs nested designs as
\(\mathcal{X}^*_L = \mathcal{X}_L\) and
\(\mathcal{X}^*_l = \mathcal{X}_l \cup \mathcal{X}^*_{l+1}\) for \(l = 1, \dots, L-1\).
The function imputer_DNA then imputes pseudo outputs \(\widetilde{\mathbf{y}}_l := f_l(\widetilde{\mathcal{X}}_l)\)
at pseudo inputs \(\widetilde{\mathcal{X}}_l := \mathcal{X}^*_l \setminus \mathcal{X}_l\),
using a stochastic EM algorithm.
For further details, see Heo, Boutelet, and Sung (2025+, <arXiv:2506.08328>).