[R] lme, lmer, gls, and spatial autocorrelation

Manuel Morales Manuel.A.Morales at williams.edu
Tue Aug 25 02:31:35 CEST 2009


Hi Tim,

I don't believe there is a satisfactory solution in R - at least yet -
for non-normal models. Ultimately, this should be possible using lmer()
but not in the near-term. One possibility is to use glmPQL as described
in:

Dormann, F. C., McPherson, J. M., Araújo, M. B., Bivand, R., Bolliger,
J., Carl, G., Davies, R. G., Hirzel, A., Jetz, W., Kissling, W. D.,
Kühn, I., Ohlemüller, R., Peres-Neto, P. R., Reineking, B., Schröder,
B., Schurr, F. M. and Wilson, R. 2007. Methods to account for spatial
autocorrelation in the analysis of species distributional data: a
review. – Ecography 30: 609–628.

However, note the caution:

"This is an inofficial abuse of a Generalized Linear Mixed Model
function (glmmPQL {MASS}), which is a wrapper function for lme {nlme},
which in turn internally calls gls {nlme}."

If all you need are parameter estimates, fine. If you want to do model
comparison, though, no luck.

Manuel

On Mon, 2009-08-24 at 12:10 -0700, Timothy_Handley at nps.gov wrote:
> Bert -
> 
>  I took a look at that page just now, and I'd classify my problem as
> spatial regression. Unfortunately, I don't think the spdep library fits my
> needs. Or at least, I can't figure out how to use it for this problem. The
> examples I have seen all use spdep with networks. They build a graph,
> connecting each location to something like the nearest N neighbors, attach
> some set of weights, and then do an analysis. The plots in my data have a
> very irregular, semi-random, yet somewhat clumped (several isolated
> islands), spatial distribution. Honestly, it's quite weird looking. I don't
> know how to cleanly turn this into a network, and even if I did, I don't
> know that I ought to. To me (and please feel free to disagree) it seems
> more natural to use a matrix of distances and associated correlations,
> which is what the gls function appears to do.
> 
> In the ecological analysis section, it looks like both 'ade4' and 'vegan'
> may have helpful tools. I'll explore that some more. However, I still think
> that one of lme or gls already has the functionality I need, and I just
> need to learn how to use them properly.
> 
> Tim Handley
> Fire Effects Monitor
> Santa Monica Mountains National Recreation Area
> 401 W. Hillcrest Dr.
> Thousand Oaks, CA 91360
> 805-370-2347
> 
> 
>                                                                            
>              Bert Gunter                                                   
>              <gunter.berton at ge                                             
>              ne.com>                                                    To 
>                                        <Timothy_Handley at nps.gov>,          
>              08/24/2009 11:43          <r-help at r-project.org>              
>              AM                                                         cc 
>                                                                            
>                                                                    Subject 
>                                        RE: [R] lme, lmer, gls, and spatial 
>                                        autocorrelation                     
>                                                                            
>                                                                            
>                                                                            
>                                                                            
>                                                                            
>                                                                            
> 
> 
> 
> 
> Have you looked at the "Spatial" task view on CRAN? That would seem to me
> the logical first place to go.
> 
> Bert Gunter
> Genentech Nonclinical Biostatisics
> 
> 
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
> Behalf Of Timothy_Handley at nps.gov
> Sent: Monday, August 24, 2009 11:12 AM
> To: r-help at r-project.org
> Subject: [R] lme, lmer, gls, and spatial autocorrelation
> 
> 
> Hello folks,
> 
> I have some data where spatial autocorrelation seems to be a serious
> problem, and I'm unclear on how to deal with it in R. I've tried to do my
> homework - read through 'The R Book,' use the online help in R, search the
> internet, etc. - and I still have some unanswered questions. I'd greatly
> appreciate any help you could offer. The super-super short explanation is
> that I'd like to draw a straight line through my data, accounting for
> spatial autocorrelation and using Poisson errors (I have count data).
> There's a longer explanation at the end of this e-mail, I just didn't want
> to overdo it at the start.
> 
> There are three R functions that do at least some of what I would like, but
> I'm unclear on some of their specifics.
> 
> 1. lme - Maybe models spatial autocorrelation, but doesn't allow for
> Poisson errors. I get mixed messages from The R Book. On p. 647, there's an
> example that uses lme with temporal autocorrelation, so it seems that you
> can specify a correlation structure. On the other hand, on p.778, The R
> Book says, "the great advantage of the gls function is that the errors are
> allowed to be correlated". This suggests that only gls (not lme or lmer)
> allows specification of a corStruct class. Though it may also suggest that
> I have an incomplete understanding of these functions.
> 
> 2. lmer - Allows specification of a Poisson error structure. However, it
> seems that lmer does not yet handle correlated errors.
> 
> 3. gls - Surely works with spatial autocorrelation, but doesn't allow for
> Poisson errors. Does allow the spatial autocorrelation to be assessed
> independently for different groups (I have two groups, one at each of two
> different spatial scales).
> 
> Since gls is what The R Book uses in the example of spatial
> autocorrelation, this seems like the best option. I'd rather have Poisson
> errors, but Gaussian would be OK. However, I'm still somewhat confused by
> these three functions. In particular, I'm unclear on the difference between
> lme and gls. I'd feel more confident in my results if I had a better
> understanding of these choices. I'd greatly appreciate advice on the matter
> 
> 
> More detailed explanation of the data/problem is below:
> 
> The data:
> [1] A count of the number of plant species present on each of 96 plots that
> are 1m^2 in area.
> [2] A count of the number of plant species present on each of 24 plots that
> are 100m^2 in area.
> [3] X,Y coordinates for the centroid of all plots (both sizes).
> 
> Goal:
> 1. A best fit straight-line relating log10(area) to #species.
> 2. The slope of that line, and the standard error of that slope. (I want to
> compare the slope of this line with the slope of another line)
> 
> The problem:
> Spatial autocorrelation. Across our range of plot-separation-distances,
> Moran's I ranges from -.5 to +.25. Depending on the size of the
> distance-bins, about 1 out of 10 of these I values are statistically
> significant. Thus, there seems to be a significant degree of spatial
> autocorrelation. if I want 'good' values for my line parameters, I need to
> account for this somehow.
> 
> 
> Tim Handley
> Fire Effects Monitor
> Santa Monica Mountains National Recreation Area
> 401 W. Hillcrest Dr.
> Thousand Oaks, CA 91360
> 805-370-2347
> 
> ______________________________________________
> R-help at r-project.org 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.
> 
> ______________________________________________
> R-help at r-project.org 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.
-- 
http://mutualism.williams.edu




More information about the R-help mailing list