Last chance! 50% off unlimited learning
Sale ends in
Implements an iterative algorithm for function-on-scalar regression with variable selection by alternatively updating the coefficients and covariance structure.
fosr.vs(
formula,
data,
nbasis = 10,
method = c("ls", "grLasso", "grMCP", "grSCAD"),
epsilon = 1e-05,
max.iter_num = 100
)
an object of class "formula
": an expression of the model to be fitted.
a data frame that contains the variables in the model.
number of B-spline basis functions used.
group variable selection method to be used ("grLasso", "grMCP", "grSCAD" refer to group Lasso, group MCP and group SCAD, respectively) or "ls
" for least squares estimation.
the convergence criterion.
maximum number of iterations.
A fitted fosr.vs-object, which is a list with the following elements:
an object of class "formula
": an expression of the model to be fitted.
the estimated coefficient functions.
the fitted curves.
the residual curves.
the estimated variance-covariance matrix when convergence is achieved.
group variable selection method to be used or "ls
" for least squares estimation.
Chen, Y., Goldsmith, J., and Ogden, T. (2016). Variable selection in function-on-scalar regression. Stat 5 88-101
# NOT RUN {
set.seed(100)
I = 100
p = 20
D = 50
grid = seq(0, 1, length = D)
beta.true = matrix(0, p, D)
beta.true[1,] = sin(2*grid*pi)
beta.true[2,] = cos(2*grid*pi)
beta.true[3,] = 2
psi.true = matrix(NA, 2, D)
psi.true[1,] = sin(4*grid*pi)
psi.true[2,] = cos(4*grid*pi)
lambda = c(3,1)
set.seed(100)
X = matrix(rnorm(I*p), I, p)
C = cbind(rnorm(I, mean = 0, sd = lambda[1]), rnorm(I, mean = 0, sd = lambda[2]))
fixef = X%*%beta.true
pcaef = C %*% psi.true
error = matrix(rnorm(I*D), I, D)
Yi.true = fixef
Yi.pca = fixef + pcaef
Yi.obs = fixef + pcaef + error
data = as.data.frame(X)
data$Y = Yi.obs
fit.fosr.vs = fosr.vs(Y~., data = data, method="grMCP")
plot(fit.fosr.vs)
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab