[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 
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 at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> 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



More information about the R-help mailing list