trail.cam

Van tijdstempels naar activiteitspatronen: een wildcamera-werkstroom

Een rode vos steekt een besneeuwde open plek over in het diepblauwe licht vlak voor zonsopgang

Elke foto die de camera's namen, draagt al het waardevolste getal uit de hele dataset in zich, en dat is niet de soort. Het is het tijdstip van de dag. Een wildcamera gaat af wanneer een dier aanwezig is, dus de verzamelde stapel tijdstempels vormt een steekproef van wanneer dat dier wakker was en in beweging — meer activeringen wanneer het actief is, minder of geen wanneer het rust. Lees genoeg van die tijdstippen af en de vorm van de dag van een soort valt te reconstrueren: wanneer ze in beweging komt, wanneer ze piekt, wanneer ze stilvalt. Dat is een activiteitspatroon, en een wildcamera is een van de weinige goedkope, niet-invasieve manieren om er een te verkrijgen.

Hier is de hele pijplijn in één adem, zodat duidelijk is waar dit heen gaat. Er komt een schone datum-tijd van elk beeld (bijna altijd uit de EXIF-metadata, soms door de tijdstempel te lezen die in de foto zelf is ingebrand); vervolgens wordt bepaald welke records als onafhankelijke gebeurtenissen tellen; die kloktijden gaan naar een circulaire schaal en, als de studie zich over seizoenen uitstrekt of ver van de evenaar ligt, naar zonnetijd; een circulaire kernel density wordt op de tijdstippen aangepast om de activiteitscurve te schatten; en bij een vergelijking van twee soorten wordt de overlapcoëfficiënt (Δ) tussen hun curves berekend. In R woont het werk vrijwel geheel in drie pakketten — `overlap`, `activity` en `camtrapR` — en het geheel rust op één ongeglamoureuze voorwaarde: ongeveer 100 detecties van de soort voordat de curve te vertrouwen is.

Geen van die stappen is moeilijk. Verscheidene ervan zijn eenvoudig stilletjes, onzichtbaar verkeerd te doen — een klok die is verlopen, een “onafhankelijkheids”-filter dat juist de te meten piek wegsnijdt, een zonsopkomst die drie uur verschoof tussen juni en december terwijl de x-as bleef staan. Dit stuk loopt de pijplijn van begin tot eind door en, minstens zo belangrijk, wijst aan waar een betrouwbare activiteitsanalyse afwijkt van een waardeloze. Het verschil zit doorgaans niet in de statistiek. Het zit in de datahygiëne stroomopwaarts ervan.

Eerst: haal schone datum-tijden uit elke foto

Achteraf valt niet meer te reconstrueren wanneer een dier is gefotografeerd — er is geen tweede bron voor, zoals die er wel is voor bijvoorbeeld de coördinaten van een camera. Zoals de GBIF-gids met beste praktijken het botweg stelt: de datum en tijd “is het belangrijkste aspect van de metadata... en kan later niet worden afgeleid”. Deze stap verdient dus meer zorg dan hij doorgaans krijgt.

De schone route is de ingebedde metadata. Wanneer een camera een JPEG wegschrijft, stempelt hij het opnametijdstip in het EXIF-blok, in het veld `DateTimeOriginal`. Gereedschappen lezen dat veld rechtstreeks: de functie `recordTable()` van `camtrapR` leunt op ExifTool om `DateTimeOriginal` van elk beeld te trekken en een nette recordtabel samen te stellen van station, soort en tijd. Dragen de beelden goede EXIF, dan is dit een opgelost probleem — de functie op de mappen richten volstaat en levert machineleesbare datum-tijden op de seconde nauwkeurig.

Twee gewoonten stroomopwaarts maken dit alles veiliger, en beide gaan over de camera, niet over de software. Ten eerste: zet de klok op UTC of lokale wintertijd en schakel de automatische overgang naar zomertijd uit. Zomertijd is een stille saboteur van activiteitsgegevens: staat de klok van een camera ingesteld in de zomer terwijl hij niets van de zomertijd weet, dan valt elke winterfoto een uur naast de ware kloktijd, en andersom — een systematische fout van één uur, uitgesmeerd over de helft van de records. Het advies van `camtrapR` is de pragmatische versie van dezelfde regel: gebruikt het studiegebied zomertijd maar leggen de camera's die niet vast, laat de analysetijdzone dan op UTC staan, want UTC kent geen zomertijdsprong om over te struikelen. Ten tweede: bij het zelf benoemen of ordenen van bestanden, begin bestandsnamen met de datum — `YYYYMMDD_HHMMSS` — zodat alfabetisch sorteren ze ook chronologisch sorteert, en schrijf tijden bij het exporteren in ISO 8601 (`YYYY-MM-DDTHH:MM:SS`).

