[R] Testing additive nonparametric model
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....
## fake some data....
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
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....
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
> 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