Observed data · completed analysis

The Poland result explorer.

Two crops. Sixteen provinces. Eight methods.
Explore the actual calculations, including weak results and differences between tuning selection and later performance.

Barley: hierarchical modelling was selected by tuning RMSE. Its later province-year RMSE was 3.367 dt/ha. The lowest later score also belonged to hierarchical modelling.
16Provinces
320Fitting yields through 2018
112Later evaluation province-years
7Later national observations
1999–2005Initial history
2006–2011Tuning & calibration
2012–2018Rolling evaluation
2019Retrospective prediction

Methods and hyperparameters are selected from tuning, not later rankings. Each rolling fit uses earlier responses. Full seasonal weather is available for each predicted year.

Compare later-period performance.

All methods use the same years and inputs. Yield units are dt/ha (100 kg/ha). R² is predictive R²; interval coverage is observed coverage of empirical 80% bands.

MethodRMSEMAEBiasR²80% coverageBand width
Hierarchical tuning-selected3.3672.653-0.2070.66993.8%11.835
Ensemble3.9863.190-1.1070.53787.5%11.506
Local ridge4.2873.414-1.7030.46482.1%10.942
Panel ridge4.3453.533-0.6610.45088.4%12.875
PCR4.4223.2380.4000.43092.9%15.956
Stress lag4.5733.571-0.9770.39092.0%16.300
Trend4.6303.418-0.1580.37587.5%12.436
Persistence4.9683.9120.1780.28090.2%15.560

Later-period performance

Later-period performance for Poland barley; RMSE in 2012–2018. Green marks the method selected using earlier tuning; gold highlights stress lag when it is not the selected method. National scores have only seven annual observations.
RMSE in 2012–2018. Green marks the method selected using earlier tuning; gold highlights stress lag when it is not the selected method. National scores have only seven annual observations.

Inspect the predictions.

Switch methods or provinces. The observed 2019 yield is displayed for comparison but was excluded from model fitting. Earlier final-model fitted values are omitted from this chart.

Barley · Hierarchical · Area-weighted national

ObservationRolling predictionEmpirical 80% band2019 final prediction
Chronological barley national predictions for the tuning-selected hierarchical model

Shading separates tuning (2006–2011) and later evaluation (2012–2018). The 2019 marker uses the model fitted through 2018. Intervals share tuning-calibrated widths and do not adapt to local weather extrapolation.

Observed versus predicted

Observed versus predicted for Poland barley; All eight methods on the same 112 later-period province-years. The dashed line is perfect agreement; each panel reports predictive R², which can be negative.
All eight methods on the same 112 later-period province-years. The dashed line is perfect agreement; each panel reports predictive R², which can be negative.

Observed yields

Observed yields for Poland barley; Provincial yield histories and the fixed-area weighted national reference. The 2019 observations are excluded from model fitting.
Provincial yield histories and the fixed-area weighted national reference. The 2019 observations are excluded from model fitting.

2019 predictions by province

Shown for the selected chart method. Errors are prediction minus observation; these 16 observations are not part of the 2012–2018 metric table.

Where do errors occur?

Inspect geographic differences, difficult years, and the trade-off between interval width and coverage.

Performance by province

Performance by province for Poland barley; Later-period RMSE for every province and method. Each province contributes seven evaluation years; colour differences are descriptive, without uncertainty intervals.
Later-period RMSE for every province and method. Each province contributes seven evaluation years; colour differences are descriptive, without uncertainty intervals.

Performance by year

Performance by year for Poland barley; RMSE across 16 provinces for each evaluation year. Shared adverse years can make province errors spatially correlated.
RMSE across 16 provinces for each evaluation year. Shared adverse years can make province errors spatially correlated.

Interval coverage and width

Interval coverage and width for Poland barley; Coverage and mean width of tuning-calibrated empirical 80% bands in the later period. The dashed line is the nominal target, not a guaranteed coverage level.
Coverage and mean width of tuning-calibrated empirical 80% bands in the later period. The dashed line is the nominal target, not a guaranteed coverage level.

