Każde zdjęcie zrobione przez twoje kamery niesie już najcenniejszą liczbę w całym zbiorze danych, i wcale nie jest nią gatunek. To pora dnia. Fotopułapka wyzwala się, gdy zwierzę jest obecne, więc sterta znaczników czasu, którą zgromadziłeś, to próba tego, kiedy zwierzę było wybudzone i w ruchu — więcej wyzwoleń, gdy jest aktywne, mniej lub wcale, gdy odpoczywa. Odczytaj dostatecznie wiele z tych godzin, a odtworzysz kształt doby danego gatunku: kiedy się budzi, kiedy osiąga szczyt, kiedy milknie. To właśnie wzorzec aktywności zwierzęcia, a fotopułapka jest jednym z niewielu tanich, nieinwazyjnych sposobów, by go uzyskać.
Oto cały ciąg przetwarzania w jednym tchu, byś wiedział, dokąd to zmierza. Wyciągasz czystą datę i godzinę z każdego obrazu (niemal zawsze z metadanych EXIF, czasem odczytując znacznik czasu wypalony w samym zdjęciu); decydujesz, które rekordy liczą się jako niezależne zdarzenia; przeliczasz te godziny zegarowe na skalę cykliczną, a jeśli twoje badanie obejmuje pory roku lub leży z dala od równika — na czas słoneczny; dopasowujesz cykliczne jądrowe oszacowanie gęstości (kernel density) do godzin, by oszacować krzywą aktywności; a jeśli porównujesz dwa gatunki, obliczasz współczynnik nakładania się (Δ) między ich krzywymi. W R praca ta mieści się niemal w całości w trzech pakietach — `overlap`, `activity` i `camtrapR` — a całość opiera się na jednym mało efektownym warunku wstępnym: około 100 wykryciach gatunku, zanim zaufasz krzywej.
Żaden z tych kroków nie jest trudny. Kilka z nich łatwo po cichu, niepostrzeżenie pokpić — zegar, który się rozjechał; filtr „niezależności”, który usuwa dokładnie ten szczyt, który próbujesz zmierzyć; wschód słońca, który przesunął się o trzy godziny między czerwcem a grudniem, gdy twoja oś x tkwiła w miejscu. Ten tekst przechodzi przez cały ciąg przetwarzania od początku do końca i — co równie ważne — wskazuje, gdzie wiarygodna analiza aktywności rozchodzi się z bezwartościową. Różnica zwykle nie tkwi w statystyce. Tkwi w higienie danych, która ją poprzedza.
Najpierw wyciągnij czyste daty i godziny z każdego zdjęcia
Nie da się odtworzyć później, kiedy zwierzę zostało sfotografowane — nie ma na to drugiego źródła tak, jak jest ono na przykład dla współrzędnych kamery. Jak dosadnie ujmuje to przewodnik dobrych praktyk GBIF, data i godzina „to najważniejszy aspekt metadanych... i nie da się jej wyprowadzić później”. Ten krok zasługuje więc na więcej staranności, niż zwykle mu się poświęca.
Czystą drogą są osadzone metadane. Gdy kamera zapisuje plik JPEG, wpisuje czas rejestracji w blok EXIF, w pole `DateTimeOriginal`. Narzędzia odczytują to pole wprost: funkcja `recordTable()` z `camtrapR` opiera się na ExifTool, by pobrać `DateTimeOriginal` z każdego obrazu i zestawić schludną tabelę rekordów ze stanowiskiem, gatunkiem i czasem. Jeśli twoje obrazy niosą dobry EXIF, jest to problem rozwiązany — wskaż funkcji swoje foldery, a masz odczytywalne maszynowo daty i godziny co do sekundy.
Dwa nawyki z etapu poprzedzającego czynią to wszystko bezpieczniejszym i oba dotyczą kamery, a nie oprogramowania. Po pierwsze, ustaw zegar na czas UTC lub lokalny zimowy i wyłącz automatyczne przełączanie na czas letni. Czas letni to niemy sabotażysta danych o aktywności: jeśli ustawisz zegar kamery latem, a ona nie wie o zmianie czasu, każde zimowe zdjęcie wypada o godzinę obok prawdziwego czasu zegarowego, i na odwrót — systematyczny błąd jednej godziny rozmazany po połowie twoich rekordów. Rada `camtrapR` to pragmatyczna wersja tej samej zasady: jeśli twój obszar badań stosuje czas letni, ale twoje kamery go nie rejestrują, pozostaw strefę czasową analizy na UTC, ponieważ UTC nie ma skoku czasu letniego, o który można się potknąć. Po drugie, jeśli sam nazywasz lub porządkujesz pliki, zaczynaj nazwy plików od daty — `RRRRMMDD_GGMMSS` — tak by ich alfabetyczne sortowanie sortowało je zarazem chronologicznie, a przy eksporcie zapisuj czasy w ISO 8601 (`RRRR-MM-DDTGG:MM:SS`).
Jeśli po fakcie odkryjesz, że zegar kamery był źle ustawiony — całe wdrożenie przesunięte o znaną wartość — da się to naprawić. `camtrapR` zawiera `timeShiftImages()` do wsadowej korekty znaczników czasu w metadanych obrazu oraz osobną `fixDateTimeOriginal()` na konkretny tryb awarii: pewne kamery Reconyx HyperFire, które nie przechowują daty i godziny w standardowym znaczniku. Najpierw wykonaj kopię zapasową obrazów. Rzecz w tym, że błędy zegara wychwycone wcześnie są utrapieniem; błędy zegara nigdy niewychwycone stają się fikcyjnym wzorcem aktywności.
Zdefiniuj swoje kategorie — ale wiedz, że to zgrubne pierwsze przybliżenie
Zanim dopasujesz jakąkolwiek krzywą, warto mieć słownictwo, którym dziedzina posługuje się od początku. W chwili, gdy badacze zdali sobie sprawę, że znaczniki czasu z kamer potrafią opisać aktywność, pierwszą rzeczą, jaką zrobili, było posortowanie gatunków do czterech przegródek:
- Aktywne dziennie (dzienne) — aktywne głównie za dnia.
- Aktywne nocą (nocne) — aktywne głównie nocą.
- Aktywne o zmierzchu (krepuskularne) — aktywne głównie o brzasku i zmierzchu, wokół świtu i zmroku.
- Katemeralne — aktywne zarówno w dzień, jak i w nocy, bez silnej preferencji.
To nie są tylko wrażenia; można je zdefiniować operacyjnie. W dwuletnim badaniu ośmiu ssaków w północnej Japonii Ikeda i współpracownicy przydzielili każde zdjęcie do dnia, nocy lub zmierzchu, porównali częstość fotograficzną między trzema okresami za pomocą jednoczynnikowej ANOVA i przypisali każdy gatunek do kategorii: dzienny, jeśli zdjęcia skupiały się za dnia, nocny, jeśli nocą, krepuskularny, jeśli o zmierzchu, i katemeralny, gdy „nie było różnicy” między trzema okresami. Dało to czyste rozstrzygnięcia — wiewiórka pospolita dzienna, jenoty i szopy pracze nocne, jelenie sika i zające bielaki krepuskularne, kuny japońskie i niedźwiedzie brunatne katemeralne.
Z przegródkami idą dwa zastrzeżenia. Pierwsze jest takie, że są one naprawdę zgrubne, a najciekawsze ustalenia mieszkają w szczelinach między nimi. Te same jelenie sika „przeniosły szczyty ze zmierzchu wiosną–jesienią na porę dzienną zimą, prawdopodobnie z powodu ograniczeń termicznych”, a kuny były katemeralne przez większość roku, lecz nocne jesienią. Pojedyncza etykieta kategorii wymazałaby oba fakty. Drugie zastrzeżenie to skala. Globalnie podział na cztery jest skrzywiony: w zbiorze tysięcy gatunków ssaków Bennie i współpracownicy stwierdzili, że „większość gatunków ssaków jest nocna (69%...; 20% dziennych, 8,5% katemeralnych i 2,5% krepuskularnych)” oraz że strategia ta jest głęboko zakonserwowana w drzewie rodowym ssaków (λ Pagela = 0,947). Twój domyślny prior dla niezbadanego ssaka powinien więc brzmieć „prawdopodobnie nocny”, a pewna klasyfikacja jako dziennego zasługuje na drugie spojrzenie — zwłaszcza wobec pułapek rozmieszczenia, do których dojdziemy dalej. Kategorie są użytecznym nagłówkiem. Krzywa aktywności to cała historia.
Kategorie są użytecznym nagłówkiem. Krzywa aktywności to cała historia.
Niezależność czasowa: najbardziej brzemienny w skutki — i najbardziej sporny — wybór, jaki podejmiesz

