Skip to content

edaphos 1.4.0 — Pillar 1 on real Cerrado data

Choose a tag to compare

@HugoMachadoRodrigues HugoMachadoRodrigues released this 23 Apr 01:21
· 169 commits to main since this release

Summary

Takes Pillar 1 from the synthetic br_cerrado toy to real
Brazilian Cerrado data
. Backdoor-adjusted direct effects on
1 095 WoSIS topsoil profiles, with a DAG built against the exact
v1.3.1 covariate stack and block-bootstrap confidence intervals that
respect the spatial clustering of the profiles.

New API

  • causal_cerrado_real_dag() — a DAG over 12 nodes / 23
    directed edges on the column names of the v1.3.1 case-study
    bundle, encoding: relief → climate (orographic + lapse-rate) →
    land cover; relief → texture → density; climate + texture +
    slope + land cover → SOC.

Identification of direct effects uses the existing
causal_adjustment_set() + causal_estimate_effect() API — no new
estimator code, just a domain-specific DAG and a real dataset.

Identified direct effects (LM, block-bootstrap by cluster, B = 200)

Exposure Naive slope Identified direct Bootstrap 95 % CI
wc_bio_12 (MAP, g/kg per mm) +0.0072 +0.0071 [+0.0002, +0.0121]
wc_landcover_trees (g/kg per % trees) +0.898 +2.048 (2.3×) [−0.465, +6.901]
soilgrids_clay (g/kg per % clay) +0.526 +0.195 (0.37×) [−0.099, +0.688]

Confounding moves in both directions. Naive OLS under-estimates
the land-use causal effect by more than half (tree cover really
does matter in Cerrado SOC) and over-estimates clay's direct
effect by nearly 3× (its apparent SOC lift is mostly slope / texture
confounding). Without DAG-guided adjustment all three numbers would
be reported wrong — exactly the kind of mistake Pearl's framework
is supposed to prevent, now demonstrated on a real Brazilian
dataset instead of a synthetic cube.

Deliverables

  • data-raw/causal_cerrado_real.R — fully reproducible analysis.
  • inst/extdata/causal_cerrado_real.rds — 62 KB slim results
    bundle.
  • Vignette pilar1-causal-real — narrative walk-through with the
    DAG rendered via ggdag and the naive-vs-identified summary
    table.

Quality

  • 11 new tests pinning the DAG structure and the adjustment sets
    for all three exposures.
  • R CMD check --as-cran: 0 errors / 0 warnings / 2 harmless
    NOTEs
    .