Defines a term \(\int_{T}F(X_i(t),t)dt\) for inclusion in an `mgcv::gam`

-formula (or
`bam`

or `gamm`

or `gamm4:::gamm`

) as constructed by
`fgam`

, where \(F(x,t)\)$ is an unknown smooth bivariate function and \(X_i(t)\)
is a functional predictor on the closed interval \(T\). Defaults to a cubic tensor product
B-spline with marginal second-order difference penalties for estimating \(F(x,t)\). The
functional predictor must be fully observed on a regular grid

```
af_old(
X,
argvals = seq(0, 1, l = ncol(X)),
xind = NULL,
basistype = c("te", "t2", "s"),
integration = c("simpson", "trapezoidal", "riemann"),
L = NULL,
splinepars = list(bs = "ps", k = c(min(ceiling(nrow(X)/5), 20),
min(ceiling(ncol(X)/5), 20)), m = list(c(2, 2), c(2, 2))),
presmooth = TRUE,
Xrange = range(X),
Qtransform = FALSE
)
```

X

an `N`

by `J=ncol(argvals)`

matrix of function evaluations
\(X_i(t_{i1}),., X_i(t_{iJ}); i=1,.,N.\)

argvals

matrix (or vector) of indices of evaluations of \(X_i(t)\); i.e. a matrix with
*i*th row \((t_{i1},.,t_{iJ})\)

xind

Same as argvals. It will discard this argument in the next version of refund.

basistype

integration

method used for numerical integration. Defaults to `"simpson"`

's rule for
calculating entries in `L`

. Alternatively and for non-equidistant grids, `"trapezoidal"`

or `"riemann"`

. `"riemann"`

integration is always used if `L`

is specified

L

optional weight matrix for the linear functional

splinepars

presmooth

logical; if true, the functional predictor is pre-smoothed prior to fitting; see
`smooth.basisPar`

Xrange

numeric; range to use when specifying the marginal basis for the *x*-axis. It may
be desired to increase this slightly over the default of `range(X)`

if concerned about predicting
for future observed curves that take values outside of `range(X)`

Qtransform

logical; should the functional be transformed using the empirical cdf and
applying a quantile transformation on each column of `X`

prior to fitting? This ensures
`Xrange=c(0,1)`

. If `Qtransform=TRUE`

and `presmooth=TRUE`

, presmoothing is done prior
to transforming the functional predictor

A list with the following entries:

`call`

- a`"call"`

to`te`

(or`s`

,`t2`

) using the appropriately constructed covariate and weight matrices.`argvals`

- the`argvals`

argument supplied to`af`

`L`

the matrix of weights used for the integration`xindname`

the name used for the functional predictor variable in the`formula`

used by`mgcv`

.`tindname`

- the name used for`argvals`

variable in the`formula`

used by`mgcv`

`Lname`

- the name used for the`L`

variable in the`formula`

used by`mgcv`

`presmooth`

- the`presmooth`

argument supplied to`af`

`Qtranform`

- the`Qtransform`

argument supplied to`af`

`Xrange`

- the`Xrange`

argument supplied to`af`

`ecdflist`

- a list containing one empirical cdf function from applying`ecdf`

to each (possibly presmoothed) column of`X`

. Only present if`Qtransform=TRUE`

`Xfd`

- an`fd`

object from presmoothing the functional predictors using`smooth.basisPar`

. Only present if`presmooth=TRUE`

. See`fd`

.

McLean, M. W., Hooker, G., Staicu, A.-M., Scheipl, F., and Ruppert, D. (2014). Functional
generalized additive models. *Journal of Computational and Graphical Statistics*, **23 (1)**,
pp. 249-269. Available at https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3982924/.

`fgam`

, `lf`

, mgcv's `linear.functional.terms`

,
`fgam`

for examples