refund (version 0.1-23)

af_old: Construct an FGAM regression term

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

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.

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

See Also

fgam, lf, mgcv's linear.functional.terms, fgam for examples