Tu właśnie dobre intencje rozbijają analizy aktywności. Kamery nie robią jednego zdjęcia na wizytę. Pojedyncze zwierzę ociągające się przed obiektywem albo kamera ustawiona na wyzwalanie serii trzech czy dziesięciu klatek na jedno wyzwolenie potrafi wytworzyć dziesiątki znaczników czasu z jednej chwili aktywności. Pozostawione w danych, te niemal identyczne godziny piętrzą się i przechylają krzywą ku „godzinom, w których gatunek akurat dawał popis przed twoimi kamerami”, jak niezapomniale ujął to `camtrapR` w opisie bażanta argusa, który uwielbiał być w centrum uwagi.
Standardowym lekarstwem jest filtr czasu do niezależności (w `camtrapR` argument `minDeltaTime`): zwiń wszelkie rekordy tego samego gatunku na tym samym stanowisku, które mieszczą się w jakimś oknie — 30 minut i 60 minut to częste wybory — do jednego zdarzenia. Łatwo go zastosować. `recordTable()` z `camtrapR` domyślnie przyjmuje `minDeltaTime = 0` (zachowaj wszystko) i pozwala ustawić na przykład 60, by przerzedzić dane; w przykładowym przebiegu pakietu z 68 obrazów po usunięciu identycznych czasów zostaje 56 rekordów, a po zastosowaniu filtra jednogodzinnego — 40. Co kluczowe, `minDeltaTime` „wpływa na wszystkie wyniki wykresów aktywności, ponieważ wyznacza niezależność czasową między rekordami” — zmień okno, a zmienisz krzywą.
I to jest właśnie problem, ponieważ konwencja jest sporna u samych korzeni. Peral i współpracownicy przejrzeli 134 ogólnodostępne badania aktywności z fotopułapek i stwierdzili, że „blisko 70% (90 ze 134...) stosuje filtr czasu do niezależności”, zwykle 30 minut, czasem 60, a nawet 24 godziny. Ich argument przeciwko niemu jest pojęciowy: filtry te zapożyczono z szacowania liczebności, gdzie wiele zdjęć jednego osobnika zawyża liczby, ale aktywność nie jest ciągiem odrębnych zdarzeń — jest stanem ciągłym. Jak to ujmują, filtr sprawia, że obserwator „w istocie orzeka, że zwierzę jest nieaktywne w tym okresie, odrzucając znaczącą informację o aktywności zwierzęcia”. Co gorsza, szkody rozkładają się nierówno. Na zbiorze danych z Serengeti liczącym 164 509 obrazów pokazali, że liczne, stadne roślinożerne „traciły 74–93% danych o aktywności, gdy czas do niezależności rósł z 1 do 60 minut”, podczas gdy rzadkie mięsożerne traciły zaledwie 21–23%. Filtrowanie nie tylko kurczyło próby; deformowało krzywe — południowy szczyt gazeli spadał nawet o 44% — a ponieważ dotykało roślinożernych i mięsożernych asymetrycznie, obciążało dokładnie te porównania nakładania się drapieżnika i ofiary, które ludzie przeprowadzają. Ich konkluzja jest jednoznaczna: stosowanie filtrów czasu do niezależności w szacowaniu aktywności „nie jest uprawnione i nie powinno być używane”.
Co więc właściwie należy robić? Nie czytaj Perala jako „zachowaj każdą surową klatkę”. Czytaj to precyzyjnie. Klatki z serii — dziesięć ujęć wyzwolonych przez kamerę na jedno wyzwolenie — nie są w ogóle próbą zachowania; są nastawą zdefiniowaną przez użytkownika, a Peral wprost mówi, że należy je wykluczyć z analiz aktywności. Spór jest węższy, niż wygląda na pierwszy rzut oka: niemal wszyscy zgadzają się, że trzeba usunąć sztuczne spiętrzenie z serii i z pojedynczego zwierzęcia ociągającego się w kadrze. Żywy spór dotyczy tego, czy nakładać na to jeszcze sztywne okno zegarowe (30 czy 60 minut). Nowsze, obronne stanowisko to usuwać tylko oczywistą niezależność pozorną i poza tym zachowywać rekordy — lub, jeśli już filtrujesz, podawać, co filtrowanie robi z twoimi oszacowaniami, zamiast wybierać 30 minut dlatego, że wszyscy inni tak zrobili. Cokolwiek wybierzesz, zadeklaruj to. Wynik aktywności jest nieinterpretowalny bez swojej reguły niezależności, a fakt, że opublikowane badania używały „zmiennych i arbitralnych” okien, oznacza, że ich krzywe często nie dają się sensownie porównać między sobą. Bądź tym badaniem, które jest jednoznaczne.
Wynik aktywności jest nieinterpretowalny bez swojej reguły niezależności. Bądź tym badaniem, które jest jednoznaczne.
Dopasuj krzywą: cykliczne jądrowe oszacowanie gęstości i jądro von Misesa

