Learn R Programming

refund (version 0.1-6)

ff: Construct a function-on-function regression term

Description

Defines a term $\int^{s_{hi, i}}_{s_{lo, i}} X_i(s)\beta(t,s)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 first difference penalties for $\beta(t,s)$ and numerical integration over the entire range $[s_{lo, i}, s_{hi, i}] = [\min(s_i), \max(s_i)]$ by using Simpson weights. 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. If check.ident==TRUE (the default), the routine tries to determine the effective rank of the covariance operator of the $X_i(s)$ and, if necessary, adjusts the number of marginal basis functions for xind downwards from the default or supplied value in splinepars to ensure identifiability of $\beta(s,t)$. Specifically, the number of basis functions is limited to be at most the number of eigenvalues accounting for at least .99 of the total variance in $X_i(s)$.

Usage

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

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
matrix (or vector) of indices of evaluations of $Y_i(t)$
xind
matrix (or vector) of indices of evaluations of $X_i(s)$; i.e. matrix with rows $(s_{i1},\dots,s_{iS})$
basistype
defaults to "te", i.e. a tensor product spline to represent $\beta(t,s)$. Alternatively, use "s" for bivariate basis functions (see mgcv's
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"
L
optional: an n by ncol(xind) matrix 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 or "s<=t"< code=""> for $(s_{hi, i}, s_{lo, i}) = (0, t)$ or a functio
splinepars
optional arguments supplied to the basistype-term. Defaults to a cubic tensor product B-spline with marginal first difference penalties, i.e. list(bs="ps", m=c(2, 1)) See te
check.ident
check rank of $Cov(X_i(s),X_i(s'))$ and adjust number of basis functions if necessary. See Details. Defaults to TRUE.

Value

  • a list containing
    • calla "call" tote(ors,t2) using the appropriately constructed covariate and weight matrices
    • dataa list containing the necessary covariate and weight matrices

See Also

mgcv's linear.functional.terms