# fosr2s: Two-step function-on-scalar regression In refund: Regression with Functional Data

## Description

This function performs linear regression with functional responses and scalar predictors by (1) fitting a separate linear model at each point along the function, and then (2) smoothing the resulting coefficients to obtain coefficient functions.

## Usage

 1 2 3 4 5 6 7 8 9 fosr2s( Y, X, argvals = seq(0, 1, , ncol(Y)), nbasis = 15, norder = 4, pen.order = norder - 2, basistype = "bspline" ) 

## Arguments

 Y the functional responses, given as an n\times d matrix. X n\times p model matrix, whose columns represent scalar predictors. Should ordinarily include a column of 1s. argvals the d argument values at which the functional responses are evaluated, and at which the coefficient functions will be evaluated. nbasis number of basis functions used to represent the coefficient functions. norder norder of the spline basis, when basistype="bspline" (the default, 4, gives cubic splines). pen.order order of derivative penalty. basistype type of basis used. The basis is created by an appropriate constructor function from the fda package; see basisfd. Only "bspline" and "fourier" are supported.

## Details

Unlike fosr and pffr, which obtain smooth coefficient functions by minimizing a penalized criterion, this function introduces smoothing only as a second step. The idea was proposed by Fan and Zhang (2000), who employed local polynomials rather than roughness penalization for the smoothing step.

## Value

An object of class fosr, which is a list with the following elements:

 fd object of class "fd" representing the estimated coefficient functions. Its main components are a basis and a matrix of coefficients with respect to that basis. raw.coef d\times p matrix of coefficient estimates from regressing on X separately at each point along the function. raw.se d\times p matrix of standard errors of the raw coefficient estimates. yhat n\times d matrix of fitted values. est.func d\times p matrix of coefficient function estimates, obtained by smoothing the columns of raw.coef. se.func d\times p matrix of coefficient function standard errors. argvals points at which the coefficient functions are evaluated. lambda smoothing parameters (chosen by REML) used to smooth the p coefficient functions with respect to the supplied basis.

## Author(s)

Philip Reiss phil.reiss@nyumc.org and Lan Huo

## References

Fan, J., and Zhang, J.-T. (2000). Two-step estimation of functional linear models with applications to longitudinal data. Journal of the Royal Statistical Society, Series B, 62(2), 303–322.

fosr, pffr
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 require(fda) # Effect of latitude on daily mean temperatures tempmat = t(CanadianWeather$dailyAv[,,1]) latmat = cbind(1, scale(CanadianWeather$coord[ , 1], TRUE, FALSE)) # centred! fzmod <- fosr2s(tempmat, latmat, argvals=day.5, basistype="fourier", nbasis=25) par(mfrow=1:2) ylabs = c("Intercept", "Latitude effect") for (k in 1:2) { with(fzmod,matplot(day.5, cbind(raw.coef[,k],raw.coef[,k]-2*raw.se[,k], raw.coef[,k]+2*raw.se[,k],est.func[,k],est.func[,k]-2*se.func[,k], est.func[,k]+2*se.func[,k]), type=c("p","l","l","l","l","l"),pch=16, lty=c(1,2,2,1,2,2),col=c(1,1,1,2,2,2), cex=.5,axes=FALSE,xlab="",ylab=ylabs[k])) axesIntervals() box() if (k==1) legend("topleft", legend=c("Raw","Smoothed"), col=1:2, lty=2) }