What did the models learn?

These figures describe final models fitted through 2018. They are not cross-validated effect estimates, and coefficients or decompositions do not establish causal responses.

Seasonal weather coefficients

Seasonal weather coefficients for Poland barley; Final panel-ridge and hierarchical global coefficients, per training-standardized weather term. Months follow the agricultural year. Associations are not causal effects.
Final panel-ridge and hierarchical global coefficients, per training-standardized weather term. Months follow the agricultural year. Associations are not causal effects.

Nonlinear seasonal basis

Nonlinear seasonal basis for Poland barley; Final stress-lag coefficients for linear anomalies, upper/lower tails, and hot–dry products. Each expanded feature is training-standardized; colour scales differ between panels.
Final stress-lag coefficients for linear anomalies, upper/lower tails, and hot–dry products. Each expanded feature is training-standardized; colour scales differ between panels.

2019 stress prediction components

2019 stress prediction components for Poland barley; The upper panel shows intercept, trend and regional baseline; the lower panel separates centred weather and AR contributions. Adding both panels gives the stress-lag prediction. Tail components can be nonzero when raw hinges are zero.
The upper panel shows intercept, trend and regional baseline; the lower panel separates centred weather and AR contributions. Adding both panels gives the stress-lag prediction. Tail components can be nonzero when raw hinges are zero.

Ensemble weights

Ensemble weights for Poland barley; Non-negative weights summing to one, learned from the tuning period. These are fitted weights, not probabilities that a method is correct.
Non-negative weights summing to one, learned from the tuning period. These are fitted weights, not probabilities that a method is correct.

How unusual was the 2019 weather?

2019 weather support

2019 weather support for Poland barley; Count of raw monthly terms outside pooled training minima/maxima in 1999–2018. All methods share these input ranges. Zero flags does not establish support of every joint weather combination.
Count of raw monthly terms outside pooled training minima/maxima in 1999–2018. All methods share these input ranges. Zero flags does not establish support of every joint weather combination.

Selected parameters

Download and reproduce.

Barley results

Complete fitted model objects, all metric and prediction tables, tuning candidates, selected settings, coefficients, components, diagnostics, configuration, session information, and checksums.

Download ZIP Run metadata

Wheat results

The same complete export, including fitted model objects, for wheat, using an agricultural year ending in July and identical evaluation years.

Download ZIP Run metadata
Read the saved model objects
library(yieldlag)
comparison <- readRDS("barley/model_comparison.rds")
summary(comparison)
model <- get_crop_model(comparison)
future <- subset(comparison$prediction_panel, Year == 2019)
predict(model, future, interval = "prediction")

The ZIP contains the full comparison and fitted model list. Input provenance uses portable package-relative references.

Exact configuration and reproduction
install.packages(c("remotes", "jsonlite"))
remotes::install_github("MR-Eini/yieldlag", ref = "v0.2.0")

# Download run_poland_website.R, then from a terminal:
# Rscript run_poland_website.R barley
# Rscript run_poland_website.R wheat

# Configuration used in both runs:
config <- crop_model_config(
  methods = crop_model_methods(),
  stress_temperature = "MAX",
  stress_precipitation = "PCP", robust = TRUE
)
# Package default grids, initial_fraction = 0.35,
# tuning_fraction = 0.30, interval_level = 0.80.

Download the R script. Package source: v0.2.0, commit 29e1674. Both runs retain all 84 terms and fit robustly where supported. Outputs preserve the full tuning grid rather than only its winning row.

Interpretation limits. The national reference is constructed from provincial yields and fixed area weights. Monthly weather cannot resolve daily exposure, and solar-radiation units/derivation remain unspecified in the supplied tables. Tuning errors are reused for selection and interval calibration. The seven-year national evaluation is short, and these inspected study data are a development benchmark. Independent later data and issue-date weather inputs are needed for confirmatory or operational claims. Data sources and terms.