Teraz statystyka, która jest łatwą częścią. Pora dnia jest cykliczna — 23:59 sąsiaduje z 00:00, a nie leży od niej o jedenaście godzin — więc nie da się dopasować do niej zwykłej krzywej gęstości. Dopasowujesz cykliczną. Standardowe podejście, wprowadzone dla danych z kamer przez Ridouta i Linkiego, a dziś domyślne w tej dziedzinie, dopasowuje jądrowe oszacowanie gęstości do zaobserwowanych godzin za pomocą jądra von Misesa (cyklicznego odpowiednika jądra Gaussa) zamiast zwykłego jądra prostoliniowego. Wynikiem jest gładka gęstość prawdopodobieństwa na całym 24-godzinnym cyklu: wysoka tam, gdzie zwierzę jest aktywne, niska tam, gdzie nie jest.
Kilka mechanizmów ma znaczenie. Wszystkie te narzędzia pracują w radianach, nie w godzinach ani ułamkach doby, więc pierwsza linia niemal każdego skryptu przelicza: `timeRad <- time 2 pi`. Wygładzaniem steruje szerokość pasma, udostępniona w pakiecie `overlap` jako argument `adjust` — podnieś ją powyżej domyślnej 1 dla płaszczej krzywej, obniż dla bardziej kolczastej — a wybór ten wpływa na dalsze oszacowania nakładania się, więc nie jest czysto kosmetyczny. W pakiecie `activity` tę samą pracę wykonuje `fitact()`, który dopasowuje cykliczne jądro i — ponieważ więcej rekordów gromadzi się, gdy zwierzę jest bardziej aktywne — wyprowadza ogólny poziom aktywności, czyli odsetek doby, jaki populacja spędza w ruchu, z pola pod rozkładem.
Dominują dwa pakiety R i są komplementarne. Użyj `overlap` (funkcje `densityPlot()`, `overlapPlot()`, `overlapEst()`), gdy twoje pytanie dotyczy porównania krzywych dwóch gatunków. Użyj `activity` (`fitact()`, `solartime()`, `compareCkern()`), gdy chcesz skwantyfikowanego oszacowania poziomu aktywności z bootstrapowymi przedziałami ufności albo bogatszych narzędzi do statystycznego porównywania rozkładów. A `camtrapR` wiąże je z twoimi obrazami: jego `activityDensity()` wywołuje `overlap::densityPlot()`, `activityOverlap()` wywołuje `overlap::overlapPlot()` oraz `overlapEst()`, a `activityRadial()` i `activityHistogram()` dają widoki tarczy zegara i słupków godzinowych, wszystkie czytane wprost z tabeli rekordów. Do wizualizacji wyników wykres radialny i nałożona krzywa gęstości to dwa konie robocze; to wykres gęstości należy publikować, bo pokazuje rzeczywisty oszacowany kształt, zamiast agregować do pełnych godzin.
Pora dnia jest cykliczna — 23:59 sąsiaduje z 00:00, a nie leży od niej o jedenaście godzin — więc nie da się dopasować do niej zwykłej krzywej gęstości.
Porównywanie gatunków: współczynnik nakładania się (Δ)
Najczęstszym powodem, by przeprowadzić tę analizę, jest pytanie, czy dwa gatunki dzielą dobę — drapieżnik i ofiara albo dwaj konkurenci. Standardowym podsumowaniem jest współczynnik nakładania się, Δ, pole leżące pod obiema krzywymi gęstości: biegnie od 0 (brak jakiegokolwiek nakładania) do 1 (identyczne wzorce aktywności). Traktuj go jako ułamek aktywności, który dwa gatunki mają wspólny.
To, którego estymatora użyjesz, zależy od twojej mniejszej próby, i tu ludzie się potykają. Pakiet `overlap` oferuje trzy — Dhat1, Dhat4 i Dhat5 — a wskazówka jest konkretna: użyj Dhat1 dla małych prób, a Dhat4 dla większych. Gdzie dokładnie leży próg, ci sami autorzy podają w różnych miejscach nieco inaczej, o czym warto wiedzieć: dokumentacja pakietu mówi, że „Dhat4 jest najlepszy, gdy najmniejsza próba liczy co najmniej 50 obserwacji”, podczas gdy winieta pakietu stawia próg przejścia wyżej, zalecając Dhat1, gdy mniejsza próba jest poniżej 50, a Dhat4, gdy jest „większa niż 75”, z szarą strefą pomiędzy. Praktyczny odczyt: komfortowo powyżej ~75 w mniejszej próbie — Dhat4; wyraźnie mało — Dhat1; pomiędzy — wybierz Dhat1 i nie nadinterpretuj. Jedna zasada jest twarda w każdym źródle — nie używaj Dhat5, ponieważ „nawet drobne zmiany w danych mogą skutkować dużymi, nieciągłymi zmianami w Dhat5, a może on przyjmować wartości > 1”. (Uwaga dla użytkowników `camtrapR`: `activityOverlap()` domyślnie zwraca Dhat1, więc jeśli twoje próby są duże, przekaż `overlapEstimator = "Dhat4"`, zamiast akceptować domyślną wartość.)
Przedziały ufności pochodzą z bootstrapu, a wygładzony jest preferowany — dopasuj gęstość, a potem losuj z niej symulowane obserwacje — ponieważ zwykłe losowanie z powtórzeniami nigdy nie wytworzy godziny spoza zaobserwowanego zakresu, co jest błędne dla ciągłego wzorca aktywności. Użyj dostatecznie wielu losowań: przykłady często pokazują 1 000, ale winieta jest wprost, że „dla rzeczywistej analizy lepsze byłoby 10 000 próbek bootstrapowych”, a pakiet ostrzega, że „dla stabilnych oszacowań potrzeba co najmniej 999 oszacowań bootstrapowych, najlepiej 10 000”.
Konkretne liczby to unaoczniają. W kanonicznym przykładzie z Kerinci tygrysy i makaki w jednej strefie — obie próby powyżej 75 obserwacji — dały nakładanie się Dhat4 równe 0,42, umiarkowane, częściowe nakładanie. W północnoirlandzkim badaniu drapieżnik–ofiara lisy i zające nakładały się w 73% (CI 68–77%) w skali roku, lisy i króliki w 80%, lisy i myszy leśne w 81% — doba drapieżnika podążała za dobą jego ofiary — podczas gdy kuny leśne i dzienne wiewiórki pokazały coś przeciwnego, asynchronię zgodną z czasowym unikaniem. Wśród współwystępujących dużych drapieżników na Wyżynie Qinghai–Tybet pantery śnieżne i rysie nakładały się Δ = 0,88 (CI 0,80–0,95), pantery śnieżne i wilki 0,86, wilki i rysie 0,83 — wszystkie wysoko, wszystkie przeważnie nocne, przy czym w ciepłej porze roku nakładanie spadało ku umiarkowanemu. Częsta konwencja opisu tych liczb: poniżej 0,5 to niskie nakładanie, 0,5–0,8 umiarkowane, powyżej 0,8 wysokie. To użyteczny skrót, a nie prawo.

