Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

03c — Step 3: robustness checks (Colombia)

LifeWatch ERIC

Every variant reuses the step-2 samples (same training draw, same validation set, same prediction grid) and the step-2 random-forest settings. Each is compared with the step-2 baseline.

  • (a) Land cover before the outcome period. Train with ESA CCI 1992 or 1999 instead of 2000 (Evaluator 1: use predictors observed before 2000). Prediction still uses 2015 land cover, as in the paper.

  • (b) Spatial validation. 5-fold cross-validation on the training pool, random folds vs folds grouped by HEALPix cell (WGS84) at depths 6, 7, 8 (~110, ~55, ~27 km). Accuracy of the step-2 model on the validation set by distance to the nearest training point (0.5 km bins, as in the paper).

  • (c) Variable selection as in the paper, with and without the three predictors recorded during the outcome period (NPP 2000–2015, burned area 2001–2017, road density from GRIP4): rank by permutation mean decrease in accuracy over 10 balanced fits, then add variables one at a time.

  • (d) Gradient boosting (HistGradientBoostingClassifier, native categorical splits) on the step-2 predictors.

  • (e) Climate-source SENSITIVITY check (not a fix): bioclim PC1–PC4 from CHELSA v2.1 (1981–2010) instead of WorldClim v2.1 (1970–2000), same PCA procedure and sample points (02_data_clean). CHELSA’s period overlaps the 2000–2012 outcome period.

Areas use exact WGS84 pixel areas on the 1-in-100 grid; calibrated areas use the step-2 prior-shift correction with the same prevalence π.

variants: de | smoke: False
151980 pool; 39522 train; 123356 validation; pi = 0.016444001176786186

Baseline (step 2) and (a) pre-2000 land cover

The baseline row is refitted in both rules so each output table is self-contained.

{'variant': 'baseline_step2', 'n_vars': 10, 'n_train': 39522, 'n_val': 123356, 'oob_accuracy': 0.8844, 'validation_accuracy': 0.8867, 'expected_uncal_mha': np.float64(3.9887), 'expected_prior_mha': np.float64(0.1883), 'gt05_uncal_mha': np.float64(2.0259), 'gt05_prior_mha': np.float64(0.0286), 'grid_coverage': 0.9951, 'pearson_vs_authors_pct': 0.6782, 'kappa_vs_authors_bin': 0.1119, 'note': 'final 10-variable model, LC 2000'}

(d) Gradient boosting and (e) CHELSA climate sensitivity (optional rule, VARIANTS=de)

{'variant': 'd_hist_gradient_boosting', 'n_vars': 10, 'n_train': 39522, 'n_val': 123356, 'oob_accuracy': nan, 'validation_accuracy': 0.8765, 'expected_uncal_mha': np.float64(3.9075), 'expected_prior_mha': np.float64(0.1947), 'gt05_uncal_mha': np.float64(2.1657), 'gt05_prior_mha': np.float64(0.0031), 'grid_coverage': 0.9951, 'pearson_vs_authors_pct': 0.6794, 'kappa_vs_authors_bin': 0.1226, 'note': 'sklearn defaults (max_iter=100, lr=0.1, early stopping auto); categorical LC and biome'}
{'variant': 'e_chelsa_bioclim_SENSITIVITY', 'n_vars': 10, 'n_train': 39340, 'n_val': 122803, 'oob_accuracy': 0.8908, 'validation_accuracy': 0.8894, 'expected_uncal_mha': np.float64(3.9132), 'expected_prior_mha': np.float64(0.1733), 'gt05_uncal_mha': np.float64(1.9817), 'gt05_prior_mha': np.float64(0.0191), 'grid_coverage': 0.9903, 'pearson_vs_authors_pct': 0.6574, 'kappa_vs_authors_bin': 0.11, 'note': 'SENSITIVITY check, not a fix: CHELSA 1981-2010 overlaps the outcome period'}

(b) Random vs spatially blocked cross-validation (HEALPix, WGS84)

Main rule: step-2 variable set. Optional rule: CHELSA variant (e).

{'variables': 'e_chelsa_bioclim_SENSITIVITY', 'scheme': 'random', 'mean_accuracy': np.float64(0.8896692986223529), 'sd': np.float64(0.0030793342602327667), 'folds': '0.8870 0.8914 0.8857 0.8921 0.8921'}
{'variables': 'e_chelsa_bioclim_SENSITIVITY', 'scheme': 'healpix_d6', 'mean_accuracy': np.float64(0.8380991643665361), 'sd': np.float64(0.048808158308626406), 'folds': '0.7820 0.7986 0.8404 0.9000 0.8695'}
{'variables': 'e_chelsa_bioclim_SENSITIVITY', 'scheme': 'healpix_d7', 'mean_accuracy': np.float64(0.8490799167465063), 'sd': np.float64(0.030248153073299807), 'folds': '0.8835 0.8377 0.8227 0.8221 0.8794'}
{'variables': 'e_chelsa_bioclim_SENSITIVITY', 'scheme': 'healpix_d8', 'mean_accuracy': np.float64(0.8633585516535071), 'sd': np.float64(0.01912184703738316), 'folds': '0.8608 0.8787 0.8471 0.8869 0.8433'}

Accuracy of the step-2 model on the validation set by distance to the nearest training point (great-circle distance via 3-D chord on the WGS84 ellipsoid).

(c) Variable selection as in the paper, with and without NPP, burned area, roads

A predictor that is entirely missing (e.g. burned area if neither GlobFire nor MCD64A1 could be fetched) is dropped from the candidate list and reported.

                     variant  n_vars  n_train  n_val  oob_accuracy  validation_accuracy  expected_uncal_mha  expected_prior_mha  gt05_uncal_mha  gt05_prior_mha  grid_coverage  pearson_vs_authors_pct  kappa_vs_authors_bin                                                                                   note
              baseline_step2      10    39522 123356        0.8844               0.8867              3.9887              0.1883          2.0259          0.0286         0.9951                  0.6782                0.1119                                                       final 10-variable model, LC 2000
    d_hist_gradient_boosting      10    39522 123356           NaN               0.8765              3.9075              0.1947          2.1657          0.0031         0.9951                  0.6794                0.1226 sklearn defaults (max_iter=100, lr=0.1, early stopping auto); categorical LC and biome
e_chelsa_bioclim_SENSITIVITY      10    39340 122803        0.8908               0.8894              3.9132              0.1733          1.9817          0.0191         0.9903                  0.6574                0.1100             SENSITIVITY check, not a fix: CHELSA 1981-2010 overlaps the outcome period