Hi,
 
I am looking for a function that generalizes 'approx' to two (or more)
dimensions. The references on the approx help page point toward splines,
but a) splines is what I am trying to avoid in the first place and b)
splines (except for mgcv splines) seem to be one dimensional.
 
Here is a more detailed account. Using mgcv:gam I fit an additive model
xy.gam according to the formula y ~ s(x), which is a spline under the
hood. If I now wish to compute model prediction for new data I could use
predict.gam(xy.gam, newdata). However newdata will first be expanded
into a large matrix of coefficients with respect to the spline basis
functions. For example if the length of newdata is 1e6 and the size of
the basis is 100 than the matrix of coefficients is 100*1e6, i.e. huge.
The predict.gam recognizes the problem and works around it by doing a
piece-meal prediction, but this turns out to be too slow for my needs.
 
One way around is to tabulate s(x) on a fine enough grid and use approx
for prediction. Something like this (pseudo-code)
 
x.grid <- seq(min(newdata), max(newdata), length=1000)
y.grid <- predict.gam(xy.gam, x.grid)
 
y.newdata <- approx(x.grid, y.grid, newdata)$y
 
 
I didn't test this, but I expect it to be dramatically faster than
predict.gam.
 
Unfortunately I don't know how to extend it into 2D. Your suggestions
are very welcome!
 
 
Thanks,
Vadim

	[[alternative HTML version deleted]]


