SLoS {PFLR} | R Documentation |
SLoS regression Model
Description
Calculates functional regression using the Smooth and Locally Sparse (SLoS) method.
Usage
SLoS(
Y,
X,
M,
d,
domain,
extra = list(Maxiter = 100, lambda = exp(seq(-30, 0, length.out = 10)), gamma =
10^(-10:10), absTol = 10^(-10), Cutoff = 10^(-6))
)
Arguments
Y |
Vector, length n, centred response. |
X |
Matrix of n x p, covariate matrix, should be dense, centred. |
M |
Integer, t1,..., tM are M equally spaced knots. |
d |
Integer, the degree of B-Splines. |
domain |
The range over which the function X(t) is evaluated and the coefficient function |
extra |
List of parameters which have default values:
|
Value
beta: Estimated \beta
(t) at discrete points.
extra: List containing other values which may be of use:
X: Matrix of n x p used for model.
Y: Vector of length n used for model.
M: Integer representing the number of knots used in the model calculation.
d: Integer, degree of B-Splines used.
domain: The range over which the function X(t) was evaluated and the coefficient function
\beta
(t) was expanded by the B-spline basis functions.b: Estimated b values.
delta: Estimated cutoff point.
Optgamma: Optimal smoothing parameter selected by BIC.
Optlambda: Optimal shrinkage parameter selected by BIC.
Examples
library(fda)
betaind = 1
snr = 2
nsim = 1
n = 50
p = 21
Y = array(NA,c(n,nsim))
X = array(NA,c(n,p,nsim))
domain = c(0,1)
M = 20
d = 3
norder = d+1
nknots = M+1
knots = seq(domain[1],domain[2],length.out = nknots)
nbasis = nknots + norder - 2
basis = fda::create.bspline.basis(knots,nbasis,norder)
V = eval.penalty(basis,int2Lfd(2))
extra=list(lambda=exp(seq(-18,-12, length.out = 10)),gamma=10^(-8:-6))
for(itersim in 1:nsim)
{
dat = ngr.data.generator.bsplines(n=n,nknots=64,norder=4,p=p,domain=domain,snr=snr,betaind=betaind)
Y[,itersim] = dat$Y
X[,,itersim] = dat$X
}
slosfit = SLoS(Y=Y[1:n,1],(X[1:n,,1]),M=M,d=d,domain=domain,extra=extra)