Ile danych wystarczy? Około 100 wykryć
Każdą z powyższych funkcji można uruchomić na tuzinie zdjęć. Nie należy. Pytanie o liczebność próby ma czystą empiryczną odpowiedź od Lashleya i współpracowników, którzy porównali krzywe aktywności z kamer z „prawdą” z nadajników radiowych i podpróbkowali dane, by obserwować, jak dokładność się pogarsza. Ich ustalenie: „średnie nakładanie rosło, a błąd nakładania malał szybko wraz ze wzrostem liczebności prób aż do asymptoty w okolicy 100 wykryć”, powyżej której więcej danych dawało niewielką poprawę. Ich zalecenie to liczba do zapamiętania — zbierz co najmniej 100 wykryć docelowego gatunku, zanim oszacujesz jego krzywą aktywności.
Dwa uczciwe zastrzeżenia wokół tej setki. Po pierwsze, wysiłek, by zdobyć 100 wykryć, „może się bardzo różnić w zależności od ekologii, ruchliwości i wykrywalności gatunku” — trywialny dla pospolitego jelenia, praca na cały sezon dla rzadkiego kota. Przynęcanie może pomóc: w tym badaniu kamery z przynętą („aktywne”) osiągnęły 700-krotnie wyższy wskaźnik wykryć jeleni niż bierne kamery ustawione na przejściach, co ma znaczenie, gdy ścigasz się do próby w biologicznie sensownym oknie. Po drugie, nawet przy dobrych liczebnościach prób krzywe z kamer dobrze zgadzały się z nadajnikami radiowymi co do kształtu, ale różniły się wielkością szczytów — nakładanie z prawdą z nadajników wynosiło Δ = 0,74–0,84, ze statystycznie istotnymi różnicami skupionymi w szczytowych porach żerowania. Kamery są znakomite do ustalenia, kiedy gatunek jest aktywny; do odczytu dokładnej wysokości szczytu podchodź ostrożniej.
Dla samego bootstrapu podłoga jest niższa, lecz wciąż realna: pakiet `overlap` odnotowuje, że 40 oszacowań bootstrapowych to absolutne minimum dla 95-procentowego przedziału ufności, a 200 dla 99-procentowego — ale, znów, chcesz setek-do-tysięcy dla stabilności, a nie minimum.
Czas zegarowy a czas słoneczny: korekta, którą większość niedbałych analiz pomija
To krok, który oddziela staranną analizę aktywności od niechlujnej, i jest niewidoczny, jeśli nie wiesz, że masz go szukać. Wschód i zachód słońca wędrują przez rok, a wędrują tym bardziej, im dalej jesteś od równika. Jeśli zsypiesz zdjęcia z różnych pór roku na stałą oś czasu zegarowego, dwa szczyty zwierzęcia krepuskularnego — które w istocie podążają za świtem i zmrokiem — rozmażą się w szerokie, spłaszczone garby, ponieważ „świt” przypadał na 05:00 w czerwcu i 07:30 w grudniu. Zsyp z dostatecznie szerokiego zakresu, a możesz wręcz wyprodukować nakładanie, którego nie ma: przykład z winiety z nietoperzem wylatującym o zachodzie słońca i jastrzębiem zapadającym na noc o zachodzie słońca pokazuje zerowe nakładanie w każdym pojedynczym miesiącu, a jednak zsypane dane pokazują pozorne nakładanie wyłącznie dlatego, że zachód słońca się przesunął.
Lekarstwem jest wyrażenie czasu każdego zdjęcia względem słońca, a nie zegara. Robią to oba główne pakiety. W `overlap` `sunTime()` „przelicza wektor czasów zegarowych na »czasy słoneczne«, odwzorowując wschód słońca na π/2, a zachód na 3π/2”, na podstawie daty i lokalizacji każdego rekordu. W `activity` `solartime()` zakotwicza czasy zegarowe względem średniego wschodu i zachodu słońca dla współrzędnych badania i zwraca zarówno wersję zegarową, jak i słoneczną, byś mógł je porównać. Reguła kciuka, która stąd wypada: im dalej jesteś od równika i im większą część roku obejmuje twoje badanie, tym bardziej korekta ma znaczenie — założenia leżącej u podstaw metody poziomu aktywności są wprost „mniej prawdopodobne do spełnienia u dużych drapieżników lub w zimach na wysokich szerokościach geograficznych”. Blisko równika albo dla badania ograniczonego do jednego krótkiego okna czas zegarowy zwykle wystarcza.
W praktyce staranne badania po prostu to robią. Badanie 61 gatunków w chińskich lasach górskich „przeliczyło czas zegarowy każdego wykrycia na względny czas słoneczny, by wyeliminować wpływ zmienności długości dnia”, zanim dopasowano krzywe. Badanie drapieżników z Wyżyny wystandaryzowało wszystkie czasy rejestracji do czasu słonecznego za pomocą `overlap::sunTime()`, wprost dlatego, że wschód słońca wahał się w ciągu roku od 5:30 do 8:30. Badanie północnoirlandzkie odniosło każde wykrycie do najbliższego zdarzenia słonecznego — rekordy poranne względem wschodu, wieczorne względem zachodu — tak że wykrycie o 22:10 przy zachodzie o 20:00 stało się „−2 h 10 min”, czystą miarą tego, jak głęboko w noc zwierzę było aktywne. Jeśli twoje kamery stały w jednym miejscu przez jeden letni miesiąc blisko zwrotników, możesz to pominąć. W przeciwnym razie przelicz — i zwróć uwagę, że funkcje aktywności `camtrapR` używają czasu zegarowego, nie słonecznego, więc jeśli potrzebujesz korekty, musisz zastosować ją sam przed wykreślaniem.
To krok, który oddziela staranną analizę aktywności od niechlujnej, i jest niewidoczny, jeśli nie wiesz, że masz go szukać.
Pułapki, które po cichu rujnują wzorzec aktywności

