WV-parel sticky traps — interim analysis

Project 0043_wf-wvparel · export all_2026-09-28_0124 (catalogue 2026-09-28 01:24) · generated 2026-09-28

Key findings

Data & design

Scope: sticky traps from the main design only (plasdras-pilot excluded). Traps marked missing are dropped. Each card = one trap position × round (r1–r3) × year, with 2 days in the field. Positions 1–5 are 1, 20, 40, 60 and 80 m from the ditch edge.

Two parallel analyses:

trackyearcardsanimalsanimals / cardto orderto family unit
manual2,02434042,988126.4493%27%
manual2,02533346,444139.4794%34%
model2,02434043,267127.2699%69%
model2,02533347,114141.4899%75%
model2,02633458,588175.4199%77%

Cards per location × beheer × year

locatiebeheer202420252026
LOLparel454345
LOLgangbaar454545
SKRparel404540
SKRontwikkeling454040
SKRgangbaar454545
TWDparel454044
TWDontwikkeling303030
TWDgangbaar454545

Unbalanced design: Lollum has no ontwikkeling plots, and Tjerkwerd has two. Location is a fixed effect, so beheer contrasts compare within locations.

Composition: class / order / family

Share of animals per order, by beheer and year. “not resolved” = label above order (e.g. Insecta).
Share of animals per order, by beheer and year. “not resolved” = label above order (e.g. Insecta).

Diptera make up 55–80% of the catch in every group; Hymenoptera come second. The full mean-per-card tables for class, order and family (both tracks, beheer × year) are in out/tables/mean_per_card_by_taxon_beheer_year.csv.

order (model) — mean per card2024_gangbaar2024_ontwikkeling2024_parel2025_gangbaar2025_ontwikkeling2025_parel2026_gangbaar2026_ontwikkeling2026_parel
Diptera90.276.6110.998.982.486.2165.1118.6119.3
Hymenoptera25.515.220.420.239.126.014.112.421.0
Thysanoptera3.74.85.66.08.45.75.77.15.8
Hemiptera1.81.53.63.77.46.15.857.2
Araneae0.90.60.46.12.94.73.16.02.2
Coleoptera1.50.51.01.71.41.84.52.12.8
(not resolved to order)1.00.90.81.22.41.01.11.01.2
Megaloptera0.60.90.52.22.12.10.90.30.3
Lepidoptera0.20.20.41.61.62.10.40.30.2
Neuroptera0.00.00.00.81.40.10.10.20.1

Abundance, biomass and body size

Estimates are marginal means from the GLMM (averaged over location, round and distance). The beheer × year and beheer × distance panels come from models that include that interaction.

Beheer × year: animals, estimated dry biomass, family richness and family Hill q1 per card (95% CI).
Beheer × year: animals, estimated dry biomass, family richness and family Hill q1 per card (95% CI).
Distance from ditch edge × beheer (95% CI). The step between 1 m and 20 m dominates.
Distance from ditch edge × beheer (95% CI). The step between 1 m and 20 m dominates.
Mean animals per card per body-length class (model length), by beheer and year.
Mean animals per card per body-length class (model length), by beheer and year.

Biomass and length classes are model-track only. Every body length, on human and detector boxes alike, comes from the body-length model; a “manual” biomass would repeat the model-track numbers with a slightly different set of animals, so it is not reported. Biomass is estimated per object from the model body length with the general insect length–dry-mass relation of Rogers et al. (1976), W(mg) = 0.0305 · L(mm)^2.62. It is a relative index: treat the ratios as meaningful and the absolute mg values as rough.

Biodiversity (family level)

The unit is the family, with two exceptions (†): Ichneumonoidea and Chalcidoidea are each one superfamily-level unit. Every object resolved to at least that superfamily counts in it, except the families the model does separate (Braconidae, Mymaridae, Torymidae). Family richness and Hill q1 per card count only objects resolved to a unit. Human labels reach a unit for only ~27–34% of animals, so manual-track diversity reflects annotation effort much more than the insects themselves.

Rarefaction / extrapolation curves

Hill numbers (q0 = richness, q1 = exp(Shannon), q2 = inverse Simpson) as the number of family-resolved animals grows (iNEXT, 100 bootstraps). Solid lines are rarefied, the dot is the observed sample and dashes are extrapolated to twice the sample. q1 and q2 level off almost immediately, so they are well estimated. q0 is still rising at the observed sample: rare families keep being added, and richness comparisons only hold at a common coverage (below).

