Causal Inference Methods for Geospatial OSINT Data
An analyst discovers that counties with more EPA-registered polluting facilities have higher rates of childhood asthma. A journalist finds that congressional districts whose representatives received energy industry donations are more likely to have weakened environmental regulations. A researcher notices that regions where fishing enforcement patrols decreased saw an increase in illegal trawling activity.
Each of these is a correlation. None of them, as stated, is a causal claim. The gap between "X is associated with Y" and "X causes Y" is where intelligence analysis either becomes rigorous or collapses into confirmation bias. This article covers four statistical methods for bridging that gap, each with real OSINT applications and the assumptions you need to check before trusting the results.
Why Correlation Fails in Intelligence Analysis
Correlation is easy to find in geospatial data because most variables are correlated with geography itself. Wealthy areas have lower pollution, better health outcomes, more police, less crime, better schools, and more Whole Foods locations. Finding that any two of these variables are correlated tells you almost nothing about causation — they're all driven by the underlying spatial distribution of wealth.
This is the problem of confounding: a third variable (wealth, population density, climate, governance quality) drives both the supposed cause and the supposed effect. Without addressing confounders, every analysis is suspect. The four methods below each address confounding in a different way.
Method 1: Granger Causality
The Idea
Granger causality doesn't prove true causation — it tests whether one time series helps predict another. If past values of X improve predictions of Y beyond what past values of Y alone provide, then X "Granger-causes" Y. The key insight is temporal: causes precede effects. If changes in X consistently precede changes in Y, the causal direction is at least constrained.
OSINT Application: Does Pollution Predict Health Outcomes?
Consider a county where an industrial facility increases toxic releases over a two-year period. Monthly air quality measurements (from EPA monitoring stations or PurpleAir sensors) provide the X time series. Emergency room admissions for respiratory conditions (from public health datasets) provide the Y time series. A Granger causality test with lags of 1-6 months asks: do elevated pollution readings in month T predict elevated ER admissions in months T+1 through T+6, beyond what the ER admission history alone would predict?
In Deep Seer, we use this approach in our TemporalRegressionEngine to assess whether changes in environmental conditions — pollution spikes, water quality degradation, permit violations — predict downstream health outcomes in nearby populations.
When It Fails
Granger causality assumes stationarity (the statistical properties of the time series don't change over time) and that no omitted variable drives both series. If both pollution and health outcomes are trending upward due to population growth, the test may find a spurious Granger-causal relationship. Always test for stationarity first (ADF test) and difference the series if needed.
Method 2: Difference-in-Differences
The Idea
Difference-in-differences (DiD) is the workhorse of policy evaluation. It compares the change in an outcome between a treatment group and a control group before and after an intervention. The "first difference" is the change over time. The "second difference" subtracts the control group's change from the treatment group's change, isolating the effect of the intervention from any background trend affecting both groups.
OSINT Application: Did a Regulation Change Behavior?
Suppose a state tightens emissions regulations for chemical plants. The treatment group is facilities in that state; the control group is comparable facilities in neighboring states that didn't change their regulations. Measure toxic releases (from EPA TRI data) before and after the regulation change for both groups. The DiD estimate tells you how much the regulation reduced emissions beyond whatever trend was already happening industry-wide.
This method is directly implemented in Deep Seer's RegulatoryDeltaEngine, which tracks regulatory changes from Regulations.gov and correlates them with measurable outcomes in our environmental and compliance datasets. When a rule change occurs, the system automatically identifies treatment and control groups and estimates the causal effect.
When It Fails
DiD requires the "parallel trends" assumption: absent the intervention, the treatment and control groups would have followed the same trajectory. If the state that tightened regulations was already on a downward emissions trend (perhaps due to plant closures), DiD will overestimate the regulation's effect. Always plot pre-treatment trends for both groups and verify they're parallel. If they're not, the estimate is biased.
Method 3: Regression Discontinuity
The Idea
Regression discontinuity (RD) exploits situations where treatment is assigned based on a threshold. If a variable crosses a cutoff, something changes — a regulation kicks in, a classification changes, a resource is allocated. By comparing observations just above and just below the threshold, you get a quasi-experimental estimate of the treatment effect, because observations near the cutoff are essentially randomly assigned to treatment or control.
OSINT Application: Threshold Effects in Environmental Regulation
EPA regulations often trigger at specific thresholds. Facilities that release more than a certain tonnage of a chemical must report to the Toxics Release Inventory. Facilities above a certain hazard score receive more frequent inspections. Cities above population thresholds qualify for different environmental monitoring requirements.
An RD design compares facilities just above and just below these thresholds. Do facilities that barely trigger TRI reporting requirements show different behavior than facilities just below the threshold? If reporting requirements have a causal effect on behavior (the "spotlight effect"), you'll see a discontinuous jump in outcomes right at the cutoff.
This is what Deep Seer's CounterfactualEngine explores: given a threshold-based intervention, what is the observable difference on either side of the threshold, and is it statistically distinguishable from the background variation?
When It Fails
RD requires that entities cannot precisely manipulate their position relative to the threshold. If facilities can strategically report emissions just below the TRI threshold to avoid scrutiny, the observations near the cutoff are no longer quasi-random — they're self-selected. Check for "bunching" just below the threshold, which indicates manipulation. Also, RD estimates are local — they apply only to entities near the threshold, not to the general population.
Method 4: Synthetic Control
The Idea
Synthetic control constructs a counterfactual: what would have happened to the treated unit if the intervention hadn't occurred? It does this by building a weighted combination of untreated units that closely matches the treated unit's pre-intervention trajectory. The post-intervention divergence between the treated unit and its synthetic control estimates the causal effect.
OSINT Application: Conflict and Displacement
When armed conflict begins in a region, population displacement follows. But how much displacement is caused by the conflict versus other factors (economic conditions, seasonal migration, drought)? A synthetic control approach constructs a "synthetic version" of the affected region using a weighted combination of similar regions that didn't experience conflict. The weights are chosen so that the synthetic control matches the affected region's pre-conflict demographics, economic indicators, and migration patterns.
After conflict onset, the gap between the actual region's population/economic indicators and the synthetic control's trajectory estimates the causal impact of the conflict. This approach has been used by researchers studying the economic impact of the Syrian civil war, the displacement effects of the Rohingya crisis, and the economic consequences of the Russia-Ukraine conflict on neighboring countries.
Deep Seer implements this in its CounterfactualEngine, which allows analysts to select a region and event, and the system automatically constructs a synthetic control from comparable regions to estimate what would have happened in the absence of the event.
When It Fails
Synthetic control requires a good pre-intervention fit — the synthetic version must closely track the treated unit before the event. If no combination of control units can reproduce the pre-intervention trajectory, the method doesn't work. It also requires that control units are genuinely unaffected by the intervention. If conflict in one region causes economic spillovers to neighboring regions used as controls, the estimated effect is biased downward.
Putting It Together: A Framework for OSINT Causal Analysis
No single method works for every question. The choice depends on your data structure:
- Time series data, no clear intervention: Start with Granger causality. Does X predict Y over time?
- Clear intervention date, treatment and control groups available: Use difference-in-differences. What changed after the intervention, relative to the control?
- Treatment assigned by a threshold: Use regression discontinuity. What happens at the cutoff?
- Single treated unit, multiple potential controls: Use synthetic control. What would have happened without the intervention?
In every case, the method requires assumptions that must be tested, not assumed. Parallel trends must be verified, not asserted. Stationarity must be tested, not hoped for. Threshold manipulation must be checked, not ignored. The strength of causal inference is that it makes these assumptions explicit, so they can be scrutinized and challenged.
Intelligence analysis has historically relied on narrative reasoning — "this happened, then that happened, therefore this caused that." Causal inference methods don't replace narrative reasoning, but they discipline it. They force the analyst to specify the counterfactual (what would have happened otherwise?), identify the confounders (what else could explain this?), and quantify the uncertainty (how confident are we?).
The difference between "these two things happen in the same place" and "this thing causes that thing" is not a matter of confidence — it's a matter of method. Correlation is a starting point. Causal inference is the work that follows.