{
  "handle": "SpatioTemporalNullModel",
  "ref": "SpatioTemporalNullModel#3576",
  "stub": "3576",
  "semaId": "sema:SpatioTemporalNullModel#mh:SHA-256:3576582815f7cac5bb54c54b13d3a0f7cdf0fab3d808480b18b96c12527ce6e5",
  "layer": "Physics",
  "category": "Dynamics",
  "gloss": "Simulate agents that move like the real ones but ignore each other, to test for social structure",
  "mechanism": "A {{null_model_baseline}} for trajectory data that keeps individual kinematics and removes coordination. From pooled tracking data estimate: (1) a two-state stationary/moving Markov chain, with an agent stationary when speed < v_min (1 px/frame) and persistence P_SS = N_SS/(N_SS+N_SM), P_SM = N_MM/(N_MM+N_MS); (2) a first-order speed-transition matrix over N_v = 30 speed bins with Laplace smoothing, P[m,n] = (T_mn + eps)/sum_l(T_ml + eps), eps = 0.01; (3) speed-conditioned turning angles, dtheta | v_i ~ N(mu_i, sigma_i^2), so slow agents turn more; (4) entry statistics (x0, y0, v0, theta0) from first appearances. Simulate agents independently: spawn at edges to match the empirical head-count timeline N_a(t), remove those that exit, switch motion state with probabilities 1-P_SS and 1-P_SM, update speed with momentum v_{t+1} = zeta v_t + (1-zeta) v_sampled (zeta = 0.6), give stationary agents U(0, 0.3) px/frame jitter to mimic tracking noise, wrap heading to [-pi, pi], and step x += v cos(theta), y += v sin(theta). Run many realisations (25 per experiment) through the same network construction. Differences that remain are evidence of interaction rules, memory or task allocation rather than motion statistics.",
  "invariants": [
    "Each synthetic agent moves independently of every other agent",
    "Marginal speed distribution, speed autocorrelation, speed-dependent turning and entry/exit timeline match the data",
    "Synthetic trajectories pass through the identical interaction and network pipeline"
  ],
  "failureModes": [
    "Pooling kinematics across behavioural regimes blurs regime-specific motion that is itself a product of coordination",
    "Unmodelled environmental drivers (pheromone fields, food, boundaries) let the null miss structure that is not social",
    "Too few realisations to estimate the null distribution of the measure"
  ],
  "ring": 2,
  "tier": 1,
  "aliases": {
    "null_model_baseline": "NullModelBaseline"
  },
  "buildsOn": [
    {
      "handle": "NullModelBaseline",
      "type": "references",
      "alias": "null_model_baseline",
      "url": "/knowledge-graph/NullModelBaseline/",
      "json": "/knowledge-graph/NullModelBaseline.json"
    }
  ],
  "usedBy": [
    {
      "handle": "InteractionSequenceEntropySignature",
      "type": "references",
      "alias": "kinematic_null",
      "url": "/knowledge-graph/InteractionSequenceEntropySignature/",
      "json": "/knowledge-graph/InteractionSequenceEntropySignature.json"
    }
  ],
  "sources": {
    "research": [],
    "works": [
      {
        "kind": "thesis",
        "label": "Kevin Do, PhD thesis on ant collective behaviour (NCSU, 2026)",
        "note": "Ch. 3.1.2 'Spatio-Temporal Null Model', Eqs. 3.11-3.21; Fig. 4.5",
        "url": ""
      }
    ],
    "homePage": false
  },
  "url": "/knowledge-graph/SpatioTemporalNullModel/",
  "graphUrl": "/knowledge-graph#SpatioTemporalNullModel",
  "directory": "/knowledge-graph/patterns.json"
}