Sample-size-based rarefaction (solid) and extrapolation (dashed) curves per beheer, per track × year (95% CI).
Sample-size-based rarefaction (solid) and extrapolation (dashed) curves per beheer, per track × year (95% CI).
Coverage-based curves: the same Hill numbers against sample coverage (95–100%).
Coverage-based curves: the same Hill numbers against sample coverage (95–100%).

Diversity at a common coverage (98%)

Pooled family diversity per beheer × year at 98% sample coverage (95% CI, 200 bootstraps).
Pooled family diversity per beheer × year at 98% sample coverage (95% CI, 200 bootstraps).

Why 98%: the smallest group (manual, 2024, ontwikkeling: 1,393 animals, 13 families seen once) reaches only 99.1% observed coverage. At a 99% target it sat right at its own coverage, so bootstrap replicates flipped between rarefaction and extrapolation and the q0 interval blew up (roughly 26–85 families). At 98% every group is well inside rarefaction.

With the model labels: q0 (richness) hardly differs between beheer types. q1 and q2 (weighted towards common families) are highest in parel in 2024 and 2025. In 2026 parel and ontwikkeling are equal, and gangbaar is clearly the least even (dominated by a few families).

Family composition per plot × year (NMDS). Years separate strongly; beheer separates within a year.
Family composition per plot × year (NMDS). Years separate strongly; beheer separates within a year.
trackunittermDfR2Fp
manualplot x yearlocatie20.0843.2390.001
manualplot x yearbeheer20.0923.5430.002
manualplot x yearyear10.30423.3630.001
manualplot x yearResidual400.521––
manualtrap x year (within plot-year)Model40.0523.1160.001
manualtrap x year (within plot-year)Residual2250.948––
modelplot x yearlocatie20.0543.4550.001
modelplot x yearbeheer20.0835.2870.001
modelplot x yearyear20.37623.8860.001
modelplot x yearResidual620.488––
modeltrap x year (within plot-year)Model40.0393.4260.001
modeltrap x year (within plot-year)Residual3400.961––

PERMANOVA on Hellinger-transformed family counts. Plot × year level: marginal tests for locatie, beheer and year. Distance: trap × year totals, permuted within plot-year.

All effects at a glance

Ratios are estimated from the GLMM, each relative to its reference level. Blue = higher, red = lower; a cell is shaded only when that term is significant after Benjamini–Hochberg correction (across responses within a track). Hover a cell for the 95% CI. “≈0” / “n.e.” = zero counts in one level (e.g. Megaloptera at 80 m, or manual family labels that were not used in 2024).

Manual labels · 2024–25Model labels · 2024–26
ResponseGroupontw./parelgangb./parel2025/20242026/202480 m / 1 mbeheer × year pbeheer × dist pontw./parelgangb./parel2025/20242026/202480 m / 1 mbeheer × year pbeheer × dist p
All animalstotal0.840.991.03·0.630.0010.9810.911.091.031.010.63<0.0011.000
Biomass (mg dry)biomass·····––0.830.812.501.610.49<0.0011.000
Length 1-4 mmsize class·····––0.941.180.850.910.68<0.0011.000
Length 4-8 mmsize class·····––0.600.583.493.140.660.0041.000
Length 8-12 mmsize class·····––1.090.841.921.520.310.3701.000
Length < 1 mmsize class·····––1.111.310.980.710.560.0111.000
Length >= 12 mmsize class·····––1.090.923.431.370.360.0671.000
Family Hill q1diversity1.071.001.54·0.800.2290.8750.980.961.160.850.880.2161.000
Family richnessdiversity0.981.011.55·0.730.5340.9810.940.991.150.980.820.0211.000
Arachnidaclass1.371.784.64·2.860.0240.7641.851.524.754.353.37<0.0011.000
Insectaclass0.840.990.99·0.610.0010.9810.901.100.990.980.60<0.0011.000
Araneaeorder1.401.824.78·2.890.0190.7091.851.524.744.333.39<0.0011.000
Coleopteraorder0.651.231.72·0.950.1110.9530.711.291.732.450.960.1861.000
Dipteraorder0.810.980.98·0.740.003–0.851.130.901.100.63<0.0011.000
Hemipteraorder0.880.731.99·0.620.0190.9530.860.792.031.150.470.0211.000
Hymenopteraorder1.091.071.02·0.66<0.0010.6820.960.961.000.340.62<0.0011.000
Lepidopteraorder1.030.6614.89·0.871.0000.9531.070.8017.902.140.890.1491.000
Megalopteraorder0.620.844.57·≈00.0520.3800.651.263.810.93≈0–0.375
Neuropteraorder9.604.72n.e.·0.960.1600.9814.923.40n.e.n.e.1.330.1861.000
Thysanopteraorder1.581.031.58·0.680.0020.7091.560.992.240.830.600.0361.000
Chalcidoidea (superfamily) †family1.000.601.05·0.540.0030.9810.980.611.690.450.59<0.0011.000
Chironomidaefamily1.000.991.78·0.560.5340.1901.050.821.121.170.420.1220.020
Chloropidaefamily1.883.89n.e.·0.761.0000.4061.292.241.902.221.09<0.0011.000
Cicadellidaefamily0.920.363.18·0.620.0310.9530.770.472.871.380.660.0691.000
Dolichopodidaefamily0.460.086.42·0.750.0710.3800.320.221.551.600.76<0.0010.429
Ichneumonoidea (superfamily) †family0.881.240.62·0.71<0.0010.1900.901.120.660.190.63<0.0010.708
Muscidaefamily0.610.4511.52·0.510.0950.9530.530.760.891.060.90<0.0010.429
Phoridaefamily2.193.9725.50·0.320.2780.7001.252.881.941.570.53<0.0010.860
Psychodidaefamily1.151.110.26·0.610.0150.8400.960.950.300.310.550.0291.000
Scathophagidaefamily0.591.182.71·0.62<0.0010.9810.581.122.350.160.60<0.0011.000
Sciaridaefamily0.831.492.35·0.480.0940.5070.971.453.006.870.48<0.0011.000
Sialidaefamily0.620.844.57·≈00.0520.3800.651.263.810.93≈0–0.375
Sphaeroceridaefamily1.863.960.67·0.750.0030.7090.731.330.260.400.85<0.0010.860
Syrphidaefamily2.180.961.27·0.520.7650.7091.410.740.970.810.620.0250.375

† Analysed at superfamily level (see Biodiversity and the manual-vs-model section). Families: top 10 of each track. Biomass and length classes: model track only. Manual-track family counts inherit annotation depth, which differs between years.

Manual vs model labels (2024–25)

Both labels sit on the same boxes, so this compares classification only. Test cards were never seen in classifier training and give the clean estimate. Train/val cards were used for training and are shown for contrast. The human label is the reference at the rank the annotator chose; anything the model adds below that cannot be checked directly.

Outcome per object: exact match, model deeper (consistent), model shallower, conflicts, geen-dier mismatches.
Outcome per object: exact match, model deeper (consistent), model shallower, conflicts, geen-dier mismatches.
outcometestvaltrain
same taxon35.935.234.6
model deeper, same branch60.158.960.9
model shallower, same branch0.70.80.7
conflict below order1.31.31.0
conflict at order or above1.12.31.4
human geen-dier, model animal0.81.21.2
model geen-dier, human animal0.20.20.1
other (no model answer / unknown)0.00.10.1

Agreement when both answered the same rank

ranktest %test nval %val ntrain %train n
class99.98,05499.815,02199.866,198
order98.97,67797.613,97398.661,622
suborder98.26,80197.212,61498.254,840
superfamily98.82,43298.54,87499.020,172
family98.51,98898.73,54299.215,119
genus98.771698.81,00899.54,216
species99.058498.277699.43,225

Test performance is as high as on train/val (98–99% at every rank). The model generalises to new cards from the same sites and years; there is no sign of overfitting to the training cards.

Among objects the annotator resolved to a rank: model agrees, is not that deep, disagrees, or says geen-dier.
Among objects the annotator resolved to a rank: model agrees, is not that deep, disagrees, or says geen-dier.
Order-level confusion on test cards (row % of the human order).
Order-level confusion on test cards (row % of the human order).

Counts per card

Per-card counts: human vs model, per order (same boxes).
Per-card counts: human vs model, per order (same boxes).
leveltaxoncardssethumanmodelmodel/humanspearman
totalall animals64test (unseen)8,0738,1181.0060.999
totalall animals608train + val (seen)81,35982,2621.0111.000
classArachnida64test (unseen)14014010.969
classArachnida608train + val (seen)1,6671,7051.0230.984
classCollembola608train + val (seen)431192.7670.449
classInsecta64test (unseen)7,9277,9741.0061.000
classInsecta608train + val (seen)79,61380,4381.0101.000
orderAraneae64test (unseen)1351401.0370.942
orderAraneae608train + val (seen)1,6451,7021.0350.987
orderColeoptera64test (unseen)60611.0170.999
orderColeoptera608train + val (seen)8548661.0140.970
orderDiptera64test (unseen)5,7735,9101.0240.996
orderDiptera608train + val (seen)54,60456,5891.0360.997
orderHemiptera64test (unseen)1992231.1210.947
orderHemiptera608train + val (seen)2,2402,3931.0680.959
orderHymenoptera64test (unseen)1,0361,1551.1150.991
orderHymenoptera608train + val (seen)13,01314,8831.1440.989
orderLepidoptera64test (unseen)42431.0240.997
orderLepidoptera608train + val (seen)5966321.0600.981
orderMegaloptera64test (unseen)2162191.0141.000
orderMegaloptera608train + val (seen)6846981.0200.980
orderNeuroptera64test (unseen)171711
orderNeuroptera608train + val (seen)2082101.0101.000
orderOdonata608train + val (seen)1011071.0590.962
orderPsocodea608train + val (seen)14191.3570.757
orderThysanoptera64test (unseen)2123061.4430.947
orderThysanoptera608train + val (seen)1,9393,4181.7630.880

Family richness per card: humans 7.7 vs model 16.2 families on test cards (Spearman 0.66). Humans record fewer families because most of their labels stop above family, not because the model invents families.

How deep does each go?

yearsplithuman → ordermodel → orderhuman → familymodel → family
2,024test94%99%19%68%
2,024val93%99%21%71%
2,024train93%99%18%67%
2,025test96%99%30%71%
2,025val94%99%27%67%
2,025train94%99%28%69%

Is “model deeper” right?

Three indirect checks, since there is no human label below the annotator’s rank:

  1. Calibration. On test objects that people did label to family, model family calls are 98.5% correct, and still ≥88% in every score bin. Applying that score-to-accuracy curve to the 3,570 unverifiable deeper family calls on test cards gives an expected ~95% correct. This is an upper bound: people stopped early on exactly the harder objects.
  2. Score distribution. Deeper calls have lower scores than verifiable ones (right panel below), which fits them being harder.
  3. Training support. For each family the model assigns in a deeper call, the table counts how many family-level human labels existed on this project’s training cards. Families with no support here (Ichneumonidae, Chalcididae, Mymaridae, Agromyzidae, Anthomyiidae) are learnt only from other datasets, or are a default child of the superfamily, and cannot be checked locally.
Left: family accuracy vs model score on verifiable objects. Right: score distribution of verifiable vs deeper family calls.
Left: family accuracy vs model score on verifiable objects. Right: score distribution of verifiable vs deeper family calls.
model familydeeper calls (test)mean scoretrain cards: human family labelstest precision*flag
Ichneumonidae5730.940–few training examples (<25)
Muscidae4450.723010.96
Sphaeroceridae3080.863721
Psychodidae2780.922,5590.99
Phoridae2730.851,1730.99
Sciaridae2730.912751
Chloropidae2630.83891
Chironomidae1950.861,6281.00
Sepsidae1880.822831
Chalcididae1850.800–few training examples (<25)
Anthomyiidae1360.724–few training examples (<25)
Agromyzidae1080.926–few training examples (<25)
Lonchopteridae520.82621
Tipulidae450.972070.92
Mymaridae310.940–few training examples (<25)

* Test precision is computed on objects that both labelled to family; empty where people never used that family.

Suspect deep calls. Ichneumonoidea → Ichneumonidae: the model almost never outputs Braconidae (5 objects vs 9,960 Ichneumonidae), although braconids are usually common on yellow traps. Chalcidoidea → Chalcididae: Chalcididae is generally a minor family on sticky traps. Both look like collapse onto a default child rather than true family recognition. Brachycera → Muscidae / Anthomyiidae also has low scores (mean ≈ 0.72). In the ecology sections Ichneumonoidea and Chalcidoidea are therefore analysed at superfamily level. The Muscidae / Anthomyiidae calls are kept but should be checked before being reported.

Most common deeper assignments (test cards)

human labelmodel labelnmean score
BrachyceraMuscidae4420.72
IchneumonoideaIchneumonidae4110.95
BrachyceraSphaeroceridae3070.86
BrachyceraChloropidae2590.83
NematoceraSciaridae2450.91
BrachyceraPhoridae2380.83
BrachyceraSepsidae1870.82
NematoceraPsychodidae1750.91
NematoceraChironomidae1700.86
Apocrita(superfamily) Chalcidoidea1630.86
Brachycera(superfamily) Muscoidea1550.70
ApocritaIchneumonidae1410.92

Methods & caveats

Scripts: analysis/R/00_prepare.R → 01_ecology.R → 02_manual_vs_model.R → 03_report.R. All tables in analysis/out/tables/ (mvm_* = manual vs model), figures in analysis/out/figures/.