Ontdek je achteraf dat de klok van een camera verkeerd stond — een hele uitrol met een bekende afwijking — dan is dat te herstellen. `camtrapR` bevat `timeShiftImages()` om de tijdstempels in de beeldmetadata in bulk te corrigeren, en een aparte functie `fixDateTimeOriginal()` voor een specifieke faalwijze: bepaalde Reconyx HyperFire-camera's die de datum en tijd niet in de standaardtag opslaan. Maak eerst een back-up van de beelden. De kern is dat klokfouten die vroeg worden opgemerkt een ergernis zijn; klokfouten die nooit worden opgemerkt, worden een fictief activiteitspatroon.

Definieer je categorieën — maar weet dat ze een grove eerste indeling zijn

Vóór enige curve-aanpassing helpt het om de woordenschat te hebben die het vakgebied vanaf het begin heeft gebruikt. Zodra onderzoekers beseften dat cameratijdstempels activiteit konden beschrijven, deden ze eerst het volgende: soorten indelen in vier categorieën:

Dit zijn niet zomaar indrukken; je kunt ze operationeel definiëren. In een tweejarig onderzoek naar acht zoogdieren in Noord-Japan verdeelden Ikeda en collega's elke foto in dag, nacht of schemering, vergeleken de fotografische frequentie over de drie perioden met een eenweg-ANOVA, en wezen elke soort een categorie toe: dagactief als de foto's zich in de dag clusterden, nachtactief als ze 's nachts vielen, schemeractief bij schemering, en cathemeraal wanneer er “geen verschil” tussen de drie perioden was. Dat leverde nette oordelen op — Euraziatische rode eekhoorns dagactief, wasbeerhonden en wasberen nachtactief, sika's en berghazen schemeractief, Japanse marters en bruine beren cathemeraal.

Twee kanttekeningen horen bij de categorieën. De eerste is dat ze werkelijk grof zijn, en dat de interessantste bevindingen in de kieren ertussen leven. Diezelfde sika's “verschoven hun pieken van schemering in de lente–herfst naar overdag in de winter, mogelijk vanwege thermische beperkingen”, en marters waren het grootste deel van het jaar cathemeraal maar nachtactief in de herfst. Eén categorie-etiket had beide uitgewist. De tweede kanttekening is schaal. Wereldwijd is de vierdeling scheef: in een dataset van duizenden zoogdiersoorten vonden Bennie en collega's dat “de meerderheid van de zoogdiersoorten nachtactief is (69%...; 20% dagactief, 8,5% cathemeraal, en 2,5% schemeractief)”, en dat de strategie diep geconserveerd is over de zoogdierboom (Pagels λ = 0,947). Je standaardaanname voor een niet-bestudeerd zoogdier zou dus moeten zijn “waarschijnlijk nachtactief”, en een zelfverzekerde dagactieve classificatie verdient een tweede blik — zeker gezien de plaatsingsvalkuilen waar we later op komen. Categorieën zijn een nuttige kop. De activiteitscurve is het verhaal.

Categorieën zijn een nuttige kop. De activiteitscurve is het verhaal.

Temporele onafhankelijkheid: de meest ingrijpende — en meest omstreden — keuze die je maakt

Een wasbeer zoekt 's nachts naar voedsel aan de voet van een boom, in koud, bijna monochroom licht

Hier lopen goede bedoelingen activiteitsanalyses stuk. Camera's nemen niet één foto per bezoek. Eén dier dat voor de lens blijft hangen, of een camera die is ingesteld om reeksen van drie of tien frames per activering te maken, kan tientallen tijdstempels uit één moment van activiteit opleveren. Blijven die bijna-duplicaat-tijdstippen erin staan, dan stapelen ze zich op en vertekenen ze de curve richting “de tijden waarop de soort toevallig voor je camera's optrad”, in de treffende verwoording van `camtrapR` over een argusfazant die de schijnwerper adoreerde.

