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

Ben Bolker bolker at ufl.edu
Tue Aug 25 04:49:14 CEST 2009


My two cents: this is a hard problem to do, period (not just in R).
I would second the recommendation of the Dormann et al paper listed
below; also see Zuur, Alain F., Elena N. Ieno, Neil J. Walker, Anatoly A.
Saveliev, and Graham M. Smith. Mixed Effects Models and Extensions in
Ecology with R. 1st ed. Springer, 2009.
Dormann et al mention  WinBUGS for Bayesian approaches; this can also be
done in principle with the geoRglm package, although I have to admit that I
haven't actually tried it & it looks a bit challenging. Maybe also doable
with
AD Model Builder.

How comfortable are you with the Poisson assumption for this data set anyway
... ?
Maybe just use gls with appropriate scaling of the variance?



Manuel Morales wrote:
> 
> 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
> 
> ______________________________________________
> 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.
> 
> 

-- 
View this message in context: http://www.nabble.com/lme%2C-lmer%2C-gls%2C-and-spatial-autocorrelation-tp25120963p25126642.html
Sent from the R help mailing list archive at Nabble.com.




More information about the R-help mailing list