<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
color:black;
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Vorformatiert Zchn";
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";
color:black;}
tt
{mso-style-priority:99;
font-family:"Courier New";}
span.E-MailFormatvorlage18
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.HTMLVorformatiertZchn
{mso-style-name:"HTML Vorformatiert Zchn";
mso-style-priority:99;
mso-style-link:"HTML Vorformatiert";
font-family:"Consolas",serif;
color:black;
mso-fareast-language:EN-US;}
span.E-MailFormatvorlage21
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body bgcolor=white lang=DE-CH link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal><span style='color:#1F497D'>Hi Andy,<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>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.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>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.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>Best regards<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>André Zehnder<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=DE style='color:windowtext;mso-fareast-language:DE-CH'>Von:</span></b><span lang=DE style='color:windowtext;mso-fareast-language:DE-CH'> Andy Lyons [mailto:lyons.andy@gmail.com] <br><b>Gesendet:</b> Dienstag, 19. Mai 2015 09:27<br><b>An:</b> André Zehnder<br><b>Cc:</b> tlocoh-info@lists.r-forge.r-project.org<br><b>Betreff:</b> Re: [tlocoh-info] auto.a() function suggests much too high a-values<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'>Hi André,<br><br>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. <br><br>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. <br><br>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 <tt><span style='font-size:10.0pt'>auto.a(ptp = 0.98, nnn = 2)</span></tt> 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 <span lang=EN-US>k = sqrt(numberOfPoints)</span> is likewise a a starting point and not meant to be a recommended value. <br><br>There is alternative function called <tt><span style='font-size:10.0pt'>lxy.amin.add()</span></tt> 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.<br><br>Hope this helps.<br><br>Andy<br><br><br><tt><span style='font-size:10.0pt'>if (!require(tlocoh.dev)) stop("Please install tlocoh.dev")</span></tt><span style='font-size:10.0pt;font-family:"Courier New"'><br><tt>## Loading required package: tlocoh.dev</tt><br><tt>if (packageVersion("tlocoh.dev") < "1.2.02") stop("Please update your tlocoh.dev package")</tt><br><br><tt>## Load suggested packages</tt><br><tt>pkgs <- c("rgdal", "raster", "shiny", "dismo")</tt><br><tt>not.installed <- pkgs[!sapply(pkgs, function(p) require(p, character.only=T))]</tt><br><br><tt>## Create a hullset with evenly spaced parameter values (in this case k=4:20,</tt><br><tt>## (could also be evenly spaced 'a' values, use something like a=seq(from=1000, to=15000, by=1000)</tt><br><br><tt>raccoon.lhs <- lxy.lhs(raccoon.lxy, s=0.05, k=4:20, iso.add=TRUE, status=FALSE)</tt><br><br><tt>## Download a background image for display</tt><br><tt>raccoon.gmap <- lhs.gmap(raccoon.lhs, gmap="hybrid")</tt><br><br><tt>## Graphically select one of the parameter values by examining the isopleths, EAR plot, and ISO area plot</tt><br><tt>raccoon.sel <- lhs.selection(raccoon.lhs)</tt><br><tt>raccoon.sel <- lhs.shiny.select(raccoon.lhs, selection=raccoon.sel, gmap=raccoon.gmap)</tt><br><br><tt>## Apply selection</tt><br><tt>raccoon.lhs <- lhs.select(racoon.lhs, selection=raccoon.sel)</tt><br></span><br><br><span style='font-size:12.0pt;mso-fareast-language:DE-CH'><o:p></o:p></span></p><div><p class=MsoNormal>On 5/18/2015 10:38 AM, André Zehnder wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span lang=EN-US>Hi all,</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US>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))).</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US>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.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US>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?</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US>PS: I use T-LoCoH version 1.34.00 with RStudio 0.98.1103.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US>Best regards,</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US>André Zehnder</span><o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman",serif;mso-fareast-language:DE-CH'><br><br><br><o:p></o:p></span></p><pre>_______________________________________________<o:p></o:p></pre><pre>Tlocoh-info mailing list<o:p></o:p></pre><pre><a href="mailto:Tlocoh-info@lists.r-forge.r-project.org">Tlocoh-info@lists.r-forge.r-project.org</a><o:p></o:p></pre><pre><a href="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</a><o:p></o:p></pre></blockquote><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman",serif;mso-fareast-language:DE-CH'><o:p> </o:p></span></p></div></body></html>