I think this is a geographic questions but if not please redirect my question to where it's more suitable.

I'm working in R. I have a large dataset (500,00 to 13 million records depending on which species are included) of points in space and time across Europe (and 40 years). These points represent where a bird species' weight was measured. I have classified these data into 1's and 0's depending on a weight cut off value, 1's are the heaviest birds. I want to see if the 1's are concentrated in certain areas in space (and potentially time if possible) compared to where they could be (the 0's and 1's). This is to try to find hotspots for putting on weight prior to migration. I've tried looking at clustering approaches but these all seem to assume the 1's could be anywhere in space whereas here, the 1 can only be where a 1 or 0 is. I also want to know where in space/time these clusters are.

Any ideas how to do this?

1 Answer 1


The "space-time" problem can be a difficult nut to crack and I wonder about the relevance of it in this regard. For example, I have a paper in review where we looked at field-burning fire occurrence, through time, in Punjab, India. To get at the clustering process we implemented a second-order reweighted stationary isotropic spatial-temporal intensity function (Comas et al., 2018; van Lieshout 2012) which was derived using the space-time inhomogeneous K-function (Gabriel 2014; Gabriel and Diggle 2009) with an adaptive kernel (Davies et al., 2018). The temporal component was accounted for via a pair correlation function (Guan et al., 2008; Evans 2015). This provided a stable estimate of the intensity process and indicated where clustering was occurring through time.

Applying a complex method, such as this, to your problem seems akin to attacking a mental institution with a banana. In other words, keep it simple and, unless time it is a key part of your inference, do not worry about the temporal dimension. Since your data is not marked (is collapsed into a binomial process) you are limited to global estimates of clustering, which limit application. It sounds like you are thinking about observation-level cluster membership as a means to thin data and reduce pseudo-replication (autocorrelation). Unfortunately, this is not possible with your data. The alternative is looking at the estimated intensity (density) process as a means of thinning the data.

Given the nature and size of your data, I cant imagine that you will not see some clustering effect. If your intent is to simply "thin" your data to reduce an autocorrelation effect, and the data will be pooled as the dependent variable in something like an SDM, then keep to that goal. For instance, there is a function spatialEco::pp.subsample which generates random subsample of the data based on point process intensity function. This can be used to mitigate pseudo-replication by thinning the data following it's spatial process. You could apply something like this at each, highly clustered, time-step. However, tour end result may still exhibit clustering. If time is not part of your inference you could simply thin the final combined data using it intensity process.

  • Hi, Thanks very much for your response. Sorry I wasn't that clear, I'm not really interested in thinning the data to reduce autocorrelation here. I'm interested in where the heaviest birds are as I'm looking at fat departure loads in migrant birds. So I'm trying to find geographic areas which have a higher proportion of heavy birds (the 1's) than would be expected. Commented Jan 19 at 9:46
  • In that case, I would keep the original values, so the data is a marked process, and then use a local autocorrelation statistic such as LISA or Geits-Ord. Both have a bivariate option so data can be compared across two time periods. The LISA will show the mixture of your spatial structure ie, low values mixed with high, high-high, low-low and high-low. Commented Jan 19 at 19:54
  • Thanks! i'll give it a go. Commented Jan 23 at 13:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.