Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BaBA sensitivity analysis — fix interval × buffer distance

Question. Barrier Behaviour Analysis (BaBA) classifies animal–fence encounters into six behaviours (+ an unknown bucket). How stable are those classifications when the GPS fix interval is coarsened, and how does that interact with the buffer distance d? This is a sensitivity study of the method — not a claim that it is flawed.

Data. The pronghorn / muleDeer / fences objects bundled with the BaBA package (from Xu et al. 2021, J. Appl. Ecol.; CC0). Scope: 2 individuals per species, one year, native 2 h fixes, UTM 12N. (The full Dryad archive is gated; I use the package copy — see data/PROVENANCE.md.)

Method. Downsample 2 h → {4, 6, 12} h by elapsed-time target, running every phase offset per interval (like multiple seeds), swept against d ∈ {50, 110, 200, 300} m, for two BaBA configs kept strictly separate: C (b_time=12, one config across all intervals) and A (published defaults, only 2 h & 4 h are even permitted). 120 runs, 23 607 encounters. Config A at d=110/2 h reproduces the published baseline exactly.

What I found

1. BaBA can't run coarser than 4 h at its published settings. The rules interval ≤ b_time, b_time %% interval == 0, p_time %% interval == 0 mean that with defaults (b_time=4, p_time=36) and 2 h data, only 2 h and 4 h are admissible. Have 6 h or 8 h collars? You must redefine the behavioural thresholds before BaBA will run at all.

2. The downsampling phase moves results as much as the coarsening does. Which fixes you keep (not just how many) can swing a Bounce/Quick_Cross proportion by ~15 points at 12 h — so any single downsampled series can mislead. The band below collapses to a point at 2 h and fans out at 12 h:

class shift

3. Encounter detection degrades — but sublinearly. A 6× fix reduction (2 h→12 h) loses only 3.9× (pronghorn) / 2.8× (mule deer) of encounters at d=110, and less at larger d:

detection ratio

4. A pre-registered prediction — not supported. Before running the sweep I recorded a prediction that unknown would rise faster for mule deer than pronghorn under coarsening, if unknown reflects spurious apparent crossings. It didn't: unknown is flat-to-falling with interval and tracks buffer d, not interval. The prediction was on record before any results existed, and I report it here rather than dropping it.

A correction to my own earlier claim. I first reported "Trapped = 0"; that holds only at d ≤ 110 — Trapped emerges at larger buffers. I show the revision rather than quietly fixing it. Full detail + limitations in writeup.qmd.

Reproduce

renv::restore()          # exact package versions + BaBA commit, pinned in renv.lock
# then run in order:
source("R/02_data_inspection.R")   # inspect + QA/QC
source("R/03_baseline.R")          # reference run
source("R/05_sweep.R")             # the interval × d × phase-offset sweep
source("R/06_aggregate.R")         # tidy summaries -> outputs/*.csv
source("R/07_figures.R")           # the two figures

The full report is writeup.html (open directly) or writeup.qmd (re-render with Quarto; Quarto is a standalone CLI, not an R package, so it is not in renv.lock).

Layout

R/            02 inspect/QA · 03 baseline · 04 downsample · 05 sweep · 06 aggregate · 07 figures
outputs/      baseline_classification.csv · sweep_*.csv · figures/*.png   (raw .rds regenerable)
data/         PROVENANCE.md (source, license, scope)
analysis/     PREDICTIONS.md (pre-registered)
writeup.qmd   full report (question · data · method · results · limitations)
renv.lock     pinned environment

Limitations in brief: 2 individuals/species (no species-level claims); a bundled subset, not the full study; config C is BaBA at b_time=12, not as published; the data was pre-cleaned so QA/QC shows method, not discovery. See the writeup.


Built in R, developed with AI assistance (Claude Code). All analysis decisions, parameter choices, and interpretations are mine.

About

Sensitivity analysis of BaBA barrier-behavior classification to GPS fix interval and buffer distance

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages