# Re: [R] Testing additive nonparametric model

From: Simon Wood <s.wood_at_bath.ac.uk>
Date: Wed 04 Apr 2007 - 08:29:11 GMT

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 address your problem....

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@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> http://www.R-project.org/posting-guide.html and provide commented, minimal,
> self-contained, reproducible code.

```--

> Simon Wood, Mathematical Sciences, University of Bath, Bath, BA2 7AY UK

> +44 1225 386603  www.maths.bath.ac.uk/~sw283

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help