# [R] Testing additive nonparametric model

Simon Wood s.wood at bath.ac.uk
Wed Apr 4 10:29:11 CEST 2007

```I'd use mgcv::gam to fit a 2D smooth, rather than loess, and then do an
*approximate* likelihood ratio/ F test. For example....

library(mgcv)
## fake some data....
set.seed(0)
n<-400;sig2<-4
x0 <- runif(n, 0, 1);x2 <- runif(n, 0, 1)
f <- 2 * sin(pi * x0)
f <- f + 0.2 * x2^11 * (10 * (1 - x2))^6 + 10 * (10 * x2)^3 * (1 - x2)^10
e <- rnorm(n, 0, sqrt(abs(sig2)))
y <- f + e
## now fit models and compare...
b0 <- gam(y~s(x0)+s(x2)) ### fit additive model
b1 <- gam(y~te(x0,x2,k=10)) ### fit interaction model
anova(b0,b1,test="F")

The above uses a scale invariant tensor product smooth as the bivariate
smooth. To get something more like loess, you could rescale your predictors
into the unit square, say, and then use something like `y~s(x0,x2,k=100)' but
in that case you sacrifice proper nesting of the models.

There's more information in e.g. section 5.2 of my book (see ?gam for ref.)

Another alternative would be to use Chong Gu's `gss' package which is set up
to do `smoothing spline anova' modelling: this is quite a natural way to

best,
Simon

On Tuesday 03 April 2007 09:36, Donal O'Neill wrote:
> I have estimated a multiple nonparametric regression using the loess
> command in R. I have also estimated an additive version of the model using
> the gam function. Is there a way of using the output of these two models to
> test the restrictions imposed by the additive model?
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help