sff: Construct a smooth function-on-function regression term

View source: R/pffr-sff.R

sffR Documentation

Construct a smooth function-on-function regression term

Description

Defines a term \int^{s_{hi, i}}_{s_{lo, i}} f(X_i(s), s, t) ds for inclusion in an mgcv::gam-formula (or bam or gamm or gamm4:::gamm) as constructed by pffr. Defaults to a cubic tensor product B-spline with marginal second differences penalties for f(X_i(s), s, t) and integration over the entire range [s_{lo, i}, s_{hi, i}] = [\min(s_i), \max(s_i)]. Can't deal with any missing X(s), unequal lengths of X_i(s) not (yet?) possible. Unequal ranges for different X_i(s) should work. X_i(s) is assumed to be numeric.
sff() IS AN EXPERIMENTAL FEATURE AND NOT WELL TESTED YET – USE AT YOUR OWN RISK.

Usage

sff(
  X,
  yind,
  xind = seq(0, 1, l = ncol(X)),
  basistype = c("te", "t2", "s"),
  integration = c("simpson", "trapezoidal"),
  L = NULL,
  limits = NULL,
  splinepars = list(bs = "ps", m = c(2, 2, 2))
)

Arguments

X

an n by ncol(xind) matrix of function evaluations X_i(s_{i1}),\dots, X_i(s_{iS}); i=1,\dots,n.

yind

DEPRECATED matrix (or vector) of indices of evaluations of Y_i(t); i.e. matrix with rows (t_{i1},\dots,t_{iT}); no longer used.

xind

vector of indices of evaluations of X_i(s), i.e, (s_{1},\dots,s_{S})

basistype

defaults to "te", i.e. a tensor product spline to represent f(X_i(s), 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. Alternatively and for non-equidistant grids, "trapezoidal".

L

optional: an n by ncol(xind) giving the weights for the numerical integration over s.

limits

defaults to NULL for integration across the entire range of X(s), otherwise specifies the integration limits s_{hi, i}, s_{lo, i}: either one of "s<t" or "s<=t" for (s_{hi, i}, s_{lo, i}) = (0, t) or a function that takes s as the first and t as the second argument and returns TRUE for combinations of values (s,t) if s falls into the integration range for the given t. This is an experimental feature and not well tested yet; use at your own risk.

splinepars

optional arguments supplied to the basistype-term. Defaults to a cubic tensor product B-spline with marginal second differences, i.e. list(bs="ps", m=c(2,2,2)). See te or s for details

Value

a list containing

  • call a "call" to te (or s, t2) using the appropriately constructed covariate and weight matrices (see linear.functional.terms)

  • data a list containing the necessary covariate and weight matrices

Author(s)

Fabian Scheipl, based on Sonja Greven's trick for fitting functional responses.


refund documentation built on Sept. 21, 2024, 1:07 a.m.

Related to sff in refund...