Większości bezwartościowych analiz aktywności nie pogrąża statystyka. Pogrąża je to, co ją poprzedza. Powracające tryby awarii, z grubsza w kolejności, jak często kąsają:
- Rozjazd zegara i czas letni. Omówione wyżej, ale to błąd numer jeden: zegar kamery ustawiony w czasie letnim albo wdrożenie, którego zegar był po prostu błędny, wręcza ci systematycznie przesuniętą krzywą bez żadnego ostrzeżenia. Weryfikuj zegary przy wdrożeniu; ustawiaj je na UTC lub czas zimowy; wyłączaj przełączanie na czas letni.
- Filtr niezależności, który zjada szczyt. Filtr 30- lub 60-minutowy potrafi obedrzeć 74–93% rekordów stadnego roślinożercy i spłaszczyć jego najbardziej ruchliwe godziny, ledwie muskając rzadkiego drapieżnika — obciążając zarówno krzywe, jak i każde porównanie międzygatunkowe. Usuwaj serie i oczywiste ociąganie się w kadrze; dobrze się zastanów, zanim narzucisz sztywne okno zegarowe, a jeśli to zrobisz — podaj jego wpływ.
- Zsypywanie w czasie zegarowym bez korekty na czas słoneczny. Rozmazuje szczyty i może sfabrykować nakładanie. Przelicz na czas słoneczny dla danych wielosezonowych lub z wysokich szerokości geograficznych.
- Zbyt mało wykryć. Poniżej ~100 dokładność i precyzja szybko spadają, a pewnie wyglądająca krzywa z 18 zdjęć to głównie szum.
- Obciążenie rozmieszczenia — ten podstępny. To zasługuje na własny akapit.
Pułapka rozmieszczenia jest warta zatrzymania, bo zwodzi ludzi starannych. Kamery ustawione na tropach i drogach — dokładnie tam, gdzie stawiasz je, by łapać drapieżniki lub maksymalizować wykrycia — rejestrują zwierzęta korzystające z tropów, co nie jest tym samym, co zwierzęta będące aktywnymi. Tanwar i współpracownicy przeprowadzili czysty eksperyment w indyjskim rezerwacie tygrysów, rozstawiając kamery na tropach i kamery losowe obok siebie. Kamery na tropach pokazały kopytne — jelenie aksis, antylopy nilgau, dziki, gazele — z „przeważnie dzienną aktywnością i bardzo nielicznymi rejestracjami w nocy”. Kamery losowe, próbkujące krajobraz zamiast ścieżek, ujawniły znaczną aktywność nocną u tych samych gatunków; antylopa nilgau wręcz przeskoczyła na nocny szczyt, przy nakładaniu się oszacowań z tropów i losowych sięgającym zaledwie Δ = 0,41. Powód jest behawioralny: „tropy są intensywnie wykorzystywane przez drapieżniki w nocy”, więc kopytne unikają ich po zmroku — antydrapieżnicze zagranie, które sprawia, że wydają się dzienne kamerze na tropie. Ostrzeżenie autorów powinno wziąć sobie do serca każde badanie aktywności: opublikowane wzorce aktywności wywiedzione z ukierunkowanych na drapieżniki badań na tropach „są prawdopodobnie obciążone w stronę aktywności dziennej”. Winieta pakietu overlap stawia tę samą tezę od drugiej strony — kamera na tropie mierzy „chodzenie po tropach”, więc nakładanie się dwóch gatunków to nakładanie się ich chodzenia po tropach, a „skubiący roślinożerca i podchodzący go drapieżnik są prawdopodobnie oboje »nieaktywni« w tej definicji”. Lekarstwem jest projekt: kamery losowe lub poza tropami dają uczciwszy obraz aktywności, a w minimalnym wariancie powinieneś ujawnić, że rozmieszczenie na tropach przechyla ku porze dziennej.
Ostatnie, subtelniejsze zastrzeżenie: uważaj ze zsypywaniem heterogenicznych danych jakiegokolwiek rodzaju, nie tylko z różnych pór roku. Łączenie stanowisk lub okresów o rzeczywiście różnej aktywności zawyża oszacowania nakładania, „a to pozorne nakładanie jest artefaktem zsypywania”. I pamiętaj, że tym, co faktycznie mierzysz, są wykrycia na kamerach, które interpretują „aktywny” jako „przemieszczający się obok czujnika” — realne, lecz częściowe okno na zachowanie. Interpretuj interakcje gatunków z ostrożnością; przestrogą z winiety jest badanie, w którym cyjon i dzik wydawali się dzielić dobę, sugerując, że cyjon zjadał dzika, dopóki analiza odchodów nie pokazała, że cyjon jadał głównie jelenie.
Większości bezwartościowych analiz aktywności nie pogrąża statystyka. Pogrąża je to, co ją poprzedza.
Dokąd to zmierza: modele hierarchiczne

