[R] RDA and trend surface regression

MORLON morlon.helene at gmail.com
Tue Feb 27 18:52:50 CET 2007


Thanks a lot for your answers,

I am concerned by your advice not to use polynomial constraints, or to use
QDA instead of RDA. My final goal is to perform variation partitioning using
partial RDA to assess the relative importance of environmental vs spatial
variables. For the spatial analyses, trend surface analysis (polynomial
constraints) is recommended in Legendre and Legendre 1998 (p739). Is there a
better method to integrate space as an explanatory variable in a variation
partitioning analyses? 

Also, I don't understand this: when I test for the significant contribution
of monomials (forward elimination)

>anova(rda(Helling ~ I(x^2)+Condition(x)+Condition(y)))

performs the permutation test as expected, whereas 

>anova(rda(Helling ~ I(y^2)+Condition(x)+Condition(y)))

Returns this error message:

Error in "names<-.default"(`*tmp*`, value = "Model") : 
        attempt to set an attribute on NULL

Thanks again for your help
Kind regards,
Helene

Helene MORLON
University of California, Merced

-----Original Message-----
From: Jari Oksanen [mailto:jarioksa at sun3.oulu.fi] 
Sent: Monday, February 26, 2007 11:27 PM
To: r-help at stat.math.ethz.ch
Cc: morlon.helene at gmail.com
Subject: [R] RDA and trend surface regression


> 'm performing RDA on plant presence/absence data, constrained by
> geographical locations. I'd like to constrain the RDA by the "extended
> matrix of geographical coordinates" -ie the matrix of geographical
> coordinates completed by adding all terms of a cubic trend surface
> regression- . 
> 
> This is the command I use (package vegan):
> 
>  
> 
> >rda(Helling ~ x+y+x*y+x^2+y^2+x*y^2+y*x^2+x^3+y^3) 
> 
>  
> 
> where Helling is the matrix of Hellinger-transformed presence/absence data
> 
> The result returned by R is exactly the same as the one given by:
> 
>  
> 
> >anova(rda(Helling ~ x+y)
> 
>  
> 
> Ie the quadratic and cubic terms are not taken into account
> 

You must *I*solate the polynomial terms with function I ("AsIs") so that
they are not interpreted as formula operators:

rda(Helling ~ x + y + I(x*y) + I(x^2) + I(y^2) + I(x*y^2) + I(y*x^2) +
I(x^3) + I(y^3))

If you don't have the interaction terms, then it is easier and better
(numerically) to use poly():

rda(Helling ~ poly(x, 3) + poly(y, 3))

Another issue is that in my opinion using polynomial constraints is an
Extremely Bad Idea(TM).

cheers, Jari Oksanen



More information about the R-help mailing list