Learn R Programming

refund (version 0.1-1)

fosr2s: Two-step function-on-scalar regression

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

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.

Value

  • An object of class fosr, which is a list with the following elements:
  • fdobject 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.
  • argvalspoints at which the coefficient functions are evaluated.
  • lambdasmoothing parameters (chosen by REML) used to smooth the $p$ coefficient functions with respect to the supplied basis.

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.

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.

See Also

fosr, pffr

Examples

Run this code
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)
}

Run the code above in your browser using DataLab