Spatial Statistics & Ecology
Clark-Evans Nearest-Neighbor Dispersion Index (R) and Z-Score
Classify point patterns as Clustered (R < 1), Random Poisson CSR (R = 1), or Regular Lattice (up to R = 2.1491) using Clark and Evans’s (1954) nearest-neighbor formula.
Benchmark observed nearest-neighbor distances against Complete Spatial Randomness
Given N mapped events inside study area A (density lambda_d = N / A), Clark and Evans (1954) proved that under a homogeneous 2D Poisson process (Complete Spatial Randomness, CSR), the expected distance from a point to its nearest neighbor is r_exp = 1 / (2 * SQRT(lambda_d)), with standard error SE_r = 0.26136 / SQRT(N * lambda_d). Dividing observed mean nearest-neighbor distance r_obs by r_exp yields the dimensionless dispersion ratio R = r_obs / r_exp!
Verify the three canonical spatial regimes on N = 100 trees (B2) inside a 200m x 200m plot (A = 40,000 m^2 in B3, density lambda_d = 0.0025 m^-2): expected random spacing is r_exp = 1 / (2 * 0.05) = 10.0000 m and SE_r = 0.26136 / 0.50 = 0.5227 m. At observed r_obs = 6.50 m (B4), R = 0.6500 (< 1, clustered) with Z = (6.50 - 10.00) / 0.52272 = -6.6957; at r_obs = 10.00 m, R = 1.0000 (CSR); and under perfect hexagonal packing (r_obs = 21.4914 m), R reaches its theoretical 2D ceiling 2.1491!
| Point-Pattern Regime | Index Value R = r_obs / r_exp | Ecological / Retail Interpretation |
|---|---|---|
| Complete Coincidence | R = 0.0000 | All points stacked on identical coordinates |
| Clustered Aggregation | 0 < R < 1.0000 (e.g., 0.6500) | Contagion, habitat patches, or retail agglomeration |
| Complete Spatial Randomness (CSR) | R = 1.0000 (Z = 0) | Independent 2D Poisson point process |
| Hexagonal Lattice Ceiling | R = 2.1491 | Maximum territorial or plantation spacing |
Clark-Evans Dispersion Ratio R = 2 * r_obs * SQRT(N / A) Formula
Compute density lambda_d = N / A and r_exp = 1 / (2 * SQRT(lambda_d)) inside LET, guarding against N < 2, non-positive area, or r_obs exceeding the geometric packing ceiling.
=LET(n_pts, B2, area_a, B3, r_obs, B4, IF(OR(n_pts < 2, area_a <= 0, r_obs < 0), "Invalid Spatial Input", LET(lam_d, n_pts / area_a, r_exp, 1 / (2 * SQRT(lam_d)), ROUND(r_obs / r_exp, 4))))CSR Hypothesis Test Z-Score = (r_obs - r_exp) / (0.26136 / SQRT(N * lambda_d)) Formula
Note that without Donnelly edge correction, points near an unbuffered study boundary have slightly inflated nearest-neighbor distances — keep a guardrail note when N is small.
=LET(n_pts, B2, area_a, B3, r_obs, B4, IF(OR(n_pts < 2, area_a <= 0, r_obs < 0), "Invalid Spatial Input", LET(lam_d, n_pts / area_a, r_exp, 1 / (2 * SQRT(lam_d)), se_r, 0.26136 / SQRT(n_pts * lam_d), ROUND((r_obs - r_exp) / se_r, 4))))Try the example
Use the original values or change them to test your understanding.