De standaardoplossing is een filter voor tijd-tot-onafhankelijkheid (in `camtrapR` het argument `minDeltaTime`): laat alle records van dezelfde soort bij hetzelfde station die binnen een bepaald venster vallen — 30 minuten en 60 minuten zijn de gangbare keuzes — samenvallen tot één enkele gebeurtenis. Het is eenvoudig toe te passen. `recordTable()` van `camtrapR` heeft standaard `minDeltaTime = 0` (alles behouden) en laat je bijvoorbeeld 60 instellen om de gegevens uit te dunnen; in de voorbeelduitvoer van het pakket worden 68 beelden 56 records na verwijdering van dubbele tijdstippen, en vervolgens 40 zodra een filter van één uur wordt toegepast. Cruciaal is dat `minDeltaTime` “alle resultaten van de activiteitsplot beïnvloedt, want het bepaalt de temporele onafhankelijkheid tussen records” — verander het venster en je verandert de curve.

En dat is nu precies het probleem, want de conventie is bij de wortel omstreden. Peral en collega's bekeken 134 open-access wildcamera-activiteitsstudies en vonden dat “bijna 70% (90 van de 134...) een filter voor tijd-tot-onafhankelijkheid toepast”, doorgaans 30 minuten, soms 60 of zelfs 24 uur. Hun bezwaar ertegen is conceptueel: deze filters zijn geleend van abundantieschatting, waar meerdere foto's van één individu de tellingen opblazen, maar activiteit is geen reeks discrete gebeurtenissen — het is een continue toestand. Zoals zij het formuleren, laat het filter de waarnemer “in feite beslissen dat het dier in deze periode inactief is, waarmee betekenisvolle informatie over dieractiviteit wordt weggegooid”. Erger nog, de schade is ongelijk. Met een Serengeti-dataset van 164.509 beelden lieten ze zien dat talrijke, sociale herbivoren “74–93% van de activiteitsgegevens verloren toen de tijd-tot-onafhankelijkheid opliep van 1 naar 60 minuten”, terwijl zeldzame carnivoren slechts 21–23% verloren. Het filteren kromp niet alleen de steekproeven; het vervormde de curves — de middagpiek van de gazelle daalde met wel 44% — en omdat het herbivoren en carnivoren asymmetrisch raakte, vertekende het juist de roofdier–prooi-overlapvergelijkingen die mensen uitvoeren. Hun conclusie is ondubbelzinnig: het gebruik van filters voor tijd-tot-onafhankelijkheid in activiteitsschatting “is niet valide en zou niet gebruikt moeten worden”.

Wat moet je dan werkelijk doen? Lees Peral niet als “behoud elk ruw frame”. Lees het precies. Burst-frames — de tien opnamen die een camera bij één activering maakt — zijn helemaal geen steekproef van gedrag; ze zijn een door de gebruiker gedefinieerde instelling, en Peral zegt uitdrukkelijk dat die uit activiteitsanalyses moeten worden geweerd. De onenigheid is smaller dan ze op het eerste gezicht lijkt: vrijwel iedereen is het erover eens dat je de kunstmatige ophoping van bursts en van één rondhangend dier moet verwijderen. Het levende meningsverschil is of je daar dan een vast klokvenster (30 of 60 minuten) bovenop moet leggen. De nieuwere, verdedigbare positie is om alleen de duidelijke niet-onafhankelijkheid te verwijderen en de records verder te behouden, of — als je toch filtert — te rapporteren wat het filteren met je schattingen doet in plaats van 30 minuten te kiezen omdat iedereen dat deed. Wat je ook kiest, benoem het. Een activiteitsresultaat is niet te interpreteren zonder de onafhankelijkheidsregel, en het feit dat gepubliceerde studies “variabele en willekeurige” vensters gebruikten, betekent dat hun curves vaak niet zinvol met elkaar te vergelijken zijn. Wees de studie die er expliciet over is.

Een activiteitsresultaat is niet te interpreteren zonder de onafhankelijkheidsregel. Wees de studie die er expliciet over is.

Pas de curve aan: circulaire kernel density en de von Mises-kernel

Een groep axishertjes graast op een open grasveld in het zachte licht van de vroege ochtend

