-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Incorporating known locations #46
Comments
You could substitute the likelihood for known locations days in the final posterior pdf. Probably very easy fix |
Although the track split would be better for uncertainty. |
If following the first approach ('substitute the likelihood for known location days in the final posterior pdf'), would the best way to do this be to incorporate known location days in For the second approach, could you elaborate on the benefit to uncertainty of modeling the track in segments and then conjoining them? I wonder about parameter optimization for this approach, given that the track as a whole may contain both behavioral states but a given segment may only contain one, meaning that some segments would ideally be run as a two-state and others as one-state (and require knowing which to use). |
Yeah this is worth a try and will probably work fine although may not be explicitly kosher from a modeling perspective.
In this case, you're explicitly including the known locations throughout the modeling and track construction process (by splitting into segments/trajectories). So there would be no ad hoc "substitution" of knowns in the final posterior. Re: parameters -> what if you performed a full model run using the whole dataset, adding known locations in |
The more I thought about it the less I like the ad-hoc substitution (think before you type, ben!). It will certainly work in giving you the known locations at the correct times, but it would probably create nonsense in between them. I could forsee jumps in space if a trajectory veers away from the known point a bit only to jump back to the correct location. The track splitting would be the best for dealing with all aspects of the outputs. Other methods have dealt with this successfully; BSAM for Argos locations ( not a grid based method), and this paper Strøm, J.F., Thorstad, E.B., Chafe, G., Sørbye, S.H., Righton, D., Rikardsen, A.H., and Carr, J. 2017. Ocean migration of pop-up satellite archival tagged Atlantic salmon from the Miramichi River in Canada. ICES J Mar Sci 74(5): 1356–1370. doi:10.1093/icesjms/fsw220. which was an hmm model version that used known positions. no code available though. |
Agreed. The Strom paper is an excellent suggestion. @marosteg I'd say give this trajectory idea a shot and we'll go from there. I know J Carr well enough to ask him about their approach in this Atl salmon paper. Would be good to have some prelim results from our trajectory attempts before i ask him though. And if you want to test this on a different track, we do have known locations for a lot of blue sharks, including the individual used as the example data in |
I just looked through the Strøm paper but it is unclear how the acoustic detections were incorporated as known locations. It doesn't discern whether they were supplied as input likelihoods for model construction, ad-hoc substitutions in the posterior, or start/end points for modeled segments that were then conjoined. The only comment to this effect is, " [Acoustic tracking at entry and exit of Gulf of St. Lawrence] was done to increase the number of known positions independent of the PSAT data, and decrease the uncertainty of the geolocation model". |
Without code, it's hard to say exactly how they did it. I has always hoped they would put out their own R package. I met Strom and he indicated they would, but that was in 2015.. My guess is they did it via likelihood. They have a pretty small grid (10km), and the bathymetry in that area provides nice constraints. Other than that, it's essentially an R rewrite of GPE3 (which was a rewrite of Pedersen 2011). other notes; They did use MTI raw geolocations for lat/long likelihood. Most of the lats probably got removed judging by their methods and my experience with them.. |
The current logic in
HMMoce
incorporates known locations by "fixing" the grid cell containing the known location to 1 and setting all other cells for a given time step to 0. This effectively incorporates the known location in the likelihood calculation. However, when the filter and smoother processes are performed, the resulting posteriors will almost certainly contain the known grid cell but may not set that cell as known in the final track.make.L()
to build likelihoods. Known locations are incorporated as fixed grid cells with likelihood = 1hmm.filter()
operates on the overallL
likelihood, the known grid cell for a given time step will inform the posterior distributions but not necessarily fix them to match the known location (same forhmm.smoother()
)calc.track()
currently uses the max of each step in the smoother output as the assigned track position for that stepThus, the issue is that
calc.track()
does not guarantee a given step of an output track matches the known location at that step.Potential (pseudo-code) solution:
Potential issues:
calc.track()
?The text was updated successfully, but these errors were encountered: