# af_old: Construct an FGAM regression term In refund: Regression with Functional Data

## Description

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

## Usage

  1 2 3 4 5 6 7 8 9 10 11 12 13 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 ) 

## Arguments

 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 ith row (t_{i1},.,t_{iJ}) xind Same as argvals. It will discard this argument in the next version of refund. basistype defaults to "te", i.e. a tensor product spline to represent F(x,t) Alternatively, use "s" for bivariate basis functions (see s) or "t2" for an alternative parameterization of tensor product splines (see t2) 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 optional arguments specifying options for representing and penalizing the function F(x,t). Defaults to a cubic tensor product B-spline with marginal second-order difference penalties, i.e. list(bs="ps", m=list(c(2, 2), c(2, 2)), see te or s for details 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

## Value

A list with the following entries:

1. call - a "call" to te (or s, t2) using the appropriately constructed covariate and weight matrices.

2. argvals - the argvals argument supplied to af

3. 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.

## Author(s)

Mathew W. McLean mathew.w.mclean@gmail.com and Fabian Scheipl

## References

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