Nu de statistiek, en dat is het makkelijke deel. Het tijdstip van de dag is circulair — 23.59 grenst aan 00.00, ligt er niet elf uur vandaan — dus je kunt er geen gewone dichtheidscurve op aanpassen. Je past een circulaire aan. De standaardaanpak, geïntroduceerd voor cameragegevens door Ridout en Linkie en nu de standaard van het vakgebied, past een kernel density toe op de waargenomen tijdstippen met een von Mises-kernel (het circulaire analogon van de gaussische) in plaats van de gebruikelijke rechtelijnkernel. Het resultaat is een gladde kansdichtheid over de 24-uurscyclus: hoog waar het dier actief is, laag waar het dat niet is.

Een paar mechanismen doen ertoe. Al deze gereedschappen werken in radialen, niet in uren of fracties van een dag, dus de eerste regel van vrijwel elk script zet om: `timeRad <- time 2 pi`. De gladheid wordt geregeld door een bandbreedte, in het pakket `overlap` blootgelegd als het argument `adjust` — verhoog het boven de standaard van 1 voor een vlakkere curve, verlaag het voor een spitsere — en de keuze beïnvloedt de stroomafwaartse overlapschattingen, dus ze is niet puur cosmetisch. In het pakket `activity` wordt hetzelfde werk gedaan door `fitact()`, dat de circulaire kernel aanpast en, omdat er meer records ontstaan wanneer het dier actiever is, een algeheel activiteitsniveau afleidt — het deel van de dag dat de populatie actief doorbrengt — uit het oppervlak onder de verdeling.

Twee R-pakketten domineren, en ze zijn complementair. Gebruik `overlap` (functies `densityPlot()`, `overlapPlot()`, `overlapEst()`) wanneer je vraag gaat over het vergelijken van de curves van twee soorten. Gebruik `activity` (`fitact()`, `solartime()`, `compareCkern()`) wanneer je een gekwantificeerde schatting van het activiteits-niveau met gebootstrapte betrouwbaarheidsintervallen wilt, of rijkere gereedschappen om verdelingen statistisch te vergelijken. En `camtrapR` koppelt ze aan je beelden: `activityDensity()` roept `overlap::densityPlot()` aan, `activityOverlap()` roept `overlap::overlapPlot()` en `overlapEst()` aan, en `activityRadial()` en `activityHistogram()` geven je de wijzerplaat- en uurbalkweergaven, alle rechtstreeks uit de recordtabel gelezen. Om resultaten te visualiseren zijn de radiale plot en de over elkaar gelegde dichtheidscurve de twee werkpaarden; de dichtheidsplot is degene om te publiceren, want die toont de werkelijk geschatte vorm in plaats van tot hele uren te aggregeren.

Het tijdstip van de dag is circulair — 23.59 grenst aan 00.00, ligt er niet elf uur vandaan — dus je kunt er geen gewone dichtheidscurve op aanpassen.

Soorten vergelijken: de overlapcoëfficiënt (Δ)

De verreweg meest voorkomende reden om deze analyse te doen, is de vraag of twee soorten de dag delen — roofdier en prooi, of twee concurrenten. De standaardsamenvatting is de overlapcoëfficiënt, Δ, het oppervlak dat onder beide dichtheidscurves ligt: hij loopt van 0 (helemaal geen overlap) tot 1 (identieke activiteitspatronen). Zie het als het deel van de activiteit dat de twee soorten gemeen hebben.

Welke schatter je gebruikt, hangt af van je kleinste steekproefgrootte, en daar struikelen mensen over. Het pakket `overlap` biedt er drie — Dhat1, Dhat4 en Dhat5 — en het advies is concreet: gebruik Dhat1 voor kleine steekproeven en Dhat4 voor grotere. Waar precies de drempel valt, wordt door dezelfde auteurs op verschillende plaatsen iets anders geformuleerd, wat het weten waard is: de pakketdocumentatie zegt “Dhat4 is het best wanneer de kleinste steekproef ten minste 50 waarnemingen heeft”, terwijl de pakketvignet de overgang hoger legt en Dhat1 aanbeveelt wanneer de kleinere steekproef onder de 50 zit en Dhat4 wanneer die “groter dan 75” is, met een grijs gebied ertussen. De praktische lezing: ruim boven ~75 in je kleinere steekproef, Dhat4; duidelijk klein, Dhat1; ertussenin, verkies Dhat1 en overinterpreteer niet. Eén regel staat in elke bron vast — gebruik Dhat5 niet, want “zelfs kleine veranderingen in de gegevens kunnen leiden tot grote, discontinue veranderingen in Dhat5, en die kan waarden > 1 aannemen”. (Ter attentie voor `camtrapR`-gebruikers: `activityOverlap()` retourneert standaard Dhat1, dus zijn je steekproeven groot, geef dan `overlapEstimator = "Dhat4"` mee in plaats van de standaard te accepteren.)

