fcRegression: Solve linear models with functional covariate(s)

View source: R/fcRegression.R

fcRegressionR Documentation

Solve linear models with functional covariate(s)

Description

Function to fit (generalized) linear model with functional covariate(s). Model allows one or multiple functional covariate(s) as fixed effect(s), and zero, one, or multiple scalar-valued fixed or random effect(s).

Usage

fcRegression(
  Y,
  FC,
  Z,
  formula.Z,
  family = gaussian(link = "identity"),
  basis.type = c("Fourier", "Bspline", "FPC"),
  basis.order = 6L,
  bs_degree = 3
)

Arguments

Y

Response variable, can be an atomic vector, a one-column matrix or data frame, recommended form is a one-column data frame with column name.

FC

Functional covariate(s), can be a "functional_variable" object or a matrix or a data frame or a list of these object(s).

Z

Scalar covariate(s), can be NULL or not input (when there's no scalar covariate), an atomic vector (when only one scalar covariate), a matrix or data frame, recommended form is a data frame with column name(s).

formula.Z

A formula without the response variable, contains only scalar covariate(s) (or intercept), use the format of lme4 package if random effects exist. e.g. ~ Z_1 + (1|Z_2). (See lmer and glmer) If not assigned, include all scalar covariates and intercept term as fixed effects.

family

A description of the error distribution and link function to be used in the model, see family.

basis.type

Type of funtion basis. Can only be assigned as one type even if there is more than one functional covariates. Available options: 'Fourier' or 'Bspline' or 'FPC', represent Fourier basis, b-spline basis, and functional principal component (FPC) basis respectively. For the detailed form for Fourier, b-splines, and FPC basis, see fourier_basis_expansion, bspline_basis_expansion, and FPC_basis_expansion.

basis.order

Indicate number of the function basis. When using Fourier basis \frac{1}{2},\sin k t, \cos k t, k = 1,\dots,p_f, basis.order is the number p_f. When using b-splines basis \{B_{i,p}(x)\}_{i=-p}^{k}, basis.order is the number of splines, equal to k+p+1. (same as arguement df in bs.) When using FPC basis, basis.order is the number of functional principal components. May set a individual number for each functional covariate. When the element of this argument is less than the number of functional covariates, it will be used recursively.

bs_degree

Degree of the piecewise polynomials if use b-splines basis, default is 3. See degree in bs.

Details

Solve linear models with functional covariates below

g(E(Y_i|X_i,Z_i)) = \sum_{l=1}^{L} \int_{\Omega_l} \beta_l(t) X_{li}(t) dt + (1,Z_i^T)\gamma

where the scalar-valued covariates can be fixed or random effect or doesn't exist (may do not contain scalar-valued covariates).

Value

fcRegression returns an object of class "fcRegression". It is a list that contains the following elements.

regression_result

Result of the regression.

FC.BasisCoefficient

A list of Fourier_series or bspline_series or numeric_basis object(s), represents the functional linear coefficient(s) of the functional covariates.

function.basis.type

Type of funtion basis used.

basis.order

Same as in the arguemnets.

data

Original data.

bs_degree

Degree of the splines, returned only if b-splines basis is used.

Author(s)

Heyang Ji

Examples

data(MECfda.data.sim.0.0)
res = fcRegression(FC = MECfda.data.sim.0.0$FC, Y=MECfda.data.sim.0.0$Y, Z=MECfda.data.sim.0.0$Z,
                   basis.order = 5, basis.type = c('Bspline'),
                   formula.Z = ~ Z_1 + (1|Z_2))

MECfda documentation built on April 3, 2025, 10:07 p.m.