[tlocoh-info] auto.a() function suggests much too high a-values

Wayne Getz wgetz at berkeley.edu
Wed May 20 18:27:49 CEST 2015


Dear Andy and Andre:

I always return to the concept of the tradeoff between type I areas (excluding areas that do belong) and type II errors (including areas that don’t belong).  Andy is right that there are not going to be “one size fits all rules”, but always approach the choice of parameters in terms of increasingly accepting type II at the expense of type I errors, as you increase the value of the parameter in question (a, k, etc.).  Thus you cannot reduce both kinds of errors simultaneously, but only trade of one against the other. So bring into your thinking what kind of errors are more tolerable for you in terms of the question you are addressing.

Best

Wayne


> On May 20, 2015, at 8:28 AM, Andy Lyons <lyons.andy at gmail.com> wrote:
> 
> Thanks André. Another way to approach it would be to begin by looking for a lower bound of 'a'. For example the following would compute the smallest 'a' value that results in 50% of the points having only 3 nearest neighbors.
> 
> toni.lxy <- lxy.amin.add(toni.lxy, s=0.003, ptp = 0.5, nnn = 3)
> 
> That would almost certainly find an 'a' value that results in many slivers, and a very fragmented 50% isopleth 'core' area. But you could then start cranking it up. 
> 
> If there are no landscape features or behavioral patterns that would allow you to discern an "invalid" cross-over (i.e., a part of the landscape that is included in say the 95% isopleth, but the individual was never observed there), then another strategy could be to focus on the 'core' area (i.e., a 25% or 50% isopleth). If your knowledge of the system and species suggests that there is no reason to think the 'core' area should be highly fragmented, then select the smallest value of 'a' that fills in the spaces in homogeneous habitat, and stop there. The edge-to-area ratio plot of the lower isopleths may help here.
> 
> Also note there's a 'kmin' argument in lxy.lhs that can be used to 'force' all points to be part of a hull. So if for example you find a value of a=10000 does a 'good' job in delineating the 50% isopleth, but there are some important outlying points that are too far apart to have at least two neighbors within a cumulative distance of 10,000, you could pass kmin=2 (or 3, or 4) so that even those outlying points would be in hulls (even if only triangles) and thus included in the 100% isopleth. 
> 
> Good luck and yes please let us know if you find a more objective criteria for choice of the a-value. I suspect there will never be a one-size-fits-all rule that can be applied to all datasets, but there are probably  rules that are more specified than the generic principles laid out in our 2013 paper that work well with families of data. Some rules can be translated into quantifiable metrics, others may have to remain as principles. I like to use quotes when referring to terms such as 'core', 'invalid', or 'best' to remind ourselves that these are artificial constructs that we apply in reference to a specific question, system, and dataset. The blessing and bane of methods like T-LoCoH is that it forces one to think about choices that go into modeling space use. 
> 
> Best,
> Andy
> 
> 
> 
> On 5/20/2015 2:17 AM, André Zehnder wrote:
>> Hi Andy,
>>  
>> Thank you for your quick answer. That would mean that the lxy.nn.add() function works correctly, but does not perform well with my kind of data. I tried out the lxy.amin.add() function you mentioned. I did not find an example of it but I think this is the correct way of calling it: lxy.amin.add(“lxy-data”, s=svalue, nnn=kvalue, ptp=0.90). Although the a-value produced by this function is somewhat lower than the one of lxy.nn.add(), it is still much higher than what I would choose.
>>  
>> Unfortunately, the MSHC-method to choose the a-/k-value is not possible since there are no large features that are known to be avoided by the animals in the study area. I will try to look for another criterion that supports a more objective choice of the a-value. If I find anything, I will let you know.
>>  
>> Best regards
>> André Zehnder
>>  
>> Von: Andy Lyons [mailto:lyons.andy at gmail.com <mailto:lyons.andy at gmail.com>] 
>> Gesendet: Dienstag, 19. Mai 2015 09:27
>> An: André Zehnder
>> Cc: tlocoh-info at lists.r-forge.r-project.org <mailto:tlocoh-info at lists.r-forge.r-project.org>
>> Betreff: Re: [tlocoh-info] auto.a() function suggests much too high a-values
>>  
>> Hi André,
>> 
>> Good questions. Your diagnosis shows that you understand what's going on. You're quite right that selecting a value for 'a' is not intuitive, in part because it represents a cumulative distance of each point to several of its nearest neighbors, and in the case where time is incorporated in the selection of nearest neighbors (s>0), the distance is not a physical distance. 
>> 
>> The auto.a() function provides a starting point that has proven useful for many datasets, but it really is just that - a starting point to narrow down the range of 'a' values that provide a reasonable balance between over-estimation and under-estimation. The ultimate selection of 'a' should be based on your (admittedly subjective) assessment of minimizing spurious holes in the utilization distribution, and spurious cross-overs. Part of the subjectivity in selecting a parameter value (for any home range estimation method really) involves reflecting upon whether your research question requires better fidelity to the core area or overall 'home range'.  In other words, there is no recommended 'a' value. There are only recommended principles for selecting 'a' or 'k' (see appendix I of Lyons et al 2013), along with some tools (plots) to help you select a value. All of which is less convenient to be sure than a one-click solution, but hopefully keeps you close to your data and pushes you to think about what you want from your space use model. 
>> 
>> As to why the upper and lower ranges returned by the 'auto.a()' function did a poor job for your dataset is hard to say, but it could be related to the geometry of the points or the sampling frequency.  Remember that auto.a(ptp = 0.98, nnn = 2) returns the value of 'a' such that 98% of points have at least two nearest neighbors. If the distribution of points is wide ranging, this could result in a large "lower bound" that blows up the core areas. The suggestion to let k = sqrt(numberOfPoints) is likewise a a starting point and not meant to be a recommended value. 
>> 
>> There is alternative function called lxy.amin.add() to help identify upper and lower bounds for 'a'. But it is more of a convenience function and it operates on similar principles as auto.a(). There is also a relatively new function in tlocoh.dev that opens a GUI (Shinyapp) which is designed to help select parameter values. It isn't documented yet but see some sample code below.
>> 
>> Hope this helps.
>> 
>> Andy
>> 
>> 
>> if (!require(tlocoh.dev)) stop("Please install tlocoh.dev")
>> ## Loading required package: tlocoh.dev
>> if (packageVersion("tlocoh.dev") < "1.2.02") stop("Please update your tlocoh.dev package")
>> 
>> ## Load suggested packages
>> pkgs <- c("rgdal", "raster", "shiny", "dismo")
>> not.installed <- pkgs[!sapply(pkgs, function(p) require(p, character.only=T))]
>> 
>> ## Create a hullset with evenly spaced parameter values (in this case k=4:20,
>> ## (could also be evenly spaced 'a' values, use something like a=seq(from=1000, to=15000, by=1000)
>> 
>> raccoon.lhs <- lxy.lhs(raccoon.lxy, s=0.05, k=4:20, iso.add=TRUE, status=FALSE)
>> 
>> ## Download a background image for display
>> raccoon.gmap <- lhs.gmap(raccoon.lhs, gmap="hybrid")
>> 
>> ## Graphically select one of the parameter values by examining the isopleths, EAR plot, and ISO area plot
>> raccoon.sel <- lhs.selection(raccoon.lhs)
>> raccoon.sel <- lhs.shiny.select(raccoon.lhs, selection=raccoon.sel, gmap=raccoon.gmap)
>> 
>> ## Apply selection
>> raccoon.lhs <- lhs.select(racoon.lhs, selection=raccoon.sel)
>> 
>> 
>> 
>> On 5/18/2015 10:38 AM, André Zehnder wrote:
>> Hi all,
>>  
>> I am performing a home range analysis with GPS data of some leopards and lions. The input data has a highly variable point density and result in quite large areas (roughly a magnitude of 500 to 1’000 km2 for the 95% isopleth). In agreement with the tutorial, I begin with selecting the value for the temporal parameter s and then select suitable k values. As an orientation for that I use the rule of thumb ( k = sqrt(numberOfPoints)) and the plots. When a k-value has been chosen, the tutorial recommends to use the auto.a() function (lxy.nn.add(toni.lxy, s=0.003, a=auto.a(nnn=15, ptp=0.98))).
>>  
>> However, the recommended a-value is massively too high and results in a oversmoothed home range that lacks any details. The higher the s-value, the more severe is this issue. While the result of the suggested a-value still shows a few weak spatial details for s=0, almost circular home ranges result for all isopleths with s>0. I checked whether this issue occurs only for one dataset, but it is the same for all 5 datasets I have checked. I attached two images that present the result when using the recommended a-value (auto_) and one that presents a manually selected a-value (manually_). For example, for s=0.005, I would rather take an a-value between 150’000 and 190’000 than the recommended value of 1’150’000. The auto.a() function should thereby include at least k points for 90% of all hulls.
>>  
>> Therefore the question: Has anyone experienced the same issue or is it even a known technical problem with the package? My datasets contain 5’000 to 30’000 fixes, have some gaps and includes sometimes different sampling intervals. May the auto.a() function have severe problems due to that? The choice of an a-value is rather subjective and not really intuitive, especially when s>0. But when the auto.a() function can’t be used to get an approximate reference, what other measures are available to be able to justify your choice of the a-value?
>>  
>> PS: I use T-LoCoH version 1.34.00 with RStudio 0.98.1103.
>>  
>> Best regards,
>> André Zehnder
>>  
>>  
>> 
>> 
>> 
>> _______________________________________________
>> Tlocoh-info mailing list
>> Tlocoh-info at lists.r-forge.r-project.org <mailto:Tlocoh-info at lists.r-forge.r-project.org>
>> http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/tlocoh-info <http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/tlocoh-info>
>>  
>> 
>> 
>> _______________________________________________
>> Tlocoh-info mailing list
>> Tlocoh-info at lists.r-forge.r-project.org <mailto:Tlocoh-info at lists.r-forge.r-project.org>
>> http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/tlocoh-info <http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/tlocoh-info>
> 
> _______________________________________________
> Tlocoh-info mailing list
> Tlocoh-info at lists.r-forge.r-project.org <mailto:Tlocoh-info at lists.r-forge.r-project.org>
> http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/tlocoh-info <http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/tlocoh-info>

___________________________________________________________
___________________________________________________________

Professor Wayne M. Getz
A. Starker Leopold Professor of Wildlife Ecology
Department Environmental Science Policy & Management
130 Mulford Hall
University of California at Berkeley
CA 94720-3112, USA

Campus Visitors: My office is in 5052 VLSB

Fax:    ( (1-510) 666-2352
Office:    (1-510) 642-8745
Lab:  (1-510) 643-1227
email:  wgetz at berkeley.edu <mailto:wgetz at berkeley.edu>lab:  http://www.CNR.Berkeley.EDU/~getz/ <http://www.cnr.berkeley.edu/~getz/>
T-LoCoH:  http://tlocoh.r-forge.r-project.org/ <http://tlocoh.r-forge.r-project.org/>
NOVA:  http://www.novamodeler.com/ <http://www.novamodeler.com/>
___________________________________________________________
___________________________________________________________






-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/tlocoh-info/attachments/20150520/7652add4/attachment-0001.html>


More information about the Tlocoh-info mailing list