Betrouwbaarheidsintervallen komen van een bootstrap, en een gladde variant verdient de voorkeur — pas een dichtheid aan en trek er vervolgens gesimuleerde waarnemingen uit — want gewone hersteekproeven kunnen nooit een tijdstip buiten je waargenomen bereik voortbrengen, wat onjuist is voor een continu activiteitspatroon. Gebruik genoeg hersteekproeven: voorbeelden tonen vaak 1.000, maar de vignet is expliciet dat “voor een echte analyse 10.000 bootstrap-steekproeven beter zouden zijn”, en het pakket waarschuwt dat “je voor stabiele schattingen ten minste 999 bootstrap-schattingen nodig hebt, bij voorkeur 10.000”.

Uitgewerkte getallen maken dit concreet. In het canonieke Kerinci-voorbeeld gaven tijgers en makaken in één zone — beide met meer dan 75 waarnemingen — een Dhat4-overlap van 0,42, een matige, gedeeltelijke overlap. In een Noord-Ierse roofdier–prooi-studie overlapten vossen en hazen jaarlijks 73% (BI 68–77%), vossen en konijnen 80%, vossen en bosmuizen 81% — de dag van het roofdier die de dag van zijn prooi volgt — terwijl boommarters en dagactieve eekhoorns het tegenovergestelde toonden, een asynchronie die past bij temporele vermijding. Onder sympatrische grote carnivoren op het Qinghai-Tibetaanse plateau overlapten sneeuwluipaarden en lynxen met Δ = 0,88 (BI 0,80–0,95), sneeuwluipaarden en wolven 0,86, wolven en lynxen 0,83 — alle hoog, alle overwegend nachtactief, met een overlap die richting matig zakte in het warme seizoen. Een gangbare afspraak om over deze getallen te praten: onder 0,5 is lage overlap, 0,5–0,8 matig, boven 0,8 hoog. Het is een nuttige vuistregel, geen wet.

Een luipaard loopt bij schemering over een aarden bospad, gezien op eerbiedige afstand

Hoeveel gegevens zijn genoeg? Ruwweg 100 detecties

Je kunt elke functie hierboven draaien op een dozijn foto's. Je zou het niet moeten doen. De vraag naar de steekproefgrootte heeft een helder empirisch antwoord van Lashley en collega's, die camera-afgeleide activiteitscurves vergeleken met de “waarheid” van radiozenders en de gegevens onderbemonsterden om de nauwkeurigheid te zien afnemen. Hun bevinding: “de gemiddelde overlap nam toe en de overlapfout nam snel af naarmate de steekproefgroottes toenamen, tot een asymptoot nabij 100 detecties”, waarna meer gegevens weinig verbetering opleverden. Hun aanbeveling is het getal om te onthouden — verzamel ten minste 100 detecties van een doelsoort voordat je haar activiteitscurve schat.

Twee eerlijke kanttekeningen rond die 100. Ten eerste kan de inspanning om die 100 detecties te verkrijgen “sterk variëren afhankelijk van de ecologie, mobiliteit en detecteerbaarheid van de soort” — triviaal voor een algemeen hert, een seizoen werk voor een zeldzame kat. Aas kan helpen: in die studie leverden camera's met aas (“actieve”) een 700-voudig hoger detectiecijfer voor herten op dan passieve op paadlocaties, wat telt wanneer je binnen een biologisch betekenisvol venster naar een steekproef racet. Ten tweede kwamen zelfs bij goede steekproefgroottes de cameracurves qua vorm goed overeen met de radiozenders, maar verschilden ze in de hoogte van de pieken — de overlap met de radiozender-waarheid liep Δ = 0,74–0,84, met statistisch significante verschillen geconcentreerd rond de piekvoedertijden. Camera's zijn uitstekend voor wanneer een soort actief is; wees voorzichtiger met het aflezen van de exacte hoogte van een piek.

