Every spatial analysis — LISA, spatial regression, spatial econometrics — assumes a weights matrix W defining which places are "neighbors." The standard approach is purely geometric: queen contiguity, rook, or k-nearest neighbors based on polygon borders.
But Census data carries uncertainty. A tract's rent estimate might have a margin of error of ±$800 — or ±$3,200. That uncertainty concentrates in small-population tracts, minority enclaves, and rapidly changing neighborhoods. When you weight those tracts equally, noisy data shapes your results invisibly.
This tool tests three conditions: geometric weights, a learned GAT without MOE awareness, and a learned GAT informed by data reliability.
| Model | Spatial? | Weighted? |
|---|---|---|
| Neural Network | No — each tract independent | — |
| GNN | Yes — blends neighbors | Equally |
| GAT | Yes — blends neighbors | Learned |
A regular NN treats tract A in isolation. A GNN lets A absorb information from its neighbors — but weights them equally. A GAT learns how much each neighbor should count. Those learned percentages become W*.
Both GAT conditions here use two input features per tract: normalized rent and normalized MOE%. The difference is whether the training process gives the network a reason to act on the uncertainty signal.
| Neighbor B — low MOE | 0.250 → 0.341 |
| Neighbor C — high MOE | 0.250 → 0.087 |
| Neighbor D — low MOE | 0.250 → 0.318 |
| Neighbor E — low MOE | 0.250 → 0.254 |
ACS 5-Year 2022, U.S. Census Bureau (B25064). TIGER/Line via pygris. PyTorch Geometric · libpysal · esda · Leaflet.js.