Jądrowe oszacowanie gęstości jest standardem dziedziny i dla większości pytań to właściwe narzędzie. Warto jednak znać jego pułap, ponieważ literatura metodologiczna aktywnie idzie dalej. Iannarilli i współpracownicy wykładają ograniczenia KDE wprost: zsypuje ono dane ze stanowisk i przez to ignoruje zmienność między stanowiskami, wytwarzając nadmiernie pewną niepewność; jest wrażliwe na wybór szerokości pasma przy małych próbach; nie potrafi uwzględnić zmiennych towarzyszących ani formalnie testować hipotez; a „bierze pod uwagę tylko rekordy, w których zwierzę wykryto, odrzucając informację o tym, kiedy prowadzono próbkowanie, ale gatunku nie zarejestrowano”. To ostatnie jest subtelne, lecz realne — KDE wyrzuca każdą godzinę pracy kamery, w której nic się nie działo, choć te zera niosą informację o tym, kiedy gatunek nie był aktywny.
Proponowaną alternatywą są modele hierarchiczne — trygonometryczne uogólnione modele liniowe mieszane (człony sinus i cosinus z efektami losowymi stanowiska, przez `glmmTMB` lub `lme4`) albo modele GAM z cyklicznymi sześciennymi funkcjami sklejanymi (przez `mgcv`) — które dzielą dane na przedziały czasowe, wykorzystują niewykrycia, uwzględniają zmienność między stanowiskami i pozwalają testować, jak pora roku lub obecność konkurenta przesuwa krzywą. W badaniu na 100 stanowiskach w Minnesocie podejście to skwantyfikowało aktywność niedźwiedzia czarnego i kojota, obnażając zarazem „znaczną heterogeniczność między stanowiskami, aspekt w dużej mierze ignorowany” przez zsypane KDE. Modele te są bardziej wymagające — częsta reguła kciuka to 10 lub więcej stanowisk, zanim dopasujesz efekty losowe — i przesadne dla opisu jednego gatunku na jednym stanowisku. Dla większości czytelników KDE plus jasno zadeklarowana reguła niezależności i korekta na czas słoneczny to dziś właściwy wybór. Ale jeśli twoje pytanie dotyczy zmiennych towarzyszących, wielu stanowisk lub formalnych testów hipotez, to właśnie tam warto zajrzeć dalej.
Najczęstsze pytania
Jaka jest minimalna liczba wykryć potrzebna do oszacowania wzorca aktywności z fotopułapek?
Około 100. Dokładność i precyzja poprawiają się gwałtownie wraz ze wzrostem próby, a potem osiągają asymptotę w okolicy 100 wykryć, co jest zalecanym minimum przed oszacowaniem krzywej aktywności. Można dopasować krzywą na mniejszej liczbie, ale będzie zaszumiona i nie powinna nieść dużej wagi interpretacyjnej.
Czy powinienem stosować do zdjęć filtr niezależności 30- lub 60-minutowy?
To rzecz naprawdę sporna. Filtr jest konwencjonalny i usuwa spiętrzenie z serii oraz ociągających się zwierząt, ale poważna analiza dowodzi, że sztywne filtry czasu do niezależności są niewłaściwe dla danych o aktywności — potrafią odrzucić większość rekordów niektórych gatunków i obciążyć wynikowe krzywe oraz nakładania. Obronny środek: zawsze wykluczaj klatki z serii, usuwaj oczywistą niezależność pozorną, dwa razy pomyśl, zanim narzucisz sztywne okno zegarowe, a jeśli już filtrujesz — podaj jego wpływ na twoje oszacowania.
Co właściwie mierzy współczynnik nakładania się (Δ)?
To pole wspólne pod krzywymi gęstości aktywności dwóch gatunków, od 0 (brak wspólnej aktywności) do 1 (identyczne wzorce) — ułamek doby, w którym dwa gatunki są aktywne jednocześnie. Częsty skrót odczytuje poniżej 0,5 jako niskie nakładanie, 0,5–0,8 jako umiarkowane, a powyżej 0,8 jako wysokie.
Czy muszę przeliczać na „czas słoneczny” i jak?
Tak, jeśli twoje badanie obejmuje pory roku lub leży dobrze z dala od równika — im dalej od równika i im dłuższe badanie, tym bardziej to ma znaczenie. Zsypywanie po przesuwającym się wschodzie/zachodzie słońca na osi czasu zegarowego spłaszcza szczyty i może sfabrykować nakładanie. Użyj `overlap::sunTime()` lub `activity::solartime()`, które zakotwiczają każdy rekord względem wschodu i zachodu słońca według daty i lokalizacji.
Którego pakietu R powinienem użyć — `overlap`, `activity` czy `camtrapR`?
Wszystkich trzech, do różnych zadań. `camtrapR` wyciąga znaczniki czasu z twoich obrazów i wytwarza tabelę rekordów oraz szybkie wykresy aktywności; `overlap` to narzędzie do porównywania dwóch gatunków przez współczynnik Δ; `activity` jest najlepszy do szacowania ogólnego poziomu aktywności z przedziałami ufności. Zwróć uwagę, że funkcje aktywności `camtrapR` używają czasu zegarowego, więc wszelką korektę na czas słoneczny zastosuj najpierw sam.
Czy mogę zaufać wzorcowi aktywności z kamer ustawionych na tropach?
Z ostrożnością. Kamery ustawione na tropach rejestrują korzystanie z tropów, a nie aktywność w ogóle, i mogą sprawić, że gatunek wyda się bardziej dzienny, niż jest — kopytne unikają tropów nocą, by wymknąć się drapieżnikom, więc kamery na tropach zaniżają ich aktywność nocną. Kamery losowe lub poza tropami dają uczciwszą krzywą; w minimalnym wariancie ujawnij, że rozmieszczenie na tropach przechyla ku porze dziennej.