Voor de bootstrap zelf ligt de ondergrens lager maar is nog steeds reëel: het pakket `overlap` merkt op dat 40 bootstrap-schattingen het absolute minimum zijn voor een 95%-betrouwbaarheidsinterval, 200 voor 99% — maar, nogmaals, je wilt honderden tot duizenden voor stabiliteit, niet het minimum.

Kloktijd versus zonnetijd: de correctie die de meeste vluchtige analyses overslaan

Dit is de stap die een zorgvuldige activiteitsanalyse scheidt van een slordige, en hij is onzichtbaar als je niet weet dat je moet kijken. Zonsopkomst en zonsondergang verschuiven door het jaar, en ze verschuiven meer naarmate je verder van de evenaar bent. Bundel je foto's over seizoenen heen op een vaste kloktijd-as, dan worden de twee pieken van een schemeractief dier — die eigenlijk dageraad en avondschemer volgen — uitgesmeerd tot brede, afgevlakte bulten, want “de dageraad” was 05.00 in juni en 07.30 in december. Bundel over een breed genoeg bereik en je kunt zelfs overlap fabriceren die niet echt is: het vignetvoorbeeld van een vleermuis die bij zonsondergang uitvliegt en een havik die bij zonsondergang gaat rusten, toont in elke afzonderlijke maand nul overlap, en toch tonen de gebundelde gegevens schijnbare overlap, puur doordat de zonsondergang verschoof.

De oplossing is om de tijd van elke foto uit te drukken ten opzichte van de zon in plaats van de klok. Beide belangrijkste pakketten doen dat. In `overlap` “zet `sunTime()` een vector van kloktijden om naar 'zonnetijden', door zonsopkomst op π/2 en zonsondergang op 3π/2 af te beelden”, gegeven de datum en locatie van elk record. In `activity` verankert `solartime()` de kloktijden aan de gemiddelde zonsopkomst en zonsondergang voor de coördinaten van de studie en retourneert zowel een kloktijd- als een zonnetijdversie, zodat je ze kunt vergelijken. De vuistregel die hieruit volgt: hoe verder je van de evenaar bent en hoe meer van het jaar je studie beslaat, hoe belangrijker de correctie — de aannames van de onderliggende activiteitsniveaumethode zijn uitdrukkelijk “minder waarschijnlijk vervuld bij grote roofdieren, of in winters op hoge breedtegraden”. Nabij de evenaar, of voor een studie beperkt tot één kort venster, is kloktijd doorgaans prima.

In de praktijk doen de zorgvuldige studies het gewoon. Een studie naar 61 soorten in Chinese bergbossen “zette de kloktijd voor elke detectie om naar een relatieve zonnetijd om de effecten van variatie in daglengte te elimineren” vóór het aanpassen van curves. De plateaucarnivoren-studie standaardiseerde alle opnametijden naar zonnetijd met `overlap::sunTime()`, uitdrukkelijk omdat de zonsopkomst over het jaar varieerde van 5.30 tot 8.30. De Noord-Ierse studie zette elke detectie af tegen de dichtstbijzijnde zonnegebeurtenis — ochtendrecords ten opzichte van de zonsopkomst, avondrecords ten opzichte van de zonsondergang — zodat een detectie van 22.10 met een zonsondergang om 20.00 “−2 u 10 min” werd, een schone maat voor hoe diep in de nacht het dier actief was. Zaten je camera's één zomermaand op één plek nabij de tropen, dan kun je dit overslaan. Doe anders de omzetting — en let erop dat de activiteitsfuncties van `camtrapR` kloktijd gebruiken, niet zonnetijd, dus heb je de correctie nodig, dan moet je die zelf toepassen vóór het plotten.

Dit is de stap die een zorgvuldige activiteitsanalyse scheidt van een slordige, en hij is onzichtbaar als je niet weet dat je moet kijken.

De valkuilen die stilletjes een activiteitspatroon ruïneren

Een berglandschap bij zonsopgang, de laagstaande zon boven een bergkam werpt een lang, gestrekt licht

De meeste waardeloze activiteitsanalyses worden niet door de statistiek geveld. Ze worden stroomopwaarts geveld. De terugkerende faalwijzen, ruwweg in volgorde van hoe vaak ze bijten:

