π§ͺ Tectonic Risk Validation β Hypothesis Rejected
Empirical test using 10 real Bangkok sinkhole sites vs 1,000 random control points. All data real. No fabrication.
β VERDICT: Fault Proximity Does NOT Predict Bangkok Sinkholes
p = 0.45 (Mann-Whitney U test). Not statistically significant. The 10 real sinkhole sites are NOT closer to fault traces than random points in Bangkok. Point-level fault distance has zero predictive power in Bangkok.
1. The Test
| Element | Description |
| Test group | 10 real Bangkok sinkhole incidents (Din Daeng, Lat Phrao, Bang Kapi, Ramkhamhaeng, Sukhumvit, Sathon, Ratchadaphisek, Bang Sue, Chatuchak, Khlong Toei) |
| Control group | 1,000 random points uniformly distributed within Bangkok bounding box (100.40β100.70Β°E, 13.65β13.90Β°N) |
| Metric | Minimum distance (km) from each point to nearest GEM-mapped fault trace within Thailand region |
| Test | Mann-Whitney U (non-parametric, doesn't assume normal distribution) |
| Fault source | GEM Global Active Faults Database β 4,232 coordinate points in Thailand region |
| Null hypothesis | Sinkhole sites are no closer to faults than random Bangkok locations |
2. Results
120.8
Sinkhole Mean Distance (km)
118.6
Random Mean Distance (km)
0.45
p-value (needs <0.05)
0.024
Effect Size (negligible)
3. Per-Site Distances
| Site | District | Lat, Lon | Fault Distance |
| 1 | Bang Sue | 13.810, 100.527 | 114.9 km |
| 2 | Sathon | 13.720, 100.529 | 117.6 km |
| 3 | Din Daeng | 13.769, 100.552 | 118.5 km |
| 4 | Chatuchak | 13.803, 100.560 | 118.5 km |
| 5 | Ratchadaphisek | 13.786, 100.570 | 120.0 km |
| 6 | Sukhumvit | 13.738, 100.561 | 120.3 km |
| 7 | Khlong Toei | 13.713, 100.558 | 120.8 km |
| 8 | Lat Phrao | 13.803, 100.614 | 124.2 km |
| 9 | Ramkhamhaeng | 13.753, 100.607 | 124.7 km |
| 10 | Bang Kapi | 13.762, 100.642 | 128.2 km |
Observation: Range is only 114.9β128.2 km β just 13.3 km spread across all 10 sites. Every point in Bangkok sits at essentially the same distance from the basin-bounding faults. This makes fault proximity useless as a point-level discriminator.
4. Why It Failed
| Reason | Explanation |
| Faults are at basin edge, not in the city |
The 18 CPFZ fault traces mapped within 200 km of Bangkok are basin-bounding faults β they define the edge of the Chao Phraya Basin. All of central Bangkok is 110β130 km from them. There is no meaningful spatial variation within the city. |
| GEM database only has major faults |
The GEM GAF-DB maps faults at regional/global scale. It doesn't include smaller intra-basin lineaments β the subsurface fractures that DMR's airborne geophysics discovered WITHIN the Central Plain. Those micro-faults might be relevant but aren't in open data. |
| City-scale causes dominate |
Bangkok sinkholes are triggered by local factors: pipe leakage, construction, groundwater pumping, soft clay consolidation. These vary at the street/block level, not at the 100+ km basin scale. |
5. What IS Actually Useful from the Tectonic Research
The fault-controlled basin does matter β but as a systemic factor, not a point-proximity factor:
| What works | How to use it |
| Basin = sinkhole-prone everywhere |
All of Bangkok sits in a fault-block basin with soft marine clay over deep aquifers. This is a city-wide constant β it explains WHY Bangkok has sinkholes at all, but doesn't tell you WHERE. |
| Differential subsidence along fault blocks |
If we can intersect InSAR subsidence with the 18 CPFZ fault traces, blocks settling at different rates might reveal active fracture zones. This is a different analysis β not "distance to fault" but "change in subsidence rate across fault." Requires running the InSARΓfaults computation. |
| Earthquake-triggered sinkholes |
Only 1 M3+ quake within 200 km of BKK in 26 years. This factor is irrelevant for Bangkok β the city is seismically quiet. |
| Regional applicability |
If SinkAlert expands to Kanchanaburi, Tak, or Chiang Rai (areas crossed by active faults like Three Pagodas and Mae Chan), fault proximity WOULD matter because those faults are WITHIN populated areas. Bangkok is the exception β the faults are 100+ km away. |
6. What We're Keeping vs Discarding
| Factor | Decision | Reason |
| fβ β Point distance to fault | DISCARDED | p = 0.45 β no predictive power in Bangkok |
| fβ β Local earthquake density | DISCARDED | Only 1 quake in 26 years near BKK β zero signal |
| fβ β Fault slip rate | DISCARDED | Data missing for Thailand in GEM; no variation within BKK anyway |
| fβ β Differential subsidence across faults | PENDING | Theoretically sound but needs InSARΓfault intersection computation β not yet tested |
| fβ
β Fault slip type | DISCARDED | All Bangkok-proximate faults are dextral strike-slip β no variation, no signal |
| fβ β GW extraction rate | PENDING | Already partially captured by InSAR subsidence. DGR well data would refine. |
| fβ β Fracture zone mask | DISCARDED | 500 m buffer around faults 100+ km away has zero effect on city-center points |
7. What We Actually Learned
- Good science means publishing negative results. The research was thorough, the data was real, the test was rigorous β and the hypothesis was rejected. That's valuable. It prevents wasting time building a feature that doesn't work.
- The basin IS fault-controlled β but at the basin scale. The Chao Phraya Fault Zone created the geological conditions that make Bangkok sinkhole-prone. That's a basin-level explanation, not a point-level predictor.
- Bangkok's insulation from active faults is a feature, not a bug. Unlike Tokyo, Istanbul, or Los Angeles, Bangkok's sinkholes are NOT fault-triggered. They're hydrogeological β pipe leakage + soft clay + groundwater pumping. That's where the model should focus.
- For regional expansion, this analysis becomes valuable. If SinkAlert covers Chiang Rai or Kanchanaburi β where active faults run through populated areas β re-run this test with those locations.
8. Data Provenance
| Source | What | Verified |
| GEM GAF-DB | gem_active_faults.geojson (11.7 MB, 16,195 features worldwide) | β
Downloaded 2026-07-19 |
| GEM GAF-DB (Thailand extract) | 194 fault traces, 4,232 coordinate points | β
Extracted 2026-07-19 |
| SinkAlert real incidents | sinkalert_bangkok_real.csv β 10 verified sinkhole sites with district names | β
Existing SinkAlert data |
| Random control points | 1,000 uniform-random points in Bangkok bbox (seed=42) | β
Generated for this test |
| Statistical method | Mann-Whitney U (scipy-compatible manual implementation) | β
Standard non-parametric test |
β Tectonic Research |
β Risk Score v2 (proposed β see what was discarded) |
SinkAlert Dashboard