Last chance! 50% off unlimited learning
Sale ends in
fosr2s(Y, X, argvals = seq(0, 1, , ncol(Y)), nbasis = 15, norder = 4,
pen.order = norder - 2, basistype = "bspline")
basistype="bspline"
(the default, 4, gives cubic splines).basisfd
. Only "bspline"
and "fourier"
are supported.fosr
, which is a list with the following elements:"fd"
representing the estimated coefficient functions. Its main components are a basis and a matrix of coefficients with respect to that basis.X
separately at each point along the function.raw.coef
.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.fosr
, pffr
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