De plaatsingsval is het waard om bij stil te staan, want ze foppt zorgvuldige mensen. Camera's op paden en wegen — precies waar je ze zet om carnivoren te vangen of detecties te maximaliseren — registreren dieren die paden gebruiken, wat niet hetzelfde is als dieren die actief zijn. Tanwar en collega's voerden het schone experiment uit in een Indiaas tijgerreservaat en plaatsten paadcamera's en willekeurige camera's naast elkaar. De paadcamera's toonden hoefdieren — axishert, nijlgau, wild zwijn, gazelle — met “overwegend dagactiviteit met zeer weinig opnamen 's nachts”. De willekeurige camera's, die het landschap bemonsterden in plaats van de paden, onthulden aanzienlijke nachtactiviteit bij dezelfde soorten; de nijlgau sloeg zelfs om naar een nachtelijke piek, met de overlap tussen paad- en willekeurige schattingen zo laag als Δ = 0,41. De reden is gedragsmatig: “paden worden 's nachts uitgebreid door roofdieren gebruikt”, dus de hoefdieren mijden ze na donker — een antiroofdierzet die hen dagactief laat lijken voor een paadcamera. De waarschuwing van de auteurs is er een die elke activiteitsstudie ter harte zou moeten nemen: gepubliceerde activiteitspatronen uit op carnivoren gerichte paadonderzoeken “zijn waarschijnlijk vertekend naar dagactiviteit”. De overlapvignet maakt hetzelfde punt van de andere kant — een camera op een pad meet “het lopen op paden”, dus de overlap van twee soorten is de overlap in hun pad-lopen, en “een grazende herbivoor en de carnivoor die haar besluipt zijn volgens deze definitie waarschijnlijk allebei 'inactief'”. De oplossing zit in het ontwerp: willekeurige of van-het-pad-af geplaatste camera's geven een eerlijker activiteitsbeeld, en op zijn minst zou je moeten melden dat paadplaatsing naar de dag toe vertekent.

Een laatste, subtielere kanttekening: wees voorzichtig met het bundelen van heterogene gegevens van welke soort dan ook, niet alleen over seizoenen. Het combineren van locaties of perioden met werkelijk verschillende activiteit blaast de overlapschattingen op, “en deze schijnbare overlap is een artefact van het bundelen”. En onthoud dat wat je werkelijk meet detecties op camera's zijn, die “actief” interpreteren als “langs een sensor bewegen” — een reëel maar gedeeltelijk venster op gedrag. Interpreteer soortinteracties met zorg; de waarschuwende vertelling van de vignet is een studie waarin de dhole en het wild zwijn de dag leken te delen, wat suggereerde dat de dhole het zwijn at, totdat mestanalyse liet zien dat de dhole vooral hert at.

De meeste waardeloze activiteitsanalyses worden niet door de statistiek geveld. Ze worden stroomopwaarts geveld.

Waar dit heen gaat: hiërarchische modellen

Een kleine, onopvallende wildcamera aan een boom vastgesnoerd, gericht op een open bosplek, weg van elk wildpad

Kernel density estimation is de standaard van het vakgebied, en voor de meeste vragen is het het juiste gereedschap. Maar het is de moeite waard het plafond ervan te kennen, want de methodenliteratuur beweegt er actief voorbij. Iannarilli en collega's zetten de beperkingen van KDE onomwonden uiteen: het bundelt gegevens over locaties heen en negeert dus de variabiliteit van locatie tot locatie, wat overmatig zelfverzekerde onzekerheid oplevert; het is gevoelig voor de bandbreedtekeuze bij kleine steekproeven; het kan geen covariaten opnemen of formeel hypothesen toetsen; en het “beschouwt alleen records waarin een dier is gedetecteerd, en gooit informatie weg over wanneer er wel is bemonsterd maar de soort niet is geregistreerd”. Die laatste is subtiel maar reëel — een KDE gooit elk camera-uur weg waarin niets gebeurde, ook al dragen die nullen informatie over wanneer de soort niet actief was.

