A comprehensive toolkit for statistical and machine learning-based
analysis of long-term Natural Resource Management (NRM) datasets. Integrates
formula-driven approaches, statistical inference, and machine learning (ML)
models for advanced analytics. Modules cover trend and structural analysis
(Mann-Kendall test, slope estimation, Chow test, structural break detection),
multivariate system modelling (Partial Least Squares (PLS), Structural
Equation Modelling (SEM)), response curve optimisation, time-series
forecasting (Autoregressive Integrated Moving Average (ARIMA), hybrid
models), panel data and treatment effects (Difference-in-Differences (DiD),
causal machine learning), uncertainty and sensitivity analysis (bootstrap,
Monte Carlo, Bayesian), and automated model selection and performance
comparison. Designed for long-term datasets covering soil, water, crop, and
climate domains. Key references: Mann and Kendall (1945)

NRMstatsML is a comprehensive R package providing a statistical and machine learning engine for long-term Natural Resource Management (NRM) datasets. It integrates formula-driven approaches, statistical inference, and machine learning for reproducible analytics across soil, water, crop, and climate domains.
# Install from CRAN
install.packages("NRMstatsML")
| Module | Key Functions | Description |
|---|---|---|
| trendML | nrm_trend(), nrm_mann_kendall(), nrm_sens_slope(), nrm_structural_break() |
Monotonic trend tests, slope estimation, structural break detection |
| multiSysML | nrm_multivariate(), nrm_pls(), nrm_sem() |
OLS, PLS, Structural Equation Modelling |
| responseML | nrm_response_curve(), nrm_optimize_input() |
Yield-response curves and input optimisation |
| tsML | nrm_forecast(), nrm_arima() |
ARIMA/SARIMA forecasting with prediction intervals |
| panelML | nrm_panel(), nrm_did() |
Fixed/random effects, difference-in-differences |
| uncertaintyML | nrm_uncertainty(), nrm_bootstrap(), nrm_monte_carlo() |
Bootstrap, Monte Carlo, Bayesian uncertainty |
| autoML | nrm_automl(), nrm_benchmark() |
Automated model selection and benchmarking |
library(NRMstatsML)
# Load synthetic example data
data(nrm_example)
# 1. Validate data
nrm_data_check(nrm_example)
# 2. Trend analysis
trend <- nrm_trend(nrm_example, time_var = "year", value_var = "crop_yield")
print(trend)
nrm_plot(trend)
# 3. Yield-response curve
rc <- nrm_response_curve(nrm_example, input_var = "N",
response_var = "crop_yield", type = "quadratic")
opt <- nrm_optimize_input(rc, price_ratio = 0.6)
print(opt)
# 4. Forecast next 5 years
fc <- nrm_forecast(nrm_example, value_var = "crop_yield", horizon = 5)
nrm_plot(fc)
# 5. Bootstrap uncertainty of mean yield
bs <- nrm_bootstrap(nrm_example,
stat_fn = function(d) mean(d$crop_yield),
n_iter = 1000)
print(bs)
nrm_<verb>() naming.seed arguments for deterministic results.nrm_plot() methods return editable
ggplot objects.citation("NRMstatsML")
GPL (>= 3). See the GNU General Public License for details.