Het voorgestelde alternatief zijn hiërarchische modellen — trigonometrische gegeneraliseerde lineaire gemengde modellen (sinus- en cosinustermen met random effecten per locatie, via `glmmTMB` of `lme4`) of cyclische kubische-spline-GAM's (via `mgcv`) — die de gegevens in tijdsintervallen indelen, de niet-detecties gebruiken, rekening houden met de variabiliteit van locatie tot locatie, en je laten toetsen hoe een seizoen of de aanwezigheid van een concurrent de curve verschuift. In een studie op 100 locaties in Minnesota kwantificeerde deze aanpak de activiteit van zwarte beer en coyote terwijl ze “aanzienlijke heterogeniteit van locatie tot locatie” blootlegde, “een aspect dat grotendeels genegeerd is” door gebundelde KDE. Deze modellen zijn veeleisender — een gangbare vuistregel is 10 of meer locaties voordat je random effecten aanpast — en overkill voor een beschrijving van één soort op één locatie. Voor de meeste lezers is KDE plus een duidelijk benoemde onafhankelijkheidsregel en een zonnetijdcorrectie vandaag de juiste keuze. Maar draait je vraag om covariaten, meerdere locaties of formele hypothesetoetsen, dan is dit waar je vervolgens moet kijken.

Veelgestelde vragen

Wat is het minimumaantal detecties dat nodig is om een activiteitspatroon uit wildcamera's te schatten?

Ongeveer 100. Nauwkeurigheid en precisie verbeteren sterk naarmate de steekproef groeit en bereiken daarna een asymptoot nabij 100 detecties, wat het aanbevolen minimum is voordat je een activiteitscurve schat. Je kunt op minder een curve aanpassen, maar die wordt ruizig en zou weinig interpretatief gewicht mogen dragen.

Moet ik een onafhankelijkheidsfilter van 30 of 60 minuten op mijn foto's toepassen?

Daarover wordt werkelijk gedebatteerd. Het filter is conventioneel en verwijdert de ophoping van bursts en rondhangende dieren, maar een belangrijke analyse betoogt dat vaste filters voor tijd-tot-onafhankelijkheid ongeschikt zijn voor activiteitsgegevens — ze kunnen het merendeel van de records van sommige soorten weggooien en de resulterende curves en overlappen vertekenen. De verdedigbare tussenweg: sluit altijd burst-frames uit, verwijder duidelijke niet-onafhankelijkheid, denk twee keer na voordat je een vast klokvenster oplegt, en rapporteer, als je toch filtert, het effect ervan op je schattingen.

Wat meet de overlapcoëfficiënt (Δ) eigenlijk?

Het is het oppervlak dat gedeeld wordt onder de activiteitsdichtheidscurves van twee soorten, van 0 (geen gedeelde activiteit) tot 1 (identieke patronen) — het deel van de dag dat twee soorten samen actief zijn. Een gangbare vuistregel leest onder 0,5 als lage overlap, 0,5–0,8 als matig, en boven 0,8 als hoog.

Moet ik omzetten naar “zonnetijd”, en hoe?

Ja, als je studie zich over seizoenen uitstrekt of ver van de evenaar ligt — hoe verder van de evenaar en hoe langer de studie, hoe belangrijker het is. Bundelen over verschuivende zonsopkomst/zonsondergang op een kloktijd-as vlakt pieken af en kan overlap fabriceren. Gebruik `overlap::sunTime()` of `activity::solartime()`, die elk record aan zonsopkomst en zonsondergang verankeren per datum en locatie.

Welk R-pakket moet ik gebruiken — `overlap`, `activity` of `camtrapR`?

Alle drie, voor verschillende taken. `camtrapR` haalt de tijdstempels uit je beelden en maakt de recordtabel en snelle activiteitsplots; `overlap` is het gereedschap om twee soorten te vergelijken via de Δ-coëfficiënt; `activity` is het best om een algeheel activiteits-niveau met betrouwbaarheidsintervallen te schatten. Let erop dat de activiteitsfuncties van `camtrapR` kloktijd gebruiken, dus pas elke zonnetijdcorrectie eerst zelf toe.

Kan ik een activiteitspatroon van op paden geplaatste camera's vertrouwen?

Met voorzichtigheid. Op paden geplaatste camera's registreren paadgebruik, geen activiteit in het algemeen, en kunnen een soort dagactiever laten lijken dan ze is — hoefdieren mijden paden 's nachts om roofdieren te ontlopen, dus paadcamera's onderschatten hun nachtactiviteit. Willekeurige of van-het-pad-af geplaatste camera's geven een eerlijker curve; meld op zijn minst dat paadplaatsing naar de dag toe vertekent.