<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3-mathml3.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="1.3" xml:lang="EN">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Agron.</journal-id>
<journal-title-group>
<journal-title>Frontiers in Agronomy</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Agron.</abbrev-journal-title>
</journal-title-group>
<issn pub-type="epub">2673-3218</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fagro.2026.1767878</article-id>
<article-version article-version-type="Version of Record" vocab="NISO-RP-8-2008"/>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Original Research</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Network-enhanced machine learning framework for multi crop yield prediction: a comprehensive analysis of indian agricultural data</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>C</surname><given-names>Shinyclimensa</given-names></name>
<uri xlink:href="https://loop.frontiersin.org/people/3381025/overview"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="conceptualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/conceptualization/">Conceptualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Formal analysis" vocab-term-identifier="https://credit.niso.org/contributor-roles/formal-analysis/">Formal analysis</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="validation" vocab-term-identifier="https://credit.niso.org/contributor-roles/validation/">Validation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="visualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/visualization/">Visualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing &#x2013; original draft</role>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name><surname>A</surname><given-names>Parthiban</given-names></name>
<xref ref-type="corresp" rid="c001"><sup>*</sup></xref>
<uri xlink:href="https://loop.frontiersin.org/people/2739249/overview"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Data curation" vocab-term-identifier="https://credit.niso.org/contributor-roles/data-curation/">Data curation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="investigation" vocab-term-identifier="https://credit.niso.org/contributor-roles/investigation/">Investigation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="supervision" vocab-term-identifier="https://credit.niso.org/contributor-roles/supervision/">Supervision</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &amp; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing &#x2013; review &amp; editing</role>
</contrib>
</contrib-group>
<aff id="aff1"><institution>Department of Mathematics, School of Advanced Sciences, Vellore Institute of Technology</institution>, <city>Vellore</city>, <state>Tamil Nadu</state>,&#xa0;<country country="in">India</country></aff>
<author-notes>
<corresp id="c001"><label>*</label>Correspondence: Parthiban A, <email xlink:href="mailto:parthiban.a@vit.ac.in">parthiban.a@vit.ac.in</email></corresp>
</author-notes>
<pub-date publication-format="electronic" date-type="pub" iso-8601-date="2026-03-04">
<day>04</day>
<month>03</month>
<year>2026</year>
</pub-date>
<pub-date publication-format="electronic" date-type="collection">
<year>2026</year>
</pub-date>
<volume>8</volume>
<elocation-id>1767878</elocation-id>
<history>
<date date-type="received">
<day>15</day>
<month>12</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>05</day>
<month>02</month>
<year>2026</year>
</date>
<date date-type="rev-recd">
<day>04</day>
<month>02</month>
<year>2026</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2026 C and A.</copyright-statement>
<copyright-year>2026</copyright-year>
<copyright-holder>C and A</copyright-holder>
<license>
<ali:license_ref start_date="2026-03-04">https://creativecommons.org/licenses/by/4.0/</ali:license_ref>
<license-p>This is an open-access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution License (CC BY)</ext-link>. The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</license-p>
</license>
</permissions>
<abstract>
<p>Accurate crop yield prediction is a cornerstone for food security, agricultural planning, and evidence-based policy design. In this work, we develop a network-enhanced machine learning framework that combines district similarity structures and crop co-occurrence patterns with rich temporal features to forecast yields for multiple crops across India. The empirical analysis relies on 52 years of district-level agricultural data (1966&#x2013;2017) from 311 districts and focuses on six key crops: rice, wheat, maize, groundnut, cotton, and sugarcane. We construct two complementary network representations: a district similarity network derived from long-term yield trajectories (311 nodes, 2,996 edges, 6.2% density) and a crop co-occurrence network spanning 23 crops (253 edges). From these networks, we compute several centrality indicators and integrate them with temporal covariates, including lagged yields, rolling statistics, volatility measures, and diversification indices. We used a strict time-series cross-validation setup to compare simple baselines (Naive, Rolling Mean) with more advanced models (Ridge Regression, Random Forest, Gradient Boosting), both with and without network-based features. Among all evaluated models, Random Forest achieved the strongest performance for every crop, yielding <italic>R</italic><sup>2</sup> values above 0.94 (rice: 0.988, wheat: 0.976, maize: 0.971, groundnut: 0.946, cotton: 0.969, sugarcane: 0.986). Statistical tests showed that the advanced models significantly outperformed the baselines for five of the six crops (<italic>p &lt;</italic> 0.05). However, network features contributed less than 1% to overall feature importance, indicating that temporal patterns are the main drivers of prediction. Together with temporal stability checks and residual diagnostics, this evaluation setup offers a solid framework for agricultural forecasting and for designing practical crop yield prediction and decision-support systems. This study is primarily positioned as a rigorous benchmarking and methodological validation framework rather than a performance breakthrough, providing empirical evidence on the relative value of different feature-engineering strategies and establishing best practices for time-series cross-validation in agricultural machine learning. The finding that static network features provide negligible incremental value beyond temporal covariates is itself a significant contribution, guiding practitioners toward investments in data quality rather than complex network constructions.</p>
</abstract>
<kwd-group>
<kwd>agricultural informatics</kwd>
<kwd>crop yield prediction</kwd>
<kwd>district similarity networks</kwd>
<kwd>feature importance</kwd>
<kwd>machine learning</kwd>
<kwd>network analysis</kwd>
<kwd>random forest</kwd>
<kwd>time-series forecasting</kwd>
</kwd-group>
<funding-group>
<funding-statement>The author(s) declared that financial support was not received for this work and/or its publication.</funding-statement>
</funding-group>
<counts>
<fig-count count="9"/>
<table-count count="9"/>
<equation-count count="34"/>
<ref-count count="32"/>
<page-count count="28"/>
<word-count count="19455"/>
</counts>
<custom-meta-group>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Agroecological Cropping Systems</meta-value>
</custom-meta>
</custom-meta-group>
</article-meta>
</front>
<body>
<sec id="s1" sec-type="intro">
<label>1</label>
<title>Introduction</title>
<p>Agriculture is a central pillar of the global economy, sustaining billions of livelihoods and underpinning food security for a population projected to reach 9.7 billion by 2050. Reliable crop yield prediction is therefore critical for planning resource allocation, market interventions, food security measures, and climate adaptation strategies (<xref ref-type="bibr" rid="B29">van Klompenburg et&#xa0;al., 2020</xref>). In India the world&#x2019;s second-largest agricultural producer this task is particularly challenging due to sharp contrasts in agro-climatic conditions, heterogeneous cropping patterns, and complex socio-economic contexts (<xref ref-type="bibr" rid="B13">Jain et&#xa0;al., 2016</xref>). Conventional yield forecasting approaches whether grounded in expert judgement, classical statistical techniques, or mechanistic crop simulation models often fail to adequately represent the strongly non-linear and interacting effects of climate, soil conditions, management practices, and socio-economic factors. In contrast, machine learning has advanced the field by enabling data-driven models that capture complex patterns from historical observations (<xref ref-type="bibr" rid="B15">Khaki and Wang, 2019</xref>; <xref ref-type="bibr" rid="B29">van Klompenburg et&#xa0;al., 2020</xref>), while recent developments in network science provide a complementary perspective by modeling agricultural systems as interconnected networks (<xref ref-type="bibr" rid="B1">Bardoscia et&#xa0;al., 2021</xref>), in which regions are represented as nodes linked by similarity or co-occurrence and network-derived metrics (e.g., centrality) quantify their structural influence and connectivity.</p>
<p>At the same time, crop yield prediction remains difficult due to strong temporal dependencies, pronounced spatial variability, non-linear predictor response relationships, and significant data limitations, including missing values, measurement errors, and incomplete information on key management and biophysical factors (<xref ref-type="bibr" rid="B6">Crane-Droesch, 2018</xref>; <xref ref-type="bibr" rid="B8">Folberth et&#xa0;al., 2019</xref>; <xref ref-type="bibr" rid="B7">Elavarasan and Vincent, 2020</xref>). Methodological design introduces additional complexity: the choice of algorithms must balance predictive performance, computational efficiency, and interpretability (<xref ref-type="bibr" rid="B16">Khaki et&#xa0;al., 2020</xref>), while validation strategies that disregard temporal dependence can yield biased or misleading performance estimates (<xref ref-type="bibr" rid="B23">Roberts et&#xa0;al., 2017</xref>). Network-oriented methods have been applied to analyze food trade, the spread of crop diseases, and the diffusion of agricultural knowledge (<xref ref-type="bibr" rid="B9">Garrett et&#xa0;al., 2018</xref>; <xref ref-type="bibr" rid="B24">S&#xe1;ez-Almendros et&#xa0;al., 2020</xref>), and constructs such as district similarity networks and crop co-occurrence networks offer a means to identify regions with comparable yield responses and cropping strategies (<xref ref-type="bibr" rid="B28">Thompson et&#xa0;al., 2019</xref>; <xref ref-type="bibr" rid="B19">Lin and Schilstra, 2019</xref>; <xref ref-type="bibr" rid="B12">Iizumi et&#xa0;al., 2018</xref>).</p>
<p>However, it remains unclear whether such network-derived indicators offer substantial additional predictive power beyond conventional temporal and spatial features (<xref ref-type="bibr" rid="B5">Chlingaryan et&#xa0;al., 2018</xref>). This study addresses that gap by rigorously evaluating a network-enhanced machine learning framework for multi-crop yield prediction in India, integrating district similarity and crop co-occurrence networks with temporal and diversification features, systematically comparing baseline and advanced models under time-series cross-validation, and assessing the incremental value of network features, temporal stability, and detailed diagnostics for robust, operationally relevant yield forecasting.</p>
<sec id="s1_1">
<label>1.1</label>
<title>Theoretical motivation for network features</title>
<p>The inclusion of network-derived features in this study is motivated by both theoretical considerations and the need for empirical validation. Agricultural systems are inherently interconnected through multiple channels that could, in principle, encode prediction-relevant information beyond local time-series data:</p>
<list list-type="order">
<list-item>
<p>Technology Diffusion: Central districts (high eigenvector centrality) in the similarity network may serve as early adopters of improved varieties, agronomic practices, or inputs, with innovations subsequently spreading to connected districts through extension services, farmer networks, and market linkages.</p></list-item>
<list-item>
<p>Information Spillovers: Districts connected to many similar regions may benefit from shared agricultural extension services, research station coverage, or farmer-to-farmer knowledge exchange, potentially improving their adaptive capacity and yield outcomes.</p></list-item>
<list-item>
<p>Market Integration: Highly connected districts may experience more stable prices, better input access, and stronger market linkages, which could affect yield outcomes through improved resource allocation and risk management.</p></list-item>
<list-item>
<p>Coordinated Responses: Districts with high clustering coefficients may belong to tightly-knit groups that respond similarly to regional shocks (weather events, policy changes, pest outbreaks), and this coordinated behavior could provide predictive signals.</p></list-item>
</list>
<p>However, whether these theoretical mechanisms translate into measurable predictive value particularly in the presence of strong temporal autocorrelation remains an open empirical question that this study is explicitly designed to address. Our controlled experimental framework allows rigorous quantification of the incremental contribution of network features, and the finding that they contribute minimally (&lt;1% importance) is itself a significant result that guides future research and practice.</p>
<p>The contributions of this study are directly aligned with the aforementioned objectives. This work is positioned primarily as a rigorous benchmarking and methodological validation framework, with the following specific contributions: First, we develop an integrated framework that jointly exploits network analysis and machine learning for multi-crop yield prediction, incorporating district similarity networks, crop co-occurrence structures, and a suite of centrality indicators. Second, we modify the district network construction step by imposing a stricter similarity threshold of 0.80 and retaining only the top (<italic>k</italic> = 15) neighbours for each node. This yields a sparse network that remains interpretable and is better suited to downstream predictive modelling. Third, we propose an evaluation protocol that goes beyond simple accuracy reporting by combining time-series cross-validation, statistical significance testing, analyses of temporal stability, and detailed diagnostic checks, thereby providing a more robust and reliable picture of model performance. Fourth, drawing on 52 years of data (1966&#x2013;2017) from 311 districts and six major crops, we conduct extensive benchmarking experiments demonstrating that the Random Forest model attains <italic>R</italic><sup>2</sup><italic>&gt;</italic> 0.94 for all crops. Fifth, we offer feature-importance insights demonstrating that network features contribute less than 1% to prediction accuracy in this setting, thereby highlighting the dominant role of temporal features in yield forecasting this &#x201c;negative result&#x201d; regarding network features is itself a significant contribution that guides practitioners away from complex network constructions when strong temporal signals are available. Sixth, we illustrate methodological best practices for agricultural machine learning, including careful feature engineering, multicollinearity handling, near-zero variance removal, and robust scaling. Finally, we derive practical implications for the design of operational yield forecasting systems, agricultural decision support tools, and policy planning processes based on systematically validated prediction models.</p>
<p>The remainder of the paper is organized as follows. Section 2 surveys related work on crop yield prediction, agricultural machine learning, and network-based methods. Section 3 describes the data used in the study, the feature engineering pipeline, the procedures for constructing the networks, the chosen modelling techniques, and the overall experimental setup. Section 4 presents the findings, model performance, graph-based features, statistical tests, and temporal robustness. Section 5 provides a discussion and limitations. Section 6 concludes the manuscript by reviewing the main outcomes and suggesting promising paths for further investigation.</p>
</sec>
</sec>
<sec id="s2">
<label>2</label>
<title>Related work</title>
<sec id="s2_1">
<label>2.1</label>
<title>Traditional yield prediction methods</title>
<p>Crop yield prediction has gone through several distinct phases, moving from simple statistical tools to more complex mechanistic and data-driven approaches. Early work largely relied on regression and time-series models, in which yields were linked to variables such as rainfall, temperature, soil properties, and management practices. These models were attractive because they were relatively easy to interpret, but they struggled to represent the strongly non-linear responses of crops to stress, as well as the interactions among climate, soil, and management that shape yields over multiple seasons.</p>
<p>To address these limitations, process-based models such as DSSAT, APSIM, and CropSyst were developed to simulate crop growth explicitly using physiological and biophysical principles. They offer valuable insights into underlying mechanisms and are useful for scenario analysis, but they demand detailed, site-specific inputs and careful parameter calibration, which makes them difficult to deploy routinely at large spatial scales. In parallel, the increasing availability of satellite observations has led to a growing use of remote sensing for yield estimation. Vegetation indices such as NDVI, EVI, and LAI, derived from MODIS, Landsat, and Sentinel sensors, have been shown to correlate strongly with crop condition and can support near&#x2013;real-time monitoring (<xref ref-type="bibr" rid="B31">Weiss et&#xa0;al., 2020</xref>). However, challenges related to cloud contamination, limitations in spatial and temporal resolution, and the need for robust ground-based calibration continue to hinder their use in fully operational, high-accuracy yield forecasting systems.</p>
</sec>
<sec id="s2_2">
<label>2.2</label>
<title>Machine learning in agriculture</title>
<p>Recent advances in machine learning have substantially expanded the methodological toolkit for agricultural prediction, with crop yield forecasting emerging as a particularly prominent application area (<xref ref-type="bibr" rid="B18">Liakos et&#xa0;al., 2018</xref>). A growing body of empirical work shows that data-driven models frequently surpass conventional statistical approaches in terms of both predictive accuracy and robustness across diverse agro-climatic conditions (<xref ref-type="bibr" rid="B6">Crane-Droesch, 2018</xref>; <xref ref-type="bibr" rid="B29">van Klompenburg et&#xa0;al., 2020</xref>). Among these, tree-based ensemble methods such as Random Forests and margin-based algorithms like Support Vector Machines have become especially influential because they flexibly capture nonlinear response surfaces, accommodate high-dimensional and heterogeneous feature sets, and model complex interaction effects&#xa0;among agronomic, climatic, and remote-sensing predictors (<xref ref-type="bibr" rid="B14">Jeong et&#xa0;al., 2016</xref>; <xref ref-type="bibr" rid="B16">Khaki et&#xa0;al., 2020</xref>; <xref ref-type="bibr" rid="B4">Cheng et&#xa0;al., 2016</xref>). Deep&#xa0;learning methods further extend this modeling capacity: Convolutional Neural Networks (CNNs) are routinely exploited to extract rich spatial representations from multispectral and very&#xa0;high-resolution satellite imagery (<xref ref-type="bibr" rid="B32">You et&#xa0;al., 2017</xref>; <xref ref-type="bibr" rid="B30">Wang et&#xa0;al., 2014</xref>), whereas Long Short Term Memory (LSTM) networks and related recurrent architectures are well suited to learning temporal dependencies and delayed effects in sequential agronomic and weather time series (<xref ref-type="bibr" rid="B17">Kuwata and Shibasaki, 2015</xref>; <xref ref-type="bibr" rid="B29">van Klompenburg et&#xa0;al., 2020</xref>). Hybrid CNN&#x2013;LSTM pipelines that&#xa0;integrate spatial encoders with temporal sequence models frequently report state of the art performance by jointly leveraging landscape patterns, phenological trajectories, and seasonal yield dynamics (<xref ref-type="bibr" rid="B27">Sun et&#xa0;al., 2019</xref>; <xref ref-type="bibr" rid="B16">Khaki et&#xa0;al., 2020</xref>). In parallel, gradient-boosting ensembles such as XGBoost and LightGBM have become widely used reference models in this domain. By iteratively correcting residual errors, supporting flexible loss functions, and efficiently learning from large heterogeneous tabular datasets, they routinely achieve strong predictive performance (<xref ref-type="bibr" rid="B11">Hara et&#xa0;al., 2021</xref>; <xref ref-type="bibr" rid="B25">Shahhosseini et&#xa0;al., 2021</xref>; <xref ref-type="bibr" rid="B3">Chen and Guestrin, 2016</xref>). Within this methodological landscape, the construction of informative features remains a central determinant of model quality: empirical studies show that embedding agronomic expertise and domain-specific structure into the feature space can markedly enhance both predictive accuracy and temporal stability (<xref ref-type="bibr" rid="B20">Nevavuori et&#xa0;al., 2019</xref>).</p>
<p>Temporal descriptors such as lagged yield values, rolling-window statistics, measures of intra and inter-seasonal variability, and growth-rate indicators provide compact yet expressive summaries of crop development trajectories, stress episodes, and memory effects in the production process. Spatial attributes such as coordinates, elevation, soil or land-use classes, and agro-climatic zone labels enable models to capture spatial heterogeneity and site-specific management and weather responses (<xref ref-type="bibr" rid="B14">Jeong et&#xa0;al., 2016</xref>). Combined with temporally enriched features in modern machine learning architectures, these inputs yield a more faithful representation of underlying biophysical and management processes and improve the modeling of nonlinear spatio-temporal patterns in crop yields. When these temporally and spatially enriched representations are integrated into modern machine learning architectures, they furnish a more faithful surrogate of the underlying biophysical and management processes governing yield formation. Consequently, the resulting models are better positioned to capture the complex, nonlinear spatio-temporal dynamics that characterize real-world agricultural systems and ultimately shape observed yield outcomes.</p>
</sec>
<sec id="s2_3">
<label>2.3</label>
<title>Network analysis in agricultural systems</title>
<p>Network science provides a powerful framework for analysing interconnected agricultural systems. Agricultural trade networks, in particular, have been used to study food security, supply chain resilience, and market dynamics, revealing critical dependencies, vulnerable regions, and leverage points for trade diversification and policy intervention (<xref ref-type="bibr" rid="B10">Gephart and Pace, 2015</xref>; <xref ref-type="bibr" rid="B22">Puma et&#xa0;al., 2015</xref>). Pest and disease networks model the spread of agricultural threats via spatial proximity, trade routes, and environmental drivers, enabling surveillance systems that anticipate outbreak hotspots and guide targeted control strategies (<xref ref-type="bibr" rid="B9">Garrett et&#xa0;al., 2018</xref>; <xref ref-type="bibr" rid="B21">Parnell et&#xa0;al., 2017</xref>). Climate teleconnection networks, in turn, encode long-range climatic linkages that exert coordinated influences on multiple agricultural regions (<xref ref-type="bibr" rid="B2">Boers et&#xa0;al., 2019</xref>).</p>
<p>Beyond biophysical flows, knowledge and innovation networks characterise how information moves among farmers, extension services, and research institutions. Social network analyses in this context highlight how central actors and farmer collaboration ties shape technology adoption, crop selection, irrigation decisions, and participation in agricultural markets. Ecological networks such as plant pollinator systems, food webs, and plant soil microbe interactions in turn inform agroecological design, biodiversity conservation, and ecosystem service management, with metrics such as modularity and nestedness used to characterise structural resilience. Despite this broad body of work, the explicit use of network-based features for crop yield prediction remains limited: most existing studies are confined to spatial autocorrelation or simple neighbourhood effects, and systematic integration of network centrality measures into machine learning models for yield forecasting is still relatively unexplored (<xref ref-type="bibr" rid="B28">Thompson et&#xa0;al., 2019</xref>).</p>
</sec>
<sec id="s2_4">
<label>2.4</label>
<title>Time-series forecasting for crop yields</title>
<p>Time-series analysis is central to crop yield prediction because agricultural data evolve over time. Traditional models such as ARIMA&#xa0;exploit autocorrelation in historical yields but are constrained by their&#xa0;linearity assumptions and struggle to represent complex system&#xa0;dynamics. More flexible methods, including seasonal&#x2013;trend decomposition, state-space models, and Kalman filtering, allow long-term trends, seasonal cycles, exogenous drivers, and measurement uncertainty to be represented within a coherent probabilistic framework.</p>
<p>Building on these foundations, recent work increasingly turns to machine learning, where LSTM networks and attention-augmented variants are able to capture long-range temporal dependencies in agricultural time series, and temporal convolutional networks provide an alternative architecture with attractive computational properties (<xref ref-type="bibr" rid="B17">Kuwata and Shibasaki, 2015</xref>; <xref ref-type="bibr" rid="B26">Song et&#xa0;al., 2020</xref>).</p>
<p>These advances in modelling must be accompanied by appropriate validation strategies. In particular, standard <italic>k</italic>-fold cross-validation, which mixes past and future observations across folds, can introduce severe data leakage and yield overly optimistic performance estimates (<xref ref-type="bibr" rid="B23">Roberts et&#xa0;al., 2017</xref>). For operational yield forecasting, it is therefore essential to adopt time-aware evaluation schemes such as rolling-origin or forward-chaining splits in which models are trained only on past data and evaluated on genuinely unseen future periods. Such protocols provide a more realistic picture of how forecasting systems will behave in deployment and are now widely recommended for the assessment of time-series prediction models.</p>
</sec>
<sec id="s2_5">
<label>2.5</label>
<title>Research gap and positioning</title>
<p>Although agricultural machine learning and network science have progressed considerably, several non-trivial gaps remain unresolved. In particular, most yield prediction studies still focus on single crops or narrowly defined regions, and genuinely comprehensive multi-crop analyses across diverse districts are still uncommon (<xref ref-type="bibr" rid="B29">van Klompenburg et&#xa0;al., 2020</xref>).</p>
<p>Evidence on the incremental value of network-derived features is limited (<xref ref-type="bibr" rid="B5">Chlingaryan et&#xa0;al., 2018</xref>), and many works omit statistical significance testing, temporal stability analysis, and systematic integration of heterogeneous feature types within a unified framework. Moreover, the frequent absence of thorough diagnostic checks such as residual analysis, normality tests, and heteroscedasticity assessment reduces the interpretability and robustness of reported modelling results.</p>
<p>Our study is designed to address these gaps in a coordinated manner. Specifically, we (1) analyse six major crops across 311 districts over a 52-year period, (2) rigorously quantify the contribution of network features using feature-importance measures and controlled comparative experiments, (3) apply statistical significance testing to validate performance differences, (4) evaluate temporal stability across multiple time windows, (5) integrate diverse feature types within a coherent modelling framework, and (6) conduct detailed diagnostic analyses in line with best practices in predictive modelling. In doing so, this work contributes to the growing empirical evidence on the practical value of different feature-engineering strategies in agricultural machine learning, with particular emphasis on network-derived features, and provides guidance for the design of robust, operational yield forecasting systems.</p>
</sec>
</sec>
<sec id="s3">
<label>3</label>
<title>Methodology</title>
<sec id="s3_1">
<label>3.1</label>
<title>Data Description and preprocessing</title>
<sec id="s3_1_1">
<label>3.1.1</label>
<title>ICRISAT dataset characteristics</title>
<p>The analysis uses the ICRISAT (International Crops Research Institute for the Semi-Arid Tropics) district-level agricultural database, a long-term harmonized resource on Indian crop production. The panel covers 52 years (1966&#x2013;2017), 311 districts across 20 states, and reports yield information for 23 crops. In this work, we focus on six major crops of central importance to Indian food security and the agricultural economy rice, wheat, maize, groundnut, cotton, and sugarcane.</p>
<p>The data are organized in a panel format with district&#x2013;year as the observational unit, such that each record corresponds to a unique (District Code, Year) combination. Our consistency checks confirm that this key is unique for all 16,146 observations, indicating the absence of duplicate entries. The main characteristics of the dataset are summarized in <xref ref-type="table" rid="T1"><bold>Table&#xa0;1</bold></xref>.</p>
<table-wrap id="T1" position="float">
<label>Table&#xa0;1</label>
<caption>
<p>ICRISAT dataset statistics.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="left">Characteristic</th>
<th valign="middle" align="left">Value</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="left">Total observations</td>
<td valign="middle" align="left">16,146</td>
</tr>
<tr>
<td valign="middle" align="left">Temporal coverage</td>
<td valign="middle" align="left">1966&#x2013;2017 (52 years)</td>
</tr>
<tr>
<td valign="middle" align="left">Number of districts</td>
<td valign="middle" align="left">311</td>
</tr>
<tr>
<td valign="middle" align="left">Number of states</td>
<td valign="middle" align="left">20</td>
</tr>
<tr>
<td valign="middle" align="left">Total crops in database</td>
<td valign="middle" align="left">23</td>
</tr>
<tr>
<td valign="middle" align="left">Crops analyzed</td>
<td valign="middle" align="left">6 (Rice, Wheat, Maize, Groundnut, Cotton, Sugarcane)</td>
</tr>
<tr>
<td valign="middle" align="left">Total features</td>
<td valign="middle" align="left">85</td>
</tr>
<tr>
<td valign="middle" align="left">Network features</td>
<td valign="middle" align="left">6</td>
</tr>
<tr>
<td valign="middle" align="left">Temporal features per crop</td>
<td valign="middle" align="left">5</td>
</tr>
<tr>
<td valign="middle" align="left">Diversification features</td>
<td valign="middle" align="left">2</td>
</tr>
<tr>
<td valign="middle" align="left">Duplicate records</td>
<td valign="middle" align="left">0</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The dataset reports crop-wise yield (<italic>kg/ha</italic>) together with the corresponding cultivated area, enabling consistent quantification of productivity. This coverage facilitates rigorous examination of yield variation across contrasting agro-climatic zones, cropping systems, and management practices. Descriptive statistics for the six focal crops are summarized in <xref ref-type="table" rid="T2"><bold>Table&#xa0;2</bold></xref>.</p>
<table-wrap id="T2" position="float">
<label>Table&#xa0;2</label>
<caption>
<p>Crop yield descriptive statistics (<italic>kg/ha</italic>).</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="left">Crop</th>
<th valign="middle" align="right">Mean</th>
<th valign="middle" align="right">Std dev</th>
<th valign="middle" align="right">Min</th>
<th valign="middle" align="right">Max</th>
<th valign="middle" align="right">Missing %</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="left">Rice</td>
<td valign="middle" align="right">1,483.29</td>
<td valign="middle" align="right">945.02</td>
<td valign="middle" align="right">-1.00</td>
<td valign="middle" align="right">4,104.54</td>
<td valign="middle" align="right">0.0</td>
</tr>
<tr>
<td valign="middle" align="left">Wheat</td>
<td valign="middle" align="right">1,489.26</td>
<td valign="middle" align="right">1,071.71</td>
<td valign="middle" align="right">-1.00</td>
<td valign="middle" align="right">4,484.85</td>
<td valign="middle" align="right">0.0</td>
</tr>
<tr>
<td valign="middle" align="left">Maize</td>
<td valign="middle" align="right">1,394.22</td>
<td valign="middle" align="right">1,115.35</td>
<td valign="middle" align="right">-1.00</td>
<td valign="middle" align="right">5,897.88</td>
<td valign="middle" align="right">0.0</td>
</tr>
<tr>
<td valign="middle" align="left">Groundnut</td>
<td valign="middle" align="right">759.27</td>
<td valign="middle" align="right">598.98</td>
<td valign="middle" align="right">-1.00</td>
<td valign="middle" align="right">2,541.27</td>
<td valign="middle" align="right">0.0</td>
</tr>
<tr>
<td valign="middle" align="left">Cotton</td>
<td valign="middle" align="right">119.82</td>
<td valign="middle" align="right">167.34</td>
<td valign="middle" align="right">-1.00</td>
<td valign="middle" align="right">740.30</td>
<td valign="middle" align="right">0.0</td>
</tr>
<tr>
<td valign="middle" align="left">Sugarcane</td>
<td valign="middle" align="right">4,484.07</td>
<td valign="middle" align="right">3,105.55</td>
<td valign="middle" align="right">-1.00</td>
<td valign="middle" align="right">12,000.00</td>
<td valign="middle" align="right">0.0</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s3_1_2">
<label>3.1.2</label>
<title>Data cleaning and outlier treatment</title>
<p>Data quality is crucial for building accurate yield prediction models, so we apply a straightforward preprocessing pipeline. All negative yield values are reset to zero, as such values are physically implausible and typically arise from data entry errors or missing-value codes. Specifically, we identified a small number of observations with yield values of &#x2212;1.00 <italic>kg/ha</italic> across the six crops (fewer than 0.2% of total data). These values most likely represent placeholder codes for &#x201c;data unavailable&#x201d; in the original database rather than actual negative yields, which are physically impossible. Resetting these to zero follows standard data cleaning practice; sensitivity analysis confirms that results are unchanged when these observations are excluded entirely. For each crop, we cap extremely high yields at the 99.5<sup>th</sup> percentile, which retains 99.5% of observations while limiting the influence of atypical or erroneous extremes and stabilising model performance.</p>
<p>We also verify temporal consistency by examining year-to-year changes at the district level and flagging cases in which inter-annual yield differences exceed five standard deviations for manual review, as such abrupt shifts are unlikely to be agronomically realistic and may indicate data quality problems. Zero-yield observations are retained but treated carefully in error metrics; in particular, the Mean Absolute Percentage Error (MAPE) is computed only for observations with yield above 100 <italic>kg/ha</italic> to avoid division by near-zero values, which is especially important for cotton where zero-yield entries are frequent. The 100 kg/ha threshold for MAPE calculation is justified on both mathematical and practical grounds: (1) division by near-zero values produces extreme, meaningless percentages (e.g., a 5 kg/ha error on 1 kg/ha yield produces 500% MAPE); (2) sub-100 kg/ha yields typically represent crop failures, abandoned plots, or negligible production where&#xa0;percentage error lacks practical meaning; (3) we report alternative metrics (MAE, MedAE, <italic>R</italic><sup>2</sup>) that require no such exclusion, ensuring transparent evaluation. Supplementary sensitivity analysis using thresholds of 50, 100, and 200 kg/ha confirms that model rankings and conclusions are robust to this choice. This cleaning process yields refined distributions with improved statistical properties: for example, rice yields are reduced from extreme values above 8,000 + <italic>kg/ha</italic> to approximately 4105 <italic>kg/ha</italic>, wheat from over 10,000+ to 4,485 <italic>kg/ha</italic>, and maize from more than 15,000+ to 5,898 kg/ha. These capped values remain within agronomically realistic ranges while effectively removing data quality artefacts.</p>
</sec>
<sec id="s3_1_3">
<label>3.1.3</label>
<title>Missing value analysis</title>
<p>An important feature of the ICRISAT dataset is the absence of missing yield values for the six target crops across all 16,146 district&#x2013;year observations. This level of completeness is uncommon in agricultural datasets and removes the need for imputation procedures that may introduce bias. The 0% missing rate for all six crops (<xref ref-type="table" rid="T2"><bold>Table&#xa0;2</bold></xref>) ensures that the models are trained exclusively on empirically observed yields rather than on statistically inferred values.</p>
<p>At the same time, many districts report zero yields for specific&#xa0;crops, reflecting the fact that not all crops are cultivated in all regions. In our analysis, we explicitly distinguish between true zeros (indicating non-cultivation in a given district&#x2013;year) and missing data. These true zeros carry meaningful information about spatial and temporal cropping patterns and are therefore retained, while being treated carefully during network construction and feature engineering to avoid misinterpretation as data quality issues.</p>
</sec>
</sec>
<sec id="s3_2">
<label>3.2</label>
<title>Feature engineering</title>
<sec id="s3_2_1">
<label>3.2.1</label>
<title>Temporal features</title>
<p>Temporal dependencies are fundamental to agricultural yield patterns. Crop yields in a given year are influenced by previous years&#x2019; productivity through soil health carryover, pest pressure buildup, farmer learning, and autocorrelated weather patterns. All mathematical definitions used in the proposed pipeline are provided in <xref ref-type="disp-formula" rid="eq1">Equations 1</xref>&#x2013;<xref ref-type="disp-formula" rid="eq29">29</xref>. We engineer five types of temporal features for each crop:</p>
<p>1. Lag features: Direct yield values from previous years:</p>
<disp-formula id="eq1"><label>(1)</label>
<mml:math display="block" id="M1"><mml:mrow><mml:msubsup><mml:mi>y</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x2003;</mml:mo><mml:mtext>for</mml:mtext><mml:mo>&#x2004;</mml:mo><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mn>3</mml:mn><mml:mo>}</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im1"><mml:mrow><mml:msubsup><mml:mi>y</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula> represents the yield of crop <italic>c</italic> at time <italic>t</italic> &#x2212; <italic>k</italic>. These features capture immediate historical performance and provide baseline information for prediction.</p>
<p>2. Rolling mean features: Moving averages smooth short-term fluctuations and capture medium-term trends:</p>
<disp-formula id="eq2"><label>(2)</label>
<mml:math display="block" id="M2"><mml:mrow><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="true">&#xaf;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mi>w</mml:mi></mml:mfrac><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>w</mml:mi></mml:munderover><mml:msubsup><mml:mi>y</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math>
</disp-formula>
<p>where <italic>w</italic> = 3 is the window size. We use a 3-year rolling mean to balance responsiveness to recent changes with stability against annual volatility.</p>
<p>3. Year-over-year change: First differences capture growth trends and productivity improvements:</p>
<disp-formula id="eq3"><label>(3)</label>
<mml:math display="block" id="M3"><mml:mrow><mml:mtext>&#x394;</mml:mtext><mml:msubsup><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mi>t</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>y</mml:mi><mml:mi>t</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>y</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math>
</disp-formula>
<p>This feature helps models learn whether yields are increasing, decreasing, or stable.</p>
<p>4. Rolling standard deviation: Volatility measures quantify yield stability:</p>
<disp-formula id="eq4"><label>(4)</label>
<mml:math display="block" id="M4"><mml:mrow><mml:msubsup><mml:mi>&#x3c3;</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msqrt><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mi>w</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfrac><mml:mstyle displaystyle="true"><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>w</mml:mi></mml:munderover></mml:mstyle><mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>y</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="true">&#xaf;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mrow></mml:math>
</disp-formula>
<p>where <italic>w</italic> = 3. High volatility may indicate vulnerability to environmental shocks or inconsistent management practices.</p>
<p>5. Temporal aggregates: District-level mean yields over the reference period (2008-2017) provide baseline productivity expectations for each region.</p>
<p><xref ref-type="statement" rid="algo1"><bold>Algorithm 1</bold></xref> formalizes the temporal feature generation process.</p>
<statement content-type="algorithm" id="algo1">
<label>Algorithm 1</label>
<p><graphic mimetype="image" mime-subtype="tiff" xlink:href="fagro-08-1767878-g010.tif"/></p>
</statement>
</sec>
<sec id="s3_2_2">
<label>3.2.2</label>
<title>Diversification indices</title>
<p>Crop diversification affects yield through multiple mechanisms including risk spreading, pest and disease management, soil health, and labor distribution. We compute two diversification metrics:</p>
<p>1. Simpson diversity index: A commonly used measure in ecology adapted for agricultural diversification:</p>
<disp-formula id="eq5"><label>(5)</label>
<mml:math display="block" id="M5"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:mi>m</mml:mi><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:munderover><mml:msubsup><mml:mi>p</mml:mi><mml:mi>i</mml:mi><mml:mn>2</mml:mn></mml:msubsup></mml:mrow></mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im17"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msubsup><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:msub><mml:mi>A</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula> is the proportion of area under crop <italic>i</italic>, and <italic>n</italic> is the total number of crops in the district. This index ranges from 0 (complete specialization) to nearly 1 (maximum diversification), with higher values indicating greater diversity.</p>
<p>2. Number of active crops: A simple count of crops with non-zero cultivation area:</p>
<disp-formula id="eq6"><label>(6)</label>
<mml:math display="block" id="M6"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mi>t</mml:mi><mml:mi>i</mml:mi><mml:mi>v</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:munderover><mml:mo>&#x22ae;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&gt;</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>where &#x22ae;(&#xb7;) is the indicator function. This metric provides an intuitive measure of cropping system complexity.</p>
<p>Districts with higher diversification may exhibit different yield patterns due to resource competition, complementary effects, or risk management strategies. These features enable models to account for cropping system context when predicting individual crop yields.</p>
</sec>
<sec id="s3_2_3">
<label>3.2.3</label>
<title>Network-based features</title>
<p>Network-based features will be described in detail in Section 3.3 following the network construction methodology. These features include six centrality measures derived from the district similarity network: degree, strength, closeness, betweenness, eigenvector, and clustering coefficient.</p>
</sec>
</sec>
<sec id="s3_3">
<label>3.3</label>
<title>Network construction</title>
<sec id="s3_3_1">
<label>3.3.1</label>
<title>District similarity network</title>
<p>The district similarity network represents structural relationships between geographic units based on their crop yield patterns. The intuition is that districts with similar yield profiles may share common characteristics such as climate, soil quality, agricultural practices, or institutional factors, even if they are not geographically proximate.</p>
<p>Network Construction Procedure:</p>
<p>1. Reference period selection: We use the most recent decade (2008-2017) as the reference period for network construction. This 10-year window balances data richness with contemporary relevance, ensuring that the network reflects current agricultural patterns while avoiding excessive influence from historical conditions that may no longer apply.</p>
<p>2. District yield profile aggregation: For each district <italic>d</italic>, we compute the mean yield across the reference period for all 23 crops in the database:</p>
<disp-formula id="eq7"><label>(7)</label>
<mml:math display="block" id="M7"><mml:mrow><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>y</mml:mi></mml:mstyle><mml:mi>d</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="true">&#xaf;</mml:mo></mml:mover></mml:mrow><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="true">&#xaf;</mml:mo></mml:mover></mml:mrow><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn>2</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="true">&#xaf;</mml:mo></mml:mover></mml:mrow><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn>23</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im18"><mml:mrow><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="true">&#xaf;</mml:mo></mml:mover></mml:mrow><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mn>10</mml:mn></mml:mrow></mml:mfrac><mml:msubsup><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn>2008</mml:mn></mml:mrow><mml:mrow><mml:mn>2017</mml:mn></mml:mrow></mml:msubsup><mml:msubsup><mml:mi>y</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula> represents the average yield of crop <italic>c</italic> in district <italic>d</italic> over the reference period. Missing or zero values are retained as zeros in the profile vector.</p>
<p>3. Similarity computation: We use cosine similarity to measure the resemblance between district yield profiles:</p>
<disp-formula id="eq8"><label>(8)</label>
<mml:math display="block" id="M8"><mml:mrow><mml:mtext>sim</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>y</mml:mi></mml:mstyle><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>&#xb7;</mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>y</mml:mi></mml:mstyle><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>&#x2016;</mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>y</mml:mi></mml:mstyle><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>&#x2016;</mml:mo><mml:mo>&#x2016;</mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>y</mml:mi></mml:mstyle><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>&#x2016;</mml:mo></mml:mrow></mml:mfrac></mml:mrow></mml:math>
</disp-formula>
<p>Cosine similarity ranges from -1 to 1, with higher values indicating greater similarity in yield patterns. This metric is scale-invariant, meaning it focuses on the pattern of yields rather than absolute magnitudes, making it suitable for comparing districts with different overall productivity levels.</p>
<p>4. Enhanced thresholding: Unlike previous studies that use relatively low thresholds (0.5-0.7), we employ a stringent threshold of <italic>&#x3c4;</italic> = 0.80. This higher threshold ensures that only districts with genuinely similar yield patterns are connected, creating a sparser, more interpretable network:</p>
<disp-formula id="eq9"><label>(9)</label>
<mml:math display="block" id="M9"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">{</mml:mo><mml:mtable columnalign="left"><mml:mtr columnalign="left"><mml:mtd columnalign="left"><mml:mrow><mml:mtext>sim</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd><mml:mtd columnalign="left"><mml:mrow><mml:mtext>if</mml:mtext><mml:mo>&#x2004;</mml:mo><mml:mtext>sim</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2265;</mml:mo><mml:mn>0.80</mml:mn></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign="left"><mml:mtd columnalign="left"><mml:mn>0</mml:mn></mml:mtd><mml:mtd columnalign="left"><mml:mrow><mml:mtext>otherwise</mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math>
</disp-formula>
<p>5. Top-k pruning: To further enhance network interpretability and focus on the strongest relationships, we implement top-k pruning where each node retains only its <italic>k</italic> = 15 strongest connections. For each district <italic>d</italic>, we:</p>
<disp-formula id="eq10"><label>(10)</label>
<mml:math display="block" id="M10"><mml:mrow><mml:mi mathvariant="script">N</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mtext>top</mml:mtext></mml:mrow><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mo>{</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>d</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:mtext>sim</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mi>d</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo>&#xa0;</mml:mo><mml:mo>:</mml:mo><mml:mtext>sim</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mi>d</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2265;</mml:mo><mml:mn>0.80</mml:mn><mml:mo>}</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im19"><mml:mrow><mml:msub><mml:mrow><mml:mtext>top</mml:mtext></mml:mrow><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mo>&#xb7;</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> selects the <italic>k</italic> neighbors with highest similarity scores. This strategy prevents highly connected hubs from dominating the network while maintaining computational efficiency.</p>
<p>6. Network density optimization: The resulting network has 311 nodes (districts) and 2,996 undirected edges, yielding a density of 6.2%. This density falls within the optimal range (5-20%) for meaningful pattern extraction while avoiding excessive connectivity that would dilute signal.</p>
<p><xref ref-type="statement" rid="algo2"><bold>Algorithm 2</bold></xref> formalizes the enhanced district network construction process.</p>
<statement content-type="algorithm" id="algo2">
<label>Algorithm 2</label>
<p><graphic mimetype="image" mime-subtype="tiff" xlink:href="fagro-08-1767878-g011.tif"/></p>
</statement>
<p>Network Centrality Measures:</p>
<p>From the constructed network, we extract six centrality measures for each district, which serve as features 350 in our prediction models:</p>
<p>1. Degree centrality: The number of direct connections:</p>
<disp-formula id="eq11"><label>(11)</label>
<mml:math display="block" id="M11"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mtext>deg</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>High-degree districts are connected to many similar regions and may represent diverse or typical cropping patterns.</p>
<p>2. Strength centrality: Sum of edge weights (similarity scores):</p>
<disp-formula id="eq12"><label>(12)</label>
<mml:math display="block" id="M12"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>S</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:msup><mml:mi>d</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo>&#x2208;</mml:mo><mml:mi mathvariant="script">N</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:munder><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:msup><mml:mi>d</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:math>
</disp-formula>
<p>This weighted measure accounts for the strength of similarities, not just their count.</p>
<p>3. Closeness centrality: Inverse of average shortest path length:</p>
<disp-formula id="eq13"><label>(13)</label>
<mml:math display="block" id="M13"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>C</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:msup><mml:mi>d</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo>&#x2260;</mml:mo><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mtext>dist</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mi>d</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac></mml:mrow></mml:math>
</disp-formula>
<p>High closeness indicates a district is structurally central, able to reach others through short paths.</p>
<p>4. Betweenness centrality: Fraction of shortest paths passing through the node:</p>
<disp-formula id="eq14"><label>(14)</label>
<mml:math display="block" id="M14"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>B</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>s</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>d</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:munder><mml:mfrac><mml:mrow><mml:msub><mml:mi>&#x3c3;</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x3c3;</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:math>
</disp-formula>
<p>where <italic>&#x3c3;<sub>st</sub></italic> is the number of shortest paths from <italic>s</italic> to <italic>t</italic>, and <italic>&#x3c3;<sub>st</sub></italic>(<italic>d</italic>) is the number passing through <italic>d</italic>. High betweenness districts act as bridges between different network communities.</p>
<p>5. Eigenvector centrality: Recursive measure valuing connections to well-connected nodes:</p>
<disp-formula id="eq15"><label>(15)</label>
<mml:math display="block" id="M15"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>E</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mi>&#x3bb;</mml:mi></mml:mfrac><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:msup><mml:mi>d</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo>&#x2208;</mml:mo><mml:mi mathvariant="script">N</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:munder><mml:msub><mml:mi>C</mml:mi><mml:mi>E</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>d</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>where <italic>&#x3bb;</italic> is the largest eigenvalue of the adjacency matrix. This metric identifies districts connected to other influential districts.</p>
<p>6. Weighted clustering coefficient: Measures local network density:</p>
<disp-formula id="eq16"><label>(16)</label>
<mml:math display="block" id="M16"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mtext>deg</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mtext>deg</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:msup><mml:mi>d</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>d</mml:mi><mml:mo>&#x2033;</mml:mo></mml:msup><mml:mo>&#x2208;</mml:mo><mml:mi mathvariant="script">N</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:munder><mml:mfrac><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:msup><mml:mi>d</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:msup><mml:mi>d</mml:mi><mml:mo>&#x2033;</mml:mo></mml:msup></mml:mrow></mml:msub></mml:mrow><mml:mn>2</mml:mn></mml:mfrac><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:msup><mml:mi>d</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:msup><mml:mi>d</mml:mi><mml:mo>&#x2033;</mml:mo></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im51"><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:msup><mml:mi>d</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:msup><mml:mi>d</mml:mi><mml:mo>&#x2033;</mml:mo></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> indicates whether an edge exists between neighbors <inline-formula>
<mml:math display="inline" id="im52"><mml:msup><mml:mi>d</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:math></inline-formula> and <inline-formula>
<mml:math display="inline" id="im53"><mml:msup><mml:mi>d</mml:mi><mml:mo>&#x2033;</mml:mo></mml:msup></mml:math></inline-formula>. High clustering suggests the district belongs to a tightly-knit group of similar regions.</p>
<p><xref ref-type="fig" rid="f1"><bold>Figure&#xa0;1</bold></xref> visualizes the district similarity network structure. (Note: This figure would be generated from the network construction code and saved during pipeline execution).</p>
<fig id="f1" position="float">
<label>Figure&#xa0;1</label>
<caption>
<p>District similarity network constructed from crop yield profiles (2008&#x2013;2017). Nodes represent districts, coloured by geographic region, and node size reflects eigenvector centrality. Edges connect districts with cosine similarity &#x2265; 0.80 in their yield patterns across 23 crops. For clarity, only the top-15 connections per node are retained to maintain an interpretable network structure.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fagro-08-1767878-g001.tif">
<alt-text content-type="machine-generated">Network diagram showing regions in India, with nodes colored and sized by regional group and eigenvector centrality. Green, blue, orange, red, and purple indicate East, North, West, Central, and South groups, and node size reflects centrality. A histogram on the upper right displays node degree distribution, peaking near the mean of 19.3, with network statistics below indicating 311 nodes, 2996 edges, network density of 6.2 percent, clustering coefficient of 0.103, and one connected component. A key at the bottom deciphers color groupings and centrality levels.</alt-text>
</graphic></fig>
</sec>
<sec id="s3_3_2">
<label>3.3.2</label>
<title>Crop co-occurrence network</title>
<p>The crop co-occurrence network characterises which crops tend to be cultivated together within the same district&#x2013;year observations, thereby reflecting farmers&#x2019; crop portfolio decisions that may be shaped by complementarity, risk diversification, shared resource use, or market opportunities (<xref ref-type="bibr" rid="B19">Lin and Schilstra, 2019</xref>).</p>
<p>To construct this network, we first identify, for each district&#x2013;year, the set of crops with non-zero yields. For every pair of crops (<italic>c<sub>i</sub>,c<sub>j</sub></italic>) that co-occur in a given district&#x2013;year, we increment the corresponding edge weight <italic>w<sub>ci</sub>c<sub>j</sub></italic> by one. Aggregating over all observations yields an undirected, weighted network with 23 nodes (crops) and 253 edges, where edge weights represent the frequency with which crop pairs are jointly cultivated.</p>
<p>The co-occurrence network serves as a complementary representation to the district-level network but is not explicitly incorporated as a feature source in the present modelling framework. Rather, it is used to elucidate broader cropping-system patterns and has the potential to guide future investigations into crop&#x2013;crop interaction effects.</p>
</sec>
</sec>
<sec id="s3_4">
<label>3.4</label>
<title>Machine learning models</title>
<p>We evaluate a comprehensive set of prediction models ranging from simple baselines to advanced ensemble methods. All models are implemented using scikit-learn 1.0.2 with consistent random seeds (<italic>seed</italic> = 42) for reproducibility.</p>
<sec id="s3_4_1">
<label>3.4.1</label>
<title>Baseline models</title>
<p>1. Naive (Lag-1) Predictor:</p>
<p>The simplest baseline uses the previous year&#x2019;s yield as the prediction:</p>
<disp-formula id="eq17"><label>(17)</label>
<mml:math display="block" id="M17"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>t</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math>
</disp-formula>
<p>For missing lag-1 values, we use the training set mean. This baseline represents the &#x201c;persistence forecast&#x201d; commonly used in time-series analysis and provides a minimum performance threshold.</p>
<p>2. Rolling Mean (3-year average):</p>
<p>This baseline averages the three most recent years:</p>
<disp-formula id="eq18"><label>(18)</label>
<mml:math display="block" id="M18"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>t</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:mfrac><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mn>3</mml:mn></mml:munderover><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math>
</disp-formula>
<p>This approach smooths year-to-year volatility and may perform better than lag-1 in volatile environments. For missing values, we use available recent years or fall back to the training mean.</p>
</sec>
<sec id="s3_4_2">
<label>3.4.2</label>
<title>Advanced models</title>
<p>1. Ridge Regression.</p>
<p>Ridge regression extends ordinary least squares by introducing an <italic>&#x2113;</italic><sub>2</sub> penalty on the regression coefficients, which reduces variance and alleviates instability caused by multicollinearity among predictors.</p>
<disp-formula id="eq19"><label>(19)</label>
<mml:math display="block" id="M19"><mml:mrow><mml:mover accent="true"><mml:mi>&#x3b2;</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mtext>arg&#xa0;</mml:mtext><mml:munder><mml:mrow><mml:mi>min</mml:mi></mml:mrow><mml:mi>&#x3b2;</mml:mi></mml:munder><mml:mo>{</mml:mo><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:munderover><mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mtext>x</mml:mtext><mml:mi>i</mml:mi><mml:mi>T</mml:mi></mml:msubsup><mml:mi>&#x3b2;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mi>&#x3b1;</mml:mi><mml:mo>&#x2016;</mml:mo><mml:mi>&#x3b2;</mml:mi><mml:msubsup><mml:mo>&#x2016;</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>}</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>In our setting, the regularization strength is fixed at <italic>&#x3b1;</italic> = 10.0, a value deliberately chosen to be larger than the default in order to counteract the high degree of feature redundancy in a rich, multi-source design matrix. Prior to model fitting, all predictors are transformed using RobustScaler, which centers each feature by its median and rescales it by the interquartile range:</p>
<disp-formula id="eq20"><label>(20)</label>
<mml:math display="block" id="M20"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mtext>scaled</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mtext>median</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mtext>IQR</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac><mml:mo>.</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>This preprocessing step dampens the influence of extreme values and yields a more stable optimization landscape. Overall, Ridge regression serves as an interpretable linear baseline: it captures first-order effects in a transparent manner and provides a parametric reference against which the added complexity of non-linear, ensemble-based approaches can be meaningfully evaluated.</p>
<p>2. Random Forest.</p>
<p>Random Forest represents a non-parametric, ensemble-based approach that combines the predictions of many decision trees, each trained on a bootstrap sample of the data and a randomly selected subset of features. The final prediction is obtained by averaging over the individual trees.</p>
<disp-formula id="eq21"><label>(21)</label>
<mml:math display="block" id="M21"><mml:mrow><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mi>B</mml:mi></mml:mfrac><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>b</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>B</mml:mi></mml:munderover><mml:msub><mml:mi>T</mml:mi><mml:mi>b</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mtext>x</mml:mtext><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>where <italic>T<sub>b</sub></italic> denotes the prediction of the <italic>b</italic>-th tree and <italic>B</italic> = 300 is the number of trees in the ensemble. We increase the number of estimators from the scikit-learn default of 100 to 300 to obtain a more stable aggregate model and to reduce variance. The maximum depth of the trees is left unconstrained (max_depth = None), allowing the ensemble to discover complex, high-order interactions when supported by the data, while min_samples_leaf = 1 permits fine-grained partitioning at the leaves. A fixed random seed (random_state = 42) ensures reproducibility, and n_jobs = -1 enables the use of all available CPU cores to keep training times manageable. Because decision trees operate on the original feature scales and split locally in feature space, the Random Forest is naturally robust to outliers and heterogeneous feature magnitudes, and therefore does not require explicit feature scaling. In practice, this model captures non-linear relationships and interaction effects that are inaccessible to purely linear methods, making it a strong and relatively robust benchmark.</p>
<p>3. Gradient Boosting.</p>
<p>Gradient Boosting takes a different ensemble perspective by constructing the model in a sequential, stage-wise fashion. Instead of averaging many independent trees, it iteratively adds new trees that are trained to correct the residual errors of the current ensemble. Formally, the model at iteration <italic>m</italic> can be written as.</p>
<disp-formula id="eq22"><label>(22)</label>
<mml:math display="block" id="M22"><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mtext>x</mml:mtext><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mtext>x</mml:mtext><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mi>&#x3bd;</mml:mi><mml:mo>&#xb7;</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mtext>x</mml:mtext><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>where <italic>h<sub>m</sub></italic> is the <italic>m</italic>-th base learner, fitted to the negative gradient of the loss with respect to <italic>F<sub>m</sub></italic><sub>&#x2212;1</sub>, and <italic>&#x3bd;</italic> is the learning rate that controls the contribution of each new tree. In this study, we employ scikit-learn&#x2019;s GradientBoostingRegressor with n_estimators = 100, learning_rate = 0.1, and shallow trees of depth max_depth = 3. This configuration strikes a pragmatic balance: the number of boosting stages is large enough to capture non-linear patterns, while the combination of a moderate learning rate and shallow trees provides built-in regularization. As with the other models, random_state = 42 is used to ensure replicability. Gradient Boosting is often capable of achieving high predictive accuracy by focusing successive learners on the hardest-to-predict instances; however, this flexibility also makes it more sensitive to overfitting, so careful control of hyperparameters and regularization is essential, particularly when the dataset is noisy or only moderately sized.</p>
</sec>
<sec id="s3_4_3">
<label>3.4.3</label>
<title>Feature set configurations</title>
<p>The overall experimental workflow, including the common feature pipeline and the split into the no_network and with_network configurations, is illustrated in <xref ref-type="fig" rid="f2"><bold>Figure&#xa0;2</bold></xref>. This setup allows us to isolate and quantify the incremental predictive value of the network-based features.</p>
<fig id="f2" position="float">
<label>Figure&#xa0;2</label>
<caption>
<p>Experimental setup for quantifying the added predictive value of network features.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fagro-08-1767878-g002.tif">
<alt-text content-type="machine-generated">Flowchart displaying a data analysis pipeline using district-level yield data from 311 districts for 6 crops from 1966 to 2017, outlining feature engineering, model training with and without network features, and metric comparison to quantify network feature value.</alt-text>
</graphic></fig>
</sec>
</sec>
<sec id="s3_5">
<label>3.5</label>
<title>Experimental setup</title>
<sec id="s3_5_1">
<label>3.5.1</label>
<title>Time-series cross-validation</title>
<p>Standard k-fold cross-validation is inappropriate for time-series data as it violates temporal ordering and can lead to data leakage where future information influences past predictions (<xref ref-type="bibr" rid="B23">Roberts et&#xa0;al., 2017</xref>). We employ time-series split validation where training sets contain only historical observations relative to the test set.</p>
<p>We construct the cross-validation folds using an expanding-window, time-aware procedure tailored to the temporal span of the dataset (1966&#x2013;2017). All unique years are first ordered chronologically and the full range is partitioned into four contiguous segments of approximately equal length, defined by three temporal split points ((<italic>split</italic><sub>1</sub>, sp<italic>lit</italic><sub>2</sub>, sp<italic>lit</italic><sub>3</sub>)). Using these splits, we form three non-overlapping folds. For fold <italic>f</italic> &#x2208; {1, 2, 3}, the training set comprises all observations from 1966 up to and including year split<italic><sub>f</sub></italic>], while the corresponding test set consists of observations from the subsequent interval (split<italic><sub>f</sub></italic>, split<italic><sub>f</sub></italic><sub>+ 1</sub>].</p>
<p>In practical terms, the three folds can be read as a sequence of increasingly data-rich forecasting experiments. In Fold 1, the model is trained only on the earliest block of years and then evaluated on the immediately following period. Fold 2 enlarges this training window to cover both the early and middle years, with evaluation shifted further forward in time. Finally, Fold 3 trains on all earlier segments early, middle, and later years and assesses performance on the most recent period in the series. The exact cross-validation fold definitions (training/test periods and sample sizes) are provided in <xref ref-type="table" rid="T3"><bold>Table 3</bold></xref>.</p>
<table-wrap id="T3" position="float">
<label>Table&#xa0;3</label>
<caption>
<p>Exact cross-validation fold specifications.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="left">Fold</th>
<th valign="middle" align="center">Training period</th>
<th valign="middle" align="center">Test period</th>
<th valign="middle" align="center">Training years</th>
<th valign="middle" align="center">Test years</th>
<th valign="middle" align="center">Approx. train obs.</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="left">1</td>
<td valign="middle" align="center">1966&#x2013;1982</td>
<td valign="middle" align="center">1983&#x2013;1994</td>
<td valign="middle" align="center">17</td>
<td valign="middle" align="center">12</td>
<td valign="middle" align="center">5,287</td>
</tr>
<tr>
<td valign="middle" align="left">2</td>
<td valign="middle" align="center">1966&#x2013;1994</td>
<td valign="middle" align="center">1995&#x2013;2005</td>
<td valign="middle" align="center">29</td>
<td valign="middle" align="center">11</td>
<td valign="middle" align="center">9,019</td>
</tr>
<tr>
<td valign="middle" align="left">3</td>
<td valign="middle" align="center">1966&#x2013;2005</td>
<td valign="middle" align="center">2006&#x2013;2017</td>
<td valign="middle" align="center">40</td>
<td valign="middle" align="center">12</td>
<td valign="middle" align="center">12,440</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The choice of three folds represents a balance between evaluation robustness and data sufficiency. Each fold requires sufficient test data for reliable metric estimation (at least 10 years given district year observations), while earlier folds need adequate training data to fit complex ensemble models. We acknowledge that using only three folds provides limited statistical power for temporal stability assessment; a rolling-origin design with annual test windows would provide more granular estimates but would substantially increase computational cost. Conclusions about temporal stability should therefore be interpreted with appropriate caution, recognizing they are based on three temporal segments rather than fine-grained annual assessments.</p>
<p>As sketched in <xref ref-type="fig" rid="f3"><bold>Figure&#xa0;3</bold></xref>, this &#x201c;expanding window&#x201d; design respects the natural flow of time, so that future information never leaks into the past, and it mimics the way models would actually be used in practice: fitted to whatever history is available at a given point and then asked to predict subsequent outcomes. Because each fold tests on a different portion of the timeline, the procedure also probes how stable the model is across changing conditions. At the same time, later folds benefit from longer historical records, allowing the model to learn from a richer set of patterns while the evaluation remains genuinely out-of-sample.</p>
<fig id="f3" position="float">
<label>Figure&#xa0;3</label>
<caption>
<p>Time-series cross-validation scheme with three folds showing expanding training windows and non-overlapping test periods.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fagro-08-1767878-g003.tif">
<alt-text content-type="machine-generated">Diagram showing time series cross-validation with three folds labeled Fold one, Fold two, and Fold three. Each fold has a blue segment for training and a red segment for testing. The timeline spans from 1966 to 2017, with training periods preceding testing periods in each fold.</alt-text>
</graphic></fig>
</sec>
<sec id="s3_5_2">
<label>3.5.2</label>
<title>Evaluation metrics</title>
<p>We employ five complementary metrics to provide comprehensive performance assessment:</p>
<p>1. Mean Absolute Error (MAE):</p>
<disp-formula id="eq23"><label>(23)</label>
<mml:math display="block" id="M23"><mml:mrow><mml:mtext>MAE</mml:mtext><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mi>n</mml:mi></mml:mfrac><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:munderover><mml:mo>|</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mo>|</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>MAE provides an interpretable measure of average prediction error in the same units as yield (<italic>kg/ha</italic>). It is robust to outliers and assigns equal weight to all errors.</p>
<p>2. Root Mean Squared Error (RMSE):</p>
<disp-formula id="eq24"><label>(24)</label>
<mml:math display="block" id="M24"><mml:mrow><mml:mtext>RMSE</mml:mtext><mml:mo>=</mml:mo><mml:msqrt><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mi>n</mml:mi></mml:mfrac><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:munderover><mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mrow></mml:math>
</disp-formula>
<p>RMSE penalizes large errors more heavily than MAE due to squaring, making it sensitive to occasional large mispredictions. It is widely used in agricultural forecasting for comparability.</p>
<p>3. Mean Absolute Percentage Error (MAPE):</p>
<disp-formula id="eq25"><label>(25)</label>
<mml:math display="block" id="M25"><mml:mrow><mml:mtext>MAPE</mml:mtext><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>100</mml:mn><mml:mo>%</mml:mo></mml:mrow><mml:mi>n</mml:mi></mml:mfrac><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:munderover><mml:mo>|</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac><mml:mo>|</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>MAPE provides scale-independent percentage error, facilitating cross-crop comparison. However, it is undefined for zero yields and unstable for near-zero values. We implement a safe version excluding observations below 100 <italic>kg/ha</italic>, particularly important for cotton with many low-yield observations:</p>
<disp-formula id="eq26"><label>(26)</label>
<mml:math display="block" id="M26"><mml:mrow><mml:msub><mml:mrow><mml:mtext>MAPE</mml:mtext></mml:mrow><mml:mrow><mml:mi>s</mml:mi><mml:mi>a</mml:mi><mml:mi>f</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>100</mml:mn><mml:mo>%</mml:mo></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi mathvariant="script">I</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:mfrac><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi mathvariant="script">I</mml:mi></mml:mrow></mml:munder><mml:mo>|</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac><mml:mo>|</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x2003;</mml:mo><mml:mi mathvariant="script">I</mml:mi><mml:mo>=</mml:mo><mml:mo>{</mml:mo><mml:mi>i</mml:mi><mml:mo>:</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&gt;</mml:mo><mml:mn>100</mml:mn><mml:mo>}</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>4. Median Absolute Error (MedAE):</p>
<disp-formula id="eq27"><label>(27)</label>
<mml:math display="block" id="M27"><mml:mrow><mml:mtext>MedAE</mml:mtext><mml:mo>=</mml:mo><mml:mtext>median</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mo>|</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>MedAE is highly robust to outliers and provides insight into typical prediction error, complementing the mean-based metrics.</p>
<p>5. Coefficient of Determination (R&#xb2;):</p>
<disp-formula id="eq28"><label>(28)</label>
<mml:math display="block" id="M28"><mml:mrow><mml:msup><mml:mi>R</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mrow><mml:msubsup><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mrow><mml:msubsup><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="true">&#xaf;</mml:mo></mml:mover><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:math>
</disp-formula>
<p>R&#xb2; measures the proportion of variance explained by the model, with values close to 1 indicating excellent fit. Negative values indicate worse performance than predicting the mean. Aggregation across folds. To ensure that MAPE is not distorted by extremely low-yield observations, we performed a sensitivity analysis using yield thresholds of 50, 100, and 200 <italic>kg/ha</italic>. The resulting MAPE values remain highly stable across thresholds, and model rankings are unchanged. See <xref ref-type="supplementary-material" rid="SM1"><bold>Supplementary Table&#xa0;1</bold></xref>.</p>
<p>For each model crop feature set combination, we report:</p>
<list list-type="bullet">
<list-item>
<p>Mean and standard deviation of each metric across three folds</p></list-item>
<list-item>
<p>Individual fold performance to assess consistency</p></list-item>
</list>
</sec>
<sec id="s3_5_3">
<label>3.5.3</label>
<title>Statistical significance testing</title>
<p>To determine whether the observed performance gains are systematic rather than artifacts of random variation across folds, we perform paired <italic>t</italic>-tests on the mean absolute error (MAE) values.</p>
<p>For each crop, we examine two comparisons. The first focuses on the added value of the network-based features. Here, we compare Gradient Boosting models trained with and without network features using a paired <italic>t</italic>-test over the per-fold MAE scores. The null hypothesis states that incorporating network features does not change the error,</p>
<disp-formula>
<mml:math display="block" id="M29"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>:</mml:mo><mml:msub><mml:mrow><mml:mtext>MAE</mml:mtext></mml:mrow><mml:mrow><mml:mtext>with</mml:mtext><mml:mo>_</mml:mo><mml:mtext>network</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mtext>MAE</mml:mtext></mml:mrow><mml:mrow><mml:mtext>no</mml:mtext><mml:mo>_</mml:mo><mml:mtext>network</mml:mtext></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>while the one-sided alternative asserts that the model enriched with network information achieves lower error,</p>
<disp-formula>
<mml:math display="block" id="M29a"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>:</mml:mo><mml:msub><mml:mrow><mml:mtext>MAE</mml:mtext></mml:mrow><mml:mrow><mml:mtext>with</mml:mtext><mml:mo>_</mml:mo><mml:mtext>network</mml:mtext></mml:mrow></mml:msub><mml:mo>&lt;</mml:mo><mml:msub><mml:mrow><mml:mtext>MAE</mml:mtext></mml:mrow><mml:mrow><mml:mtext>no</mml:mtext><mml:mo>_</mml:mo><mml:mtext>network</mml:mtext></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>In practical terms, this test asks whether the same Gradient Boosting architecture, when supplied with network-derived covariates, consistently reduces MAE relative to an otherwise identical specification that ignores network structure. We use a significance level of <italic>&#x3b1;</italic> = 0.05.</p>
<p>The second comparison evaluates the benefit of our advanced model relative to a simple operational baseline. Specifically, we contrast the Gradient Boosting model with network features against a na&#xef;ve forecasting strategy (e.g, using recent historical averages). Again, we apply a paired <italic>t</italic>-test to the MAE values obtained on each fold. The null hypothesis posits no difference in expected error,</p>
<disp-formula>
<mml:math display="block" id="M29b"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>:</mml:mo><mml:msub><mml:mrow><mml:mtext>MAE</mml:mtext></mml:mrow><mml:mrow><mml:mtext>GB</mml:mtext><mml:mo>_</mml:mo><mml:mtext>with</mml:mtext><mml:mo>_</mml:mo><mml:mtext>network</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mtext>MAE</mml:mtext></mml:mrow><mml:mrow><mml:mtext>Naive</mml:mtext></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>and the alternative hypothesis formalizes the expectation that the advanced model outperforms the na&#xef;ve benchmark,</p>
<disp-formula>
<mml:math display="block" id="M29c"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>:</mml:mo><mml:msub><mml:mrow><mml:mtext>MAE</mml:mtext></mml:mrow><mml:mrow><mml:mtext>GB</mml:mtext><mml:mo>_</mml:mo><mml:mtext>with</mml:mtext><mml:mo>_</mml:mo><mml:mtext>network</mml:mtext></mml:mrow></mml:msub><mml:mo>&lt;</mml:mo><mml:msub><mml:mrow><mml:mtext>MAE</mml:mtext></mml:mrow><mml:mrow><mml:mtext>Naive</mml:mtext></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>This second test therefore quantifies whether the additional modelling complexity and the use of network information translate into practically and statistically meaningful improvements over a simple baseline that might be used in real-world settings.</p>
<p>For each of these tests, we report the <italic>t</italic>-statistic and corresponding <italic>p</italic>-value, together with the percentage reduction in MAE achieved by the better-performing model. To make the results easy to interpret at a glance, we also provide a binary significance flag indicating whether the null hypothesis is rejected at the <italic>&#x3b1;</italic> = 0.05 level. A <italic>p</italic>-value below 0.05 is taken as evidence against the null hypothesis: in that case, the performance difference is unlikely to be explained by random fold-to-fold variation alone and can be interpreted as a genuine, statistically supported improvement.</p>
</sec>
<sec id="s3_5_4">
<label>3.5.4</label>
<title>Temporal stability analysis</title>
<p>Model performance can change over time as the underlying data distribution evolves (concept drift). To quantify temporal stability, we examine how both error and explained variance behave across the three chronological folds.</p>
<p>For each model&#x2013;crop combination, we first estimate a simple linear trend in MAE over folds by fitting.</p>
<disp-formula id="eq29"><label>(29)</label>
<mml:math display="block" id="M30"><mml:mrow><mml:msub><mml:mrow><mml:mtext>MAE</mml:mtext></mml:mrow><mml:mrow><mml:mtext>fold</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>&#x3b2;</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3b2;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#xb7;</mml:mo><mml:mtext>fold</mml:mtext><mml:mo>+</mml:mo><mml:mi>&#x3f5;</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>where <italic>&#x3b2;</italic><sub>1</sub> captures the direction and magnitude of the temporal trend. A positive slope (<italic>&#x3b2;</italic><sub>1</sub><italic>&gt;</italic> 0) means that MAE becomes larger from the earlier to the later folds, indicating that the model&#x2019;s predictions are gradually getting worse over time. In contrast, a negative slope (<italic>&#x3b2;</italic><sub>1</sub><italic>&lt;</italic> 0) means that MAE decreases across folds, which points to an improvement in predictive performance as time progresses. Alongside the slope, we report the coefficient of determination for this regression (the &#x201c;trend <italic>R</italic><sup>2</sup>&#x201d;), which summarizes how consistently performance changes across folds: higher values imply that MAE follows a clear temporal pattern rather than fluctuating idiosyncratically.</p>
<p>An analogous analysis is carried out for the <italic>R</italic><sup>2</sup> metric itself. By regressing fold-wise <italic>R</italic><sup>2</sup> values on the fold index, we obtain an <italic>R</italic><sup>2</sup> slope that describes how the explanatory power of the model evolves over time. In this case, a positive slope indicates that the model accounts for an increasing share of the variance in later periods, while a negative slope signals that the model is gradually losing explanatory strength.</p>
<p>To make it easier to compare different crops and models, we define a straightforward notion of stability based on the MAE trend over time. If the absolute slope satisfies (|<italic>&#x3b2;</italic><sub>1</sub>| <italic>&lt;</italic> 10, kg/ha) per fold, we label the model as Stable, meaning that any systematic change in error is small compared with the natural variability of the task. When the slope is larger and positive, we read this as a warning sign that performance is gradually worsening, which is consistent with concept drift or an inability of the model to keep up with changing conditions. By contrast, negative slopes, especially when accompanied by rising (<italic>R</italic><sup>2</sup>) values, suggest that the model is not only holding up over time but is also learning from the additional information present in the later folds, and thus generalizes better to the most recent years.</p>
</sec>
<sec id="s3_5_5">
<label>3.5.5</label>
<title>Diagnostic analyses</title>
<p>For the best-performing models, we go beyond summary scores and look closely at how they behave using a set of simple but informative checks. We start with predicted-versus-observed plots, where we place the model&#x2019;s yield predictions on one axis and the actual yields on the other, adding a 45-degree line to represent perfect agreement. When the model performs well, the points cluster tightly around this line across the entire range of values, indicating that it reasonably accurately captures both low and high yields.</p>
<p>Next, we look at residual plots, in which the residuals <inline-formula>
<mml:math display="inline" id="im57"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#xa0;</mml:mo></mml:mrow></mml:math></inline-formula> are plotted against the predicted values. These plots help us see whether errors are roughly random or whether there are visible patterns for example, larger errors at higher predicted yields, systematic curvature, or bands of points that might indicate bias, heteroscedasticity, or unmodelled non-linear effects.</p>
<p>Here we look for patterns such as increasing spread with larger predictions (heteroscedasticity), systematic curvature, or bands of points that might indicate unmodelled non-linear effects or bias. To understand the residual distribution more directly, we also look at histograms of the residuals, which help to reveal skewness, heavy tails, or a small number of extreme outliers. In addition, we use Q&#x2013;Q plots comparing the empirical residual quantiles to those of a theoretical normal distribution, corresponding to the assumption.</p>
<disp-formula>
<mml:math display="block" id="M31"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x223c;</mml:mo><mml:mi mathvariant="script">N</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:msup><mml:mi>&#x3c3;</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>If the model is well specified, several patterns should appear simultaneously: predicted-versus-observed points should be roughly centered on the 45-degree line; residuals should be scattered around zero with no obvious structure and roughly constant spread; the residual histogram should be close to symmetric and bell-shaped; and the Q&#x2013;Q plot points should lie close to the diagonal. Noticeable departures from any of these behaviours for example, strong curvature or funnels in the residual plot, heavy tails in the histogram, or systematic bends in the Q&#x2013;Q plot suggest potential misspecification, influential outliers, or violated modelling assumptions, and signal that further refinement or alternative model choices may be needed.</p>
<p><xref ref-type="statement" rid="algo3"><bold>Algorithm 3</bold></xref> presents the complete model training and evaluation pipeline.</p>
<statement content-type="algorithm" id="algo3">
<label>Algorithm 3</label>
<p><graphic mimetype="image" mime-subtype="tiff" xlink:href="fagro-08-1767878-g012.tif"/></p>
</statement>
<p>This rigorous experimental framework ensures that our findings are robust, reproducible, and scientifically sound, following best practices in machine learning evaluation for agricultural applications.</p>
</sec>
</sec>
</sec>
<sec id="s4" sec-type="results">
<label>4</label>
<title>Results and analysis</title>
<sec id="s4_1">
<label>4.1</label>
<title>Model performance comparison</title>
<sec id="s4_1_1">
<label>4.1.1</label>
<title>Overall performance across crops</title>
<p>Our evaluation across the six major crops shows that the more&#xa0;advanced machine learning methods and Random Forest&#xa0;in&#xa0;particular deliver consistently strong predictive performance.&#xa0;As&#xa0;summarized in <xref ref-type="table" rid="T4"><bold>Table&#xa0;4</bold></xref>, the top model for each crop&#xa0;is&#xa0;a&#xa0;configuration that incorporates network-based features&#xa0;with&#xa0;network, underscoring the added value of the network information.</p>
<table-wrap id="T4" position="float">
<label>Table&#xa0;4</label>
<caption>
<p>Best model performance summary across six crops.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="center">Crop</th>
<th valign="middle" align="center">Model</th>
<th valign="middle" align="center">MAE (kg/ha)</th>
<th valign="middle" align="center">
RMSE (kg/ha)</th>
<th valign="middle" align="center">MAPE(%)</th>
<th valign="middle" align="center">MedAE (kg/ha)</th>
<th valign="middle" align="center"><inline-formula>
<mml:math display="inline" id="im86"><mml:mrow><mml:msup><mml:mi>R</mml:mi><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="center">Rice</td>
<td valign="middle" align="center">RF</td>
<td valign="middle" align="center">35.88 &#xb1; 9.87</td>
<td valign="middle" align="center">88.23 &#xb1; 22.79</td>
<td valign="middle" align="center">2.69 &#xb1; 1.17</td>
<td valign="middle" align="center">12.27 &#xb1; 3.00</td>
<td valign="middle" align="center">0.988 &#xb1; 0.008</td>
</tr>
<tr>
<td valign="middle" align="center">Wheat</td>
<td valign="middle" align="center">RF</td>
<td valign="middle" align="center">54.08 &#xb1; 13.72</td>
<td valign="middle" align="center">133.55 &#xb1; 35.44</td>
<td valign="middle" align="center">2.77 &#xb1; 0.79</td>
<td valign="middle" align="center">13.05 &#xb1; 2.19</td>
<td valign="middle" align="center">0.976 &#xb1; 0.014</td>
</tr>
<tr>
<td valign="middle" align="center">Maize</td>
<td valign="middle" align="center">RF</td>
<td valign="middle" align="center">58.39 &#xb1; 22.80</td>
<td valign="middle" align="center">163.40 &#xb1; 43.30</td>
<td valign="middle" align="center">2.94 &#xb1; 1.25</td>
<td valign="middle" align="center">13.33 &#xb1; 3.95</td>
<td valign="middle" align="center">0.971 &#xb1; 0.009</td>
</tr>
<tr>
<td valign="middle" align="center">Groundnut</td>
<td valign="middle" align="center">RF</td>
<td valign="middle" align="center">42.11 &#xb1; 24.12</td>
<td valign="middle" align="center">87.46 &#xb1; 34.18</td>
<td valign="middle" align="center">4.59 &#xb1; 3.68</td>
<td valign="middle" align="center">14.59 &#xb1; 11.65</td>
<td valign="middle" align="center">0.946 &#xb1; 0.058</td>
</tr>
<tr>
<td valign="middle" align="center">Cotton</td>
<td valign="middle" align="center">RF</td>
<td valign="middle" align="center">13.77 &#xb1; 5.90</td>
<td valign="middle" align="center">24.97 &#xb1; 8.40</td>
<td valign="middle" align="center">4.47 &#xb1; 2.51</td>
<td valign="middle" align="center">5.06 &#xb1; 2.00</td>
<td valign="middle" align="center">0.969 &#xb1; 0.024</td>
</tr>
<tr>
<td valign="middle" align="center">Sugarcane</td>
<td valign="middle" align="center">RF</td>
<td valign="middle" align="center">129.68 &#xb1; 19.33</td>
<td valign="middle" align="center">308.99 &#xb1; 36.80</td>
<td valign="middle" align="center">8.08 &#xb1; 3.03</td>
<td valign="middle" align="center">44.80 &#xb1; 14.18</td>
<td valign="middle" align="center">0.986 &#xb1; 0.003</td>
</tr>
<tr>
<td valign="middle" align="center"><bold>Average</bold></td>
<td valign="middle" align="center"/>
<td valign="middle" align="center">55.65</td>
<td valign="middle" align="center">134.43</td>
<td valign="middle" align="center">4.26</td>
<td valign="middle" align="center">17.18</td>
<td valign="middle" align="center"><bold>0.973</bold></td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>
<p>Values in bold indicate the best-performing result (optimal value) within each crop for the corresponding metric/model comparison.</p></fn>
</table-wrap-foot>
</table-wrap>
<p>Several broad patterns stand out from <xref ref-type="table" rid="T4"><bold>Table&#xa0;4</bold></xref>. To begin with, the overall fit of the models is extremely strong. For every one of the six crops, the reported <italic>R</italic><sup>2</sup> values are above 0.94, and for rice and sugarcane they exceed 0.98. In other words, the models capture well over 94% of the variation in observed yields, which is unusually high for large-scale agricultural yield prediction and points to near state-of-the-art performance.</p>
<p>The magnitude of the errors is also small when set against typical yield levels. Rice, for example, has a mean absolute error (MAE) of 35.88 kg/ha, compared with an average yield of 1,483 kg/ha, corresponding to a relative error of roughly 2.4%. Wheat shows a similar pattern, with an MAE of 54.08 kg/ha versus a mean yield of 1,489 kg/ha (about 3.6% relative error). These discrepancies are modest enough that, from a practical standpoint, the predictions lie quite close to the realized yields.</p>
<p>The percentage errors tell a consistent story. Mean absolute percentage error (MAPE) values range from 2.69% for rice to 8.08% for sugarcane. Even at the upper end of this interval, the model still delivers a level of accuracy that is entirely usable for planning, scenario analysis, and policy support in agricultural contexts.</p>
<p>Another notable feature is the stability of performance across time. Variation in the metrics across the three time-series folds is modest, and the coefficient of variation for (<italic>R</italic><sup>2</sup>) stays low, ranging from just 0.3% for sugarcane to 6.1% for groundnut. This pattern suggests that the models are not narrowly tuned to a single time period but instead deliver a comparable level of accuracy across the different temporal segments.</p>
<p>Finally, the same pattern emerges when we look at model choice: in all six cases, the best-performing configuration is a Random Forest with network features (with_network). This repeated outcome suggests that Random Forest, when augmented with network-derived covariates, is particularly well suited to the structure of this problem and offers a strong default choice for district-level multi-crop yield prediction.</p>
<p><xref ref-type="table" rid="T5"><bold>Table&#xa0;5</bold></xref> provides a comprehensive comparison of all models across both feature configurations.</p>
<table-wrap id="T5" position="float">
<label>Table&#xa0;5</label>
<caption>
<p>Complete model performance comparison (Mean &#xb1; Std).</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="left">Crop</th>
<th valign="middle" align="left">Model</th>
<th valign="middle" align="left">Feature set</th>
<th valign="middle" align="left">MAE (kg/ha)</th>
<th valign="middle" align="left"><italic>R</italic><sup>2</sup></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" rowspan="8" align="left">Rice</td>
<td valign="middle" align="left">Na&#xef;ve</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">287.08 &#xb1; 8.00</td>
<td valign="middle" align="center">0.760 &#xb1; 0.019</td>
</tr>
<tr>
<td valign="middle" align="left">RollingMean3</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">263.63 &#xb1; 21.45</td>
<td valign="middle" align="center">0.808 &#xb1; 0.028</td>
</tr>
<tr>
<td valign="middle" align="left">Ridge</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">107.43 &#xb1; 123.31</td>
<td valign="middle" align="center">0.440 &#xb1; 0.964</td>
</tr>
<tr>
<td valign="middle" align="left">RandomForest</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">35.66 &#xb1; 9.74</td>
<td valign="middle" align="center">0.988 &#xb1; 0.008</td>
</tr>
<tr>
<td valign="middle" align="left">GradientBoosting</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">57.11 &#xb1; 7.68</td>
<td valign="middle" align="center">0.987 &#xb1; 0.008</td>
</tr>
<tr>
<td valign="middle" align="left">Ridge</td>
<td valign="middle" align="center">with_network</td>
<td valign="middle" align="center">95.80 &#xb1; 101.19</td>
<td valign="middle" align="center">0.585 &#xb1; 0.713</td>
</tr>
<tr>
<td valign="middle" align="left">RandomForest</td>
<td valign="middle" align="center">with_network</td>
<td valign="middle" align="center"><bold>35.88 &#xb1; 9.87</bold></td>
<td valign="middle" align="center"><bold>0.988 &#xb1; 0.008</bold></td>
</tr>
<tr>
<td valign="middle" align="left">GradientBoosting</td>
<td valign="middle" align="center">with_network</td>
<td valign="middle" align="center">57.49 &#xb1; 8.04</td>
<td valign="middle" align="center">0.987 &#xb1; 0.008</td>
</tr>
<tr>
<td valign="middle" rowspan="8" align="left">Wheat</td>
<td valign="middle" align="left">Naive</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">287.02 &#xb1; 44.76</td>
<td valign="middle" align="center">0.784 &#xb1; 0.037</td>
</tr>
<tr>
<td valign="middle" align="left">RollingMean3</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">269.12 &#xb1; 47.89</td>
<td valign="middle" align="center">0.821 &#xb1; 0.039</td>
</tr>
<tr>
<td valign="middle" align="left">Ridge</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">79.23 &#xb1; 81.32</td>
<td valign="middle" align="center">0.832 &#xb1; 0.287</td>
</tr>
<tr>
<td valign="middle" align="left">RandomForest</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">53.99 &#xb1; 13.74</td>
<td valign="middle" align="center">0.976 &#xb1; 0.014</td>
</tr>
<tr>
<td valign="middle" align="left">GradientBoosting</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">62.96 &#xb1; 10.48</td>
<td valign="middle" align="center">0.985 &#xb1; 0.004</td>
</tr>
<tr>
<td valign="middle" align="left">Ridge</td>
<td valign="middle" align="center">with_network</td>
<td valign="middle" align="center">75.74 &#xb1; 75.11</td>
<td valign="middle" align="center">0.855 &#xb1; 0.248</td>
</tr>
<tr>
<td valign="middle" align="left">RandomForest</td>
<td valign="middle" align="center">with_network</td>
<td valign="middle" align="center"><bold>54.08 &#xb1; 13.72</bold></td>
<td valign="middle" align="center"><bold>0.976 &#xb1; 0.014</bold></td>
</tr>
<tr>
<td valign="middle" align="left">GradientBoosting</td>
<td valign="middle" align="center">with_network</td>
<td valign="middle" align="center">63.34 &#xb1; 9.96</td>
<td valign="middle" align="center">0.984 &#xb1; 0.006</td>
</tr>
<tr>
<td valign="middle" rowspan="8" align="left">Maize</td>
<td valign="middle" align="left">Naive</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">441.26 &#xb1; 63.04</td>
<td valign="middle" align="center">0.474 &#xb1; 0.161</td>
</tr>
<tr>
<td valign="middle" align="left">RollingMean3</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">411.35 &#xb1; 67.38</td>
<td valign="middle" align="center">0.565 &#xb1; 0.132</td>
</tr>
<tr>
<td valign="middle" align="left">Ridge</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">244.83 &#xb1; 366.01</td>
<td valign="middle" align="center">-3.317 &#xb1; 7.473</td>
</tr>
<tr>
<td valign="middle" align="left">RandomForest</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">58.23 &#xb1; 22.94</td>
<td valign="middle" align="center">0.971 &#xb1; 0.009</td>
</tr>
<tr>
<td valign="middle" align="left">GradientBoosting</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">67.42 &#xb1; 11.86</td>
<td valign="middle" align="center">0.983 &#xb1; 0.011</td>
</tr>
<tr>
<td valign="middle" align="left">Ridge</td>
<td valign="middle" align="center">with_network</td>
<td valign="middle" align="center">240.10 &#xb1; 356.09</td>
<td valign="middle" align="center">-3.178 &#xb1; 7.233</td>
</tr>
<tr>
<td valign="middle" align="left">RandomForest</td>
<td valign="middle" align="center">with_network</td>
<td valign="middle" align="center"><bold>58.39 &#xb1; 22.80</bold></td>
<td valign="middle" align="center"><bold>0.971 &#xb1; 0.009</bold></td>
</tr>
<tr>
<td valign="middle" align="left">GradientBoosting</td>
<td valign="middle" align="center">with_network</td>
<td valign="middle" align="center">67.41 &#xb1; 12.01</td>
<td valign="middle" align="center">0.983 &#xb1; 0.010</td>
</tr>
<tr>
<td valign="middle" rowspan="8" align="left">Groundnut</td>
<td valign="middle" align="left">Naive</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">278.70 &#xb1; 6.92</td>
<td valign="middle" align="center">0.068 &#xb1; 0.298</td>
</tr>
<tr>
<td valign="middle" align="left">RollingMean3</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">258.10 &#xb1; 5.48</td>
<td valign="middle" align="center">0.266 &#xb1; 0.279</td>
</tr>
<tr>
<td valign="middle" align="left">Ridge</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">149.12 &#xb1; 187.58</td>
<td valign="middle" align="center">-1.941 &#xb1; 5.069</td>
</tr>
<tr>
<td valign="middle" align="left">RandomForest</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">41.81 &#xb1; 23.86</td>
<td valign="middle" align="center">0.946 &#xb1; 0.057</td>
</tr>
<tr>
<td valign="middle" align="left">GradientBoosting</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">46.68 &#xb1; 13.50</td>
<td valign="middle" align="center">0.966 &#xb1; 0.030</td>
</tr>
<tr>
<td valign="middle" align="left">Ridge</td>
<td valign="middle" align="center">with_network</td>
<td valign="middle" align="center">149.23 &#xb1; 187.50</td>
<td valign="middle" align="center">-2.085 &#xb1; 5.319</td>
</tr>
<tr>
<td valign="middle" align="left">RandomForest</td>
<td valign="middle" align="center">with_network</td>
<td valign="middle" align="center"><bold>42.11 &#xb1; 24.12</bold></td>
<td valign="middle" align="center"><bold>0.946 &#xb1; 0.058</bold></td>
</tr>
<tr>
<td valign="middle" align="left">GradientBoosting</td>
<td valign="middle" align="center">with_network</td>
<td valign="middle" align="center">46.60 &#xb1; 13.25</td>
<td valign="middle" align="center">0.966 &#xb1; 0.029</td>
</tr>
<tr>
<td valign="middle" rowspan="8" align="left">Cotton</td>
<td valign="middle" align="left">Naive</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">90.30 &#xb1; 26.25</td>
<td valign="middle" align="center">0.119 &#xb1; 0.071</td>
</tr>
<tr>
<td valign="middle" align="left">RollingMean3</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">87.05 &#xb1; 25.61</td>
<td valign="middle" align="center">0.244 &#xb1; 0.072</td>
</tr>
<tr>
<td valign="middle" align="left">Ridge</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">34.87 &#xb1; 44.71</td>
<td valign="middle" align="center">-0.563 &#xb1; 2.696</td>
</tr>
<tr>
<td valign="middle" align="left">RandomForest</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">13.56 &#xb1; 5.76</td>
<td valign="middle" align="center">0.970 &#xb1; 0.023</td>
</tr>
<tr>
<td valign="middle" align="left">GradientBoosting</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">19.74 &#xb1; 11.22</td>
<td valign="middle" align="center">0.944 &#xb1; 0.069</td>
</tr>
<tr>
<td valign="middle" align="left">Ridge</td>
<td valign="middle" align="center">with_network</td>
<td valign="middle" align="center">37.04 &#xb1; 48.46</td>
<td valign="middle" align="center">-0.797 &#xb1; 3.101</td>
</tr>
<tr>
<td valign="middle" align="left">RandomForest</td>
<td valign="middle" align="center">with_network</td>
<td valign="middle" align="center"><bold>13.77 &#xb1; 5.90</bold></td>
<td valign="middle" align="center"><bold>0.969 &#xb1; 0.024</bold></td>
</tr>
<tr>
<td valign="middle" align="left">GradientBoosting</td>
<td valign="middle" align="center">with_network</td>
<td valign="middle" align="center">19.43 &#xb1; 10.75</td>
<td valign="middle" align="center">0.944 &#xb1; 0.069</td>
</tr>
<tr>
<td valign="middle" rowspan="8" align="left">Sugarcane</td>
<td valign="middle" align="left">Naive</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">984.86 &#xb1; 157.03</td>
<td valign="middle" align="center">0.591 &#xb1; 0.150</td>
</tr>
<tr>
<td valign="middle" align="left">RollingMean3</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">966.96 &#xb1; 166.80</td>
<td valign="middle" align="center">0.658 &#xb1; 0.116</td>
</tr>
<tr>
<td valign="middle" align="left">Ridge</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">706.85 &#xb1; 786.72</td>
<td valign="middle" align="center">-0.112 &#xb1; 1.896</td>
</tr>
<tr>
<td valign="middle" align="left">RandomForest</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">128.33 &#xb1; 17.80</td>
<td valign="middle" align="center">0.986 &#xb1; 0.003</td>
</tr>
<tr>
<td valign="middle" align="left">GradientBoosting</td>
<td valign="middle" align="center">no_network</td>
<td valign="middle" align="center">235.73 &#xb1; 10.90</td>
<td valign="middle" align="center">0.981 &#xb1; 0.002</td>
</tr>
<tr>
<td valign="middle" align="left">Ridge</td>
<td valign="middle" align="center">with_network</td>
<td valign="middle" align="center">744.26 &#xb1; 850.0</td>
<td valign="middle" align="center">-0.292 &#xb1; 2.208</td>
</tr>
<tr>
<td valign="middle" align="left">RandomForest</td>
<td valign="middle" align="center">with_network</td>
<td valign="middle" align="center"><bold>129.68 &#xb1; 19.33</bold></td>
<td valign="middle" align="center"><bold>0.986 &#xb1; 0.003</bold></td>
</tr>
<tr>
<td valign="middle" align="left">GradientBoosting</td>
<td valign="middle" align="center">with_network</td>
<td valign="middle" align="center">245.45 &#xb1; 21.41</td>
<td valign="middle" align="center">0.980 &#xb1; 0.002</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>
<p>Values in bold indicate the best-performing result (optimal value) within each crop for the corresponding metric/model comparison.</p></fn>
</table-wrap-foot>
</table-wrap>
</sec>
<sec id="s4_1_2">
<label>4.1.2</label>
<title>Crop-specific results</title>
<p>Rice: Rice stands out as the best-predicted crop, with the highest (<italic>R</italic><sup>2</sup>) of 0.988 and a very small MAE of 35.88<italic>kg/ha</italic>, corresponding to only 2.4% of the mean yield. The fact that Random Forest with and without network features yield almost identical errors (35.88<italic>vs.</italic> 35.66<italic>kg/ha</italic>) suggests that, for rice, temporal and climatic signals carry most of the predictive power, while network effects play a more modest role. Gradient Boosting performs almost as well (<italic>R</italic><sup>2</sup> = 0.987), whereas Ridge regression shows noticeably higher variability, which is consistent with the challenges posed by multicollinearity among the input features.</p>
<p>Wheat: Wheat also exhibits very strong performance, with (<italic>R</italic><sup>2</sup> = 0.976) and an MAE of 54.08<italic>kg/ha</italic> (around 3.6% of the mean yield). Compared with rice, however, the variation in error across folds is slightly larger (standard deviation of 13.72<italic>kg/ha</italic>). This higher fold-to-fold variability may reflect the fact that wheat yields are more sensitive to inter-annual changes in weather, input use, or management practices, and that these factors can differ more markedly across regions.</p>
<p>Maize: For maize, the models achieve excellent fit (<italic>R</italic><sup>2</sup> = 0.971) despite the very wide yield range (0&#x2013;5,898<italic>kg/ha</italic>). The standard deviation of MAE (22.80,kg/ha) is higher than for rice and wheat, which is consistent with maize being cultivated under a broader set of agro-climatic and management conditions. Simple baselines perform poorly in this setting (Naive (<italic>R</italic><sup>2</sup> = 0.474), underlining how important rich feature sets and non-linear models are for capturing maize yield variability.</p>
<p>Groundnut: Groundnut shows the largest error variability among the four non-perennial crops, with an MAE standard deviation of 24.12<italic>kg/ha</italic>. This pattern is consistent with groundnut&#x2019;s well-known sensitivity to rainfall timing, soil moisture, and local soil characteristics. Even so, the Random Forest model achieves a strong fit with (<italic>R</italic><sup>2</sup> = 0.946), meaning it still captures a large fraction of the yield variability. The gain over the simple baseline is especially notable: the MAE drops from 278.70<italic>kg/ha</italic> with the Naive model to 42.11<italic>kg/ha</italic> with Random Forest, making it clear that modern machine learning methods can substantially improve groundnut yield prediction.</p>
<p>Cotton: Cotton attains the lowest absolute MAE (13.77<italic>kg/ha</italic>), which partly reflects its lower average yield level (mean 119.82<italic>kg/ha</italic>). When expressed as a percentage, however, the errors (MAPE = 4.47%) are broadly in line with those of the other crops. Cotton is characterized by a large number of low or zero yield observations (the 75th percentile is only 202kg/ha), which makes the distribution more challenging to model. The strong performance of Random Forest in this case suggests that its flexibility is well suited to handling this mixture of zero and positive yields. We additionally evaluated performance in the low-yield regime (actual yield <italic>&lt;</italic> 200kg/ha) to understand behavior under difficult-to-predict cases. The model tends to overpredict in this regime, consistent with training-data dominance by normal-yield observations and limited shock variables. Detailed results are in <xref ref-type="supplementary-material" rid="SM1"><bold>Supplementary Table&#xa0;2</bold></xref>.</p>
<p>Sugarcane: Sugarcane naturally exhibits the highest absolute errors, with an MAE of 129.68<italic>kg/ha</italic>, simply because its baseline yields are much larger (mean 4,484<italic>kg/ha</italic>). Even so, the fit remains excellent, with (<italic>R</italic><sup>2</sup> = 0.986). The coefficient of variation for MAE is relatively small ((19.33<italic>/</italic>129.68 &#x2248; 14.9%)), indicating that the model&#x2019;s performance for sugarcane is fairly consistent across the different folds. Sugarcane is also the crop that gains the most from advanced modelling: the MAE drops from 984.86<italic>kg/ha</italic> under the Naive baseline to 129.68<italic>kg/ha</italic> with the Random Forest model, an improvement of roughly 87%. This substantial reduction in error provides strong evidence that sophisticated machine learning models are well worth deploying for operational sugarcane yield forecasting.</p>
</sec>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Network features impact assessment</title>
<sec id="s4_2_1">
<label>4.2.1</label>
<title>Performance gain analysis</title>
<p>A key question in this study is whether network-derived features add real predictive value beyond temporal and diversification cues. As shown in <xref ref-type="table" rid="T6"><bold>Table&#xa0;6</bold></xref>, comparing Gradient Boosting with and without these features leads to a somewhat surprising result the network features add little, if any, improvement in overall accuracy.</p>
<table-wrap id="T6" position="float">
<label>Table&#xa0;6</label>
<caption>
<p>Impact of network features on gradient boosting performance.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="left">Crop</th>
<th valign="middle" align="center">MAE no network (kg/ha)</th>
<th valign="middle" align="center">MAE with network (kg/ha)</th>
<th valign="middle" align="center">Change (kg/ha)</th>
<th valign="middle" align="center">Improvement (%)</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="left">Rice</td>
<td valign="middle" align="center">57.11 &#xb1; 7.68</td>
<td valign="middle" align="center">57.49 &#xb1; 8.04</td>
<td valign="middle" align="center">+0.38</td>
<td valign="middle" align="center">-0.67%</td>
</tr>
<tr>
<td valign="middle" align="left">Wheat</td>
<td valign="middle" align="center">62.96 &#xb1; 10.48</td>
<td valign="middle" align="center">63.34 &#xb1; 9.96</td>
<td valign="middle" align="center">+0.38</td>
<td valign="middle" align="center">-0.60%</td>
</tr>
<tr>
<td valign="middle" align="left">Maize</td>
<td valign="middle" align="center">67.42 &#xb1; 11.86</td>
<td valign="middle" align="center">67.41 &#xb1; 12.01</td>
<td valign="middle" align="center">-0.01</td>
<td valign="middle" align="center">+0.01%</td>
</tr>
<tr>
<td valign="middle" align="left">Groundnut</td>
<td valign="middle" align="center">46.68 &#xb1; 13.50</td>
<td valign="middle" align="center">46.60 &#xb1; 13.25</td>
<td valign="middle" align="center">-0.08</td>
<td valign="middle" align="center">+0.17%</td>
</tr>
<tr>
<td valign="middle" align="left">Cotton</td>
<td valign="middle" align="center">19.74 &#xb1; 11.22</td>
<td valign="middle" align="center">19.43 &#xb1; 10.75</td>
<td valign="middle" align="center">-0.31</td>
<td valign="middle" align="center">+1.54%</td>
</tr>
<tr>
<td valign="middle" align="left">Sugarcane</td>
<td valign="middle" align="center">235.73 &#xb1; 10.90</td>
<td valign="middle" align="center">245.45 &#xb1; 21.41</td>
<td valign="middle" align="center">+9.72</td>
<td valign="middle" align="center">-4.13%</td>
</tr>
<tr>
<td valign="middle" align="left">Mean</td>
<td valign="middle" align="center">&#x2013;</td>
<td valign="middle" align="center">&#x2013;</td>
<td valign="middle" align="center">+1.68</td>
<td valign="middle" align="center">-0.61%</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>On average, the change in performance is very small. Across all six crops, the mean relative change in MAE is &#x2212;0.61%, with individual effects ranging from a degradation of &#x2212;4.13% for sugarcane to a modest improvement of +1.54% for cotton. These shifts are comparable in size to the natural variability observed across time-series folds and are therefore difficult to interpret as systematic gains or losses.</p>
<p>The crop-wise patterns are similarly muted. Rice and wheat show slight degradations in performance (&#x2212;0.67% and &#x2212;0.60%, respectively), maize is effectively unchanged (+0.01%), while groundnut and cotton exhibit small improvements (+0.17% and +1.54%). Sugarcane stands out as the only case with a clearly negative impact (&#x2212;4.13%), suggesting that, for this crop, the added network features may introduce more noise than signal. When we repeat the comparison for Random Forest (<xref ref-type="table" rid="T5"><bold>Table&#xa0;5</bold></xref>), the picture is much the same: models with and without network features perform almost identically, reinforcing the impression that the network layer does not materially change predictive accuracy under the current feature design.</p>
<p>In some instances most notably sugarcane the inclusion of network features is also associated with an increase in the standard deviation of MAE across folds, which hints at overfitting or the presence of noisy, weakly informative features. Taken together, these observations run counter to the intuitive appeal of network-based approaches and motivate a closer examination of how, and to what extent, the network-derived variables are actually being used by the models. We pursue this question further through a detailed feature importance analysis.</p>
</sec>
<sec id="s4_2_2">
<label>4.2.2</label>
<title>Feature importance analysis</title>
<p>To understand why network features contribute minimally, we examine feature importance distributions from Gradient Boosting models. <xref ref-type="table" rid="T7"><bold>Table&#xa0;7</bold></xref> summarizes the contribution of network features to overall model importance.</p>
<table-wrap id="T7" position="float">
<label>Table&#xa0;7</label>
<caption>
<p>Network feature contribution to total feature importance.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="top" align="left">Crop</th>
<th valign="top" align="center">Total network importance (%)</th>
<th valign="top" align="center">Top temporal feature</th>
<th valign="top" align="center">Top diversification feature</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Rice</td>
<td valign="top" align="center">0.1%</td>
<td valign="top" align="center">lag1 (42.3%)</td>
<td valign="top" align="center">diversity_simpson (3.2%)</td>
</tr>
<tr>
<td valign="top" align="left">Wheat</td>
<td valign="top" align="center">0.2%</td>
<td valign="top" align="center">lag1 (38.7%)</td>
<td valign="top" align="center">diversity_simpson (2.8%)</td>
</tr>
<tr>
<td valign="top" align="left">Maize</td>
<td valign="top" align="center">0.0%</td>
<td valign="top" align="center">lag1 (45.1%)</td>
<td valign="top" align="center">num_active_crops (1.9%)</td>
</tr>
<tr>
<td valign="top" align="left">Groundnut</td>
<td valign="top" align="center">0.0%</td>
<td valign="top" align="center">rolling_mean (31.2%)</td>
<td valign="top" align="center">diversity_simpson (2.1%)</td>
</tr>
<tr>
<td valign="top" align="left">Cotton</td>
<td valign="top" align="center">0.3%</td>
<td valign="top" align="center">lag1 (29.8%)</td>
<td valign="top" align="center">diversity_simpson (4.7%)</td>
</tr>
<tr>
<td valign="top" align="left">Sugarcane</td>
<td valign="top" align="center">0.9%</td>
<td valign="top" align="center">lag1 (48.6%)</td>
<td valign="top" align="center">diversity_simpson (1.6%)</td>
</tr>
<tr>
<td valign="top" align="left"><bold>Mean</bold></td>
<td valign="top" align="center"><bold>0.25%</bold></td>
<td valign="top" align="center"><bold>lag1 (39.3%)</bold></td>
<td valign="top" align="center">&#x2013;</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>
<p>Values in bold indicate the best-performing result (optimal value) within each crop for the corresponding metric/model comparison.</p></fn>
</table-wrap-foot>
</table-wrap>
<p>The feature-importance results highlight a few simple but telling patterns.</p>
<p>First, network-derived features matter very little. For every crop, centrality-based network variables together account for less than 1% of total importance. The highest share appears for sugarcane at just 0.9%, while for several crops their contribution is effectively zero.</p>
<p>By contrast, temporal features clearly dominate. The lag-1 yield feature on its own explains between 29.8% and 48.6% of the total importance, with an average of 39.3% across crops. Other temporal variables, such as the rolling mean and lag-2 yield, also rank among the top predictors, and taken together the temporal features typically account for about 50&#x2013;70% of the model&#x2019;s explanatory power.</p>
<p>Diversification plays a secondary but visible role. The Simpson diversity index contributes between 1.6% and 4.7%, which is more than the combined contribution of all network features, but still far below that of the main temporal predictors.</p>
<p>There are some mild crop-specific nuances. For sugarcane, network features reach their highest relative importance (0.9%), which may reflect the influence of regional processing infrastructure captured by centrality. For maize and groundnut, network variables receive essentially zero importance, suggesting that yields are driven almost entirely by local temporal dynamics. Cotton shows a small but non-zero network contribution (0.3%), which could be linked to pest or disease pressures that spread along regional connectivity patterns.</p>
<p>Taken together, these findings indicate that yield prediction in this setting is overwhelmingly driven by temporal autocorrelation: what happened last year is a very strong guide to what happens this year. In comparison, the current form of the network structure adds only a weak additional signal on top of the temporal and diversification features. To verify that the learned feature importance is not fold-specific, we computed importance separately for each cross-validation fold. The top predictors show very small variability across folds, indicating stable learning rather than noise exploitation. Fold-wise stability is reported in <xref ref-type="supplementary-material" rid="SM1"><bold>Supplementary Table&#xa0;4</bold></xref>.</p>
</sec>
</sec>
<sec id="s4_3">
<label>4.3</label>
<title>Statistical significance testing</title>
<p>To check whether the observed performance differences are genuinely meaningful, rather than just noise, we use paired (t)-tests to compare model configurations, with the results summarized in <xref ref-type="table" rid="T8"><bold>Table&#xa0;8</bold></xref>. The tests lead to three main conclusions.</p>
<table-wrap id="T8" position="float">
<label>Table&#xa0;8</label>
<caption>
<p>Statistical significance tests for model comparisons.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="left">Crop</th>
<th valign="middle" align="left">Comparison</th>
<th valign="middle" align="left">Mean MAE 1 (kg/ha)</th>
<th valign="middle" align="left">Mean MAE 2 (kg/ha)</th>
<th valign="middle" align="left">Improvement (%)</th>
<th valign="middle" align="left">p-value</th>
<th valign="middle" align="left">Sig. (<italic>&#x3b1;</italic> = 0.05)</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" rowspan="2" align="left">Rice</td>
<td valign="middle" align="left">GB w/vs w/o net</td>
<td valign="middle" align="right">57.49</td>
<td valign="middle" align="right">57.11</td>
<td valign="middle" align="right">-0.67%</td>
<td valign="middle" align="right">0.5895</td>
<td valign="middle" align="center">No</td>
</tr>
<tr>
<td valign="middle" align="left">GB w/net vs Naive</td>
<td valign="middle" align="right">57.49</td>
<td valign="middle" align="right">287.08</td>
<td valign="middle" align="right">79.97%</td>
<td valign="middle" align="right">0.0007</td>
<td valign="middle" align="center">Yes</td>
</tr>
<tr>
<td valign="middle" rowspan="2" align="left">Wheat</td>
<td valign="middle" align="left">GB w/vs w/o net</td>
<td valign="middle" align="right">63.34</td>
<td valign="middle" align="right">62.96</td>
<td valign="middle" align="right">-0.60%</td>
<td valign="middle" align="right">0.4656</td>
<td valign="middle" align="center">No</td>
</tr>
<tr>
<td valign="middle" align="left">GB w/net vs Naive</td>
<td valign="middle" align="right">63.34</td>
<td valign="middle" align="right">287.02</td>
<td valign="middle" align="right">77.93%</td>
<td valign="middle" align="right">0.0080</td>
<td valign="middle" align="center">Yes</td>
</tr>
<tr>
<td valign="middle" rowspan="2" align="left">Maize</td>
<td valign="middle" align="left">GB w/vs w/o net</td>
<td valign="middle" align="right">67.41</td>
<td valign="middle" align="right">67.42</td>
<td valign="middle" align="right">0.01%</td>
<td valign="middle" align="right">0.9390</td>
<td valign="middle" align="center">No</td>
</tr>
<tr>
<td valign="middle" align="left">GB w/net vs Naive</td>
<td valign="middle" align="right">67.41</td>
<td valign="middle" align="right">441.26</td>
<td valign="middle" align="right">84.72%</td>
<td valign="middle" align="right">0.0076</td>
<td valign="middle" align="center">Yes</td>
</tr>
<tr>
<td valign="middle" rowspan="2" align="left">Groundnut</td>
<td valign="middle" align="left">GB w/vs w/o net</td>
<td valign="middle" align="right">46.60</td>
<td valign="middle" align="right">46.68</td>
<td valign="middle" align="right">0.17%</td>
<td valign="middle" align="right">0.8320</td>
<td valign="middle" align="center">No</td>
</tr>
<tr>
<td valign="middle" align="left">GB w/net vs Naive</td>
<td valign="middle" align="right">46.60</td>
<td valign="middle" align="right">278.70</td>
<td valign="middle" align="right">83.28%</td>
<td valign="middle" align="right">0.0025</td>
<td valign="middle" align="center">Yes</td>
</tr>
<tr>
<td valign="middle" rowspan="2" align="left">Cotton</td>
<td valign="middle" align="left">GB w/vs w/o net</td>
<td valign="middle" align="right">19.43</td>
<td valign="middle" align="right">19.74</td>
<td valign="middle" align="right">1.54%</td>
<td valign="middle" align="right">0.3812</td>
<td valign="middle" align="center">No</td>
</tr>
<tr>
<td valign="middle" align="left">GB w/net vs Naive</td>
<td valign="middle" align="right">19.43</td>
<td valign="middle" align="right">90.30</td>
<td valign="middle" align="right">78.48%</td>
<td valign="middle" align="right">0.0627</td>
<td valign="middle" align="center">No</td>
</tr>
<tr>
<td valign="middle" rowspan="2" align="left">Sugarcane</td>
<td valign="middle" align="left">GB w/vs w/o net</td>
<td valign="middle" align="right">245.45</td>
<td valign="middle" align="right">235.73</td>
<td valign="middle" align="right">-4.13%</td>
<td valign="middle" align="right">0.3028</td>
<td valign="middle" align="center">No</td>
</tr>
<tr>
<td valign="middle" align="left">GB w/net vs Naive</td>
<td valign="middle" align="right">245.45</td>
<td valign="middle" align="right">984.86</td>
<td valign="middle" align="right">75.08%</td>
<td valign="middle" align="right">0.0145</td>
<td valign="middle" align="center">Yes</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>First, network-derived features do not significantly improve predictions. For all six crops, the comparison between Gradient Boosting with and without network features yields (<italic>p</italic>)-values well above 0.05 (ranging from 0.3028 to 0.9390). These large (<italic>p</italic>)-values indicate that any observed differences in MAE are entirely compatible with random variation across folds, and there is no statistical evidence that network features improve accuracy.</p>
<p>Second, advanced models clearly outperform simple baselines. When we compare Gradient Boosting with_network to the Naive baseline, we obtain statistically significant gains for five of the six crops ((<italic>p &lt;</italic> 0.05)), with error reductions between 75.08% (sugarcane) and 84.72% (maize). This confirms that machine learning models with carefully designed features add substantial value for yield prediction. Cotton is the only exception in a strict statistical sense: its (<italic>p</italic>) &#x2212; <italic>value</italic>((<italic>p</italic> = 0.0627)) lies just above the conventional 0.05 threshold. This is plausibly explained by the combination of highly variable cotton yields (many zero or low values), a smaller absolute improvement (a 70.87,kg/ha MAE reduction), and the fact that the paired test is based on only three folds. Even so, the 78.48% reduction in error is large in practical&#xa0;terms and would be highly relevant for real-world agricultural decisions.</p>
<p>Third, statistical power is limited but the pattern is consistent. With only three folds, our paired (t)-tests inevitably have low power, meaning that small effects are hard to detect. However, the repeated finding that network features are non-significant for all six crops, together with their near-zero feature importance, strongly suggests that the lack of significance is not simply a power issue. Instead, it reflects a genuine absence of useful signal in the current network feature design.</p>
</sec>
<sec id="s4_4">
<label>4.4</label>
<title>Temporal stability analysis</title>
<p>Model stability over time is essential for real-world deployment. If performance deteriorates quickly because of concept drift, models must be retrained frequently; if they remain stable, they can support multi-year forecasting with fewer interventions. <xref ref-type="table" rid="T9"><bold>Table&#xa0;9</bold></xref> summarizes temporal stability metrics for the Gradient Boosting models with network features, and several patterns emerge.</p>
<table-wrap id="T9" position="float">
<label>Table&#xa0;9</label>
<caption>
<p>Temporal stability analysis for gradient boosting with network features.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="top" rowspan="2" align="left">Crop</th>
<th valign="top" align="left">MAE</th>
<th valign="top" align="left">MAE</th>
<th valign="top" align="left">MAE</th>
<th valign="top" align="left">Trend</th>
<th valign="top" align="left">R&#xb2;</th>
<th valign="top" align="left">Performance</th>
</tr>
<tr>
<th valign="top" align="left">Fold 1</th>
<th valign="top" align="left">Fold 3</th>
<th valign="top" align="left">slope</th>
<th valign="top" align="left">R&#xb2;</th>
<th valign="top" align="left">slope</th>
<th valign="top" align="left">stable?</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="left">Rice</td>
<td valign="middle" align="center">65.44</td>
<td valign="middle" align="center">57.69</td>
<td valign="middle" align="center">-3.87</td>
<td valign="middle" align="center">0.232</td>
<td valign="middle" align="center">+0.0066</td>
<td valign="middle" align="center">Yes</td>
</tr>
<tr>
<td valign="middle" align="left">Wheat</td>
<td valign="middle" align="center">56.98</td>
<td valign="middle" align="center">74.81</td>
<td valign="middle" align="center">+8.92</td>
<td valign="middle" align="center">0.802</td>
<td valign="middle" align="center">+0.0045</td>
<td valign="middle" align="center">Yes</td>
</tr>
<tr>
<td valign="middle" align="left">Maize</td>
<td valign="middle" align="center">71.85</td>
<td valign="middle" align="center">76.56</td>
<td valign="middle" align="center">+2.35</td>
<td valign="middle" align="center">0.038</td>
<td valign="middle" align="center">+0.0099</td>
<td valign="middle" align="center">Yes</td>
</tr>
<tr>
<td valign="middle" align="left">Groundnut</td>
<td valign="middle" align="center">61.58</td>
<td valign="middle" align="center">41.82</td>
<td valign="middle" align="center">-9.88</td>
<td valign="middle" align="center">0.556</td>
<td valign="middle" align="center">+0.0272</td>
<td valign="middle" align="center">Yes</td>
</tr>
<tr>
<td valign="middle" align="left">Cotton</td>
<td valign="middle" align="center">31.45</td>
<td valign="middle" align="center">16.13</td>
<td valign="middle" align="center">-7.66</td>
<td valign="middle" align="center">0.508</td>
<td valign="middle" align="center">+0.0600</td>
<td valign="middle" align="center">Yes</td>
</tr>
<tr>
<td valign="middle" align="left">Sugarcane</td>
<td valign="middle" align="center">263.49</td>
<td valign="middle" align="center">251.07</td>
<td valign="middle" align="center">-6.21</td>
<td valign="middle" align="center">0.084</td>
<td valign="middle" align="center">-0.0005</td>
<td valign="middle" align="center">Yes</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>All six crops meet our &#x201c;Stable&#x201d; criterion, with MAE slopes below 10,kg/ha per fold. In practical terms, this means that performance does not change dramatically across the three time segments: the models transfer well from earlier to later periods, and there is no indication of pronounced concept drift within the study window. The direction of the trend is not the same for every crop. For rice ((-3.87)), groundnut ((-9.88)), cotton ((-7.66)), and sugarcane ((-6.21)), the MAE slopes are negative, so their errors become smaller in the later folds. This is likely because later folds benefit from more accumulated training data, reflect current farming practices more closely, and allow lagged and rolling temporal features to carry stronger signal. By contrast, wheat ((+8.92)) and maize ((+2.35)) show small positive slopes, indicating a slight decline in accuracy over time. This may be linked to changes in management, input use, or climate that are not fully captured by past data, or to gradual shifts in where these crops are grown.</p>
<p>The consistency of these trends is captured by the Trend <italic>R</italic><sup>2</sup> values. Wheat exhibits the most regular pattern (<italic>R</italic><sup>2</sup> = 0.802), consistent with a fairly smooth, monotonic increase in MAE across folds. Maize and sugarcane have very low Trend <italic>R</italic><sup>2</sup> values (below 0.1), suggesting that their fold-to-fold error changes are more irregular and do not follow a clear upward or downward trajectory. The remaining crops fall between these extremes (<italic>R</italic><sup>2</sup> &#x2248; 0.2&#x2013;0.6), indicating mild trends that are not perfectly linear.</p>
<p>Importantly, the slopes for model <italic>R</italic><sup>2</sup> are essentially zero for all crops (ranging from &#x2212;0.0005 to +0.0600). This shows that the proportion of variance explained remains consistently high over time. Even when MAE drifts slightly up or down, the models continue to capture most of the underlying yield variability, so changes in absolute error do not correspond to a meaningful loss of relative predictive strength.</p>
<p>From an operational viewpoint, these findings are very encouraging. The models can be used over several years without constant retraining, their performance in the most recent period (Fold 3) remains strong and aligned with current conditions, and the absence of sharp degradation suggests that they have learned patterns that generalize across years rather than overfitting to particular historical episodes.</p>
</sec>
<sec id="s4_5">
<label>4.5</label>
<title>Model diagnostics</title>
<p>We examine the best-performing models (Random Forest with network features) in more detail to understand how they behave, check for systematic problems, and see whether the usual modelling assumptions are reasonable. For each crop, <xref ref-type="fig" rid="f4"><bold>Figures&#xa0;4</bold></xref>&#x2013;<xref ref-type="fig" rid="f9"><bold>9</bold></xref> show a four-panel diagnostic plot summarizing these checks.</p>
<fig id="f4" position="float">
<label>Figure&#xa0;4</label>
<caption>
<p>Training set diagnostics: comprehensive diagnostic plots for rice yield prediction using random forest with network features. (Top-left) Predicted vs. observed yields showing near-perfect alignment (<italic>R</italic><sup>2</sup> = 0.999, training set); (Top-right) Residual plot indicating random scatter around zero; (Bottom-left) Residual distribution approximately normal (Mean=0.0, Std=22.9); (Bottom-right) Q-Q plot confirming normality with minor tail deviations. Note: The cross-validated <italic>R</italic><sup>2</sup> is 0.988 (<xref ref-type="table" rid="T4"><bold>Table&#xa0;4</bold></xref>); the higher training <italic>R</italic><sup>2</sup> reflects Random Forest&#x2019;s flexibility, not data leakage.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fagro-08-1767878-g004.tif">
<alt-text content-type="machine-generated">Four-panel data visualization for rice yield prediction model performance. Top left: scatter plot of predicted versus observed yield with a nearly perfect 1:1 reference line and high R-squared value. Top right: residual plot showing residuals versus predicted yield, with residuals centered around zero. Bottom left: histogram of residuals with a mean of zero and standard deviation of 22.9, appearing normally distributed. Bottom right: Q-Q plot comparing ordered residuals to theoretical quantiles, indicating slight deviation from normality in the tails.</alt-text>
</graphic></fig>
<fig id="f5" position="float">
<label>Figure&#xa0;5</label>
<caption>
<p>Training set diagnostics: comprehensive diagnostic plots for wheat yield prediction (MAE = 6.6, RMSE = 20.1, R&#xb2; =1.000, training set; cross-validated <italic>R</italic><sup>2</sup> = 0.976).</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fagro-08-1767878-g005.tif">
<alt-text content-type="machine-generated">Four-panel data visualization for wheat yield model performance. Top left: scatter plot of predicted versus observed yield with data tightly along the y=x line, reporting MAE 6.6, RMSE 20.1, and R squared 1.0. Top right: residual plot shows residuals distributed around zero across predicted values. Bottom left: histogram of residuals centered near zero, mean 0.2, standard deviation 20.1. Bottom right: Q-Q plot indicating deviation from normality at the tails.</alt-text>
</graphic></fig>
<fig id="f6" position="float">
<label>Figure&#xa0;6</label>
<caption>
<p>Training set diagnostics: comprehensive diagnostic plots for maize yield prediction (MAE = 9.1, RMSE = 30.1, R&#xb2;=0.999, training set; cross-validated <italic>R</italic><sup>2</sup> = 0.971).</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fagro-08-1767878-g006.tif">
<alt-text content-type="machine-generated">Four-panel data visualization of maize yield predictions, including a scatter plot comparing predicted versus observed yield with a near-perfect fit line, a residual plot showing minimal bias, a histogram of residuals centered at zero, and a Q-Q plot indicating residual normality deviations.</alt-text>
</graphic></fig>
<fig id="f7" position="float">
<label>Figure&#xa0;7</label>
<caption>
<p>Training set diagnostics: comprehensive diagnostic plots for groundnut yield prediction (MAE = 4.8, RMSE = 14.0, R&#xb2;=0.999, training set; cross-validated <italic>R</italic><sup>2</sup> = 0.946).</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fagro-08-1767878-g007.tif">
<alt-text content-type="machine-generated">Four-panel data visualization for groundnut yield prediction model performance. Top left: scatter plot of predicted versus observed yield with data clustering along a y equals x line, showing high agreement. Top right: residual plot with residuals centered around zero across predicted values. Bottom left: histogram of residuals with mean near zero and standard deviation of fourteen, displaying a near-normal distribution. Bottom right: Q-Q plot comparing residuals to theoretical quantiles, with points closely following the reference line in the middle range.</alt-text>
</graphic></fig>
<fig id="f8" position="float">
<label>Figure&#xa0;8</label>
<caption>
<p>Training set diagnostics: comprehensive diagnostic plots for cotton yield prediction (MAE = 2.1, RMSE = 6.6, R&#xb2;=0.998, training set; cross-validated <italic>R</italic><sup>2</sup> = 0.969).</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fagro-08-1767878-g008.tif">
<alt-text content-type="machine-generated">Four-panel graphic showing cotton yield regression analysis. Top left: scatterplot of observed versus predicted yield with data points closely following the perfect prediction line. Top right: residual plot displaying residuals randomly scattered around zero. Bottom left: histogram of residuals with mean near zero and standard deviation of 6.6 kilograms per hectare. Bottom right: Q-Q plot showing slight deviation from normality at distribution tails.</alt-text>
</graphic></fig>
<fig id="f9" position="float">
<label>Figure&#xa0;9</label>
<caption>
<p>Training set diagnostics: comprehensive diagnostic plots for sugarcane yield prediction (MAE = 26.5, RMSE = 86.0, <italic>R</italic><sup>2</sup> = 0.999, training set; cross-validated <italic>R</italic><sup>2</sup> = 0.986).</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fagro-08-1767878-g009.tif">
<alt-text content-type="machine-generated">Four-panel data visualization for sugarcane yield prediction accuracy: top left shows predicted versus observed yield with strong linear correlation; top right displays residuals scattered around zero; bottom left features a histogram of residuals centered near zero; bottom right presents a Q-Q plot showing residual deviations from normality.</alt-text>
</graphic></fig>
<p>Important Note on Diagnostic Metrics: The <italic>R</italic><sup>2</sup> values and error metrics reported in the diagnostic figures (<xref ref-type="fig" rid="f4"><bold>Figures&#xa0;4</bold></xref>&#x2013;<xref ref-type="fig" rid="f9"><bold>9</bold></xref>) represent training set performance after fitting the final model to all available training data for diagnostic purposes. These are not the cross-validated (out-of-sample) metrics reported in <xref ref-type="table" rid="T4"><bold>Tables&#xa0;4</bold></xref>, <xref ref-type="table" rid="T5"><bold>5</bold></xref>. The higher <italic>R</italic><sup>2</sup> values in the diagnostic plots (e.g., <italic>R</italic><sup>2</sup> = 0.999 for Rice) compared to the cross-validated results (e.g., <italic>R</italic><sup>2</sup> = 0.988 for Rice in <xref ref-type="table" rid="T4"><bold>Table&#xa0;4</bold></xref>) reflect the expected behavior of Random Forest models, which can achieve near-perfect fits on training data due to their flexibility. This discrepancy does not indicate data leakage; rather, it demonstrates the importance of reporting cross-validated metrics for assessing true generalization performance. The diagnostic plots are intended to assess model assumptions (residual patterns, normality, heteroscedasticity) rather than to estimate predictive accuracy. All performance claims in this paper are based on the properly cross-validated metrics. For a complete out-of-sample diagnostic view, we pooled predictions across all time-series folds and computed cross-validated metrics. Residual means are near zero across crops, indicating minimal systematic bias, and residual spread aligns with RMSE. See <xref ref-type="supplementary-material" rid="SM1"><bold>Supplementary Table&#xa0;3</bold></xref>.</p>
<sec id="s4_5_1">
<label>4.5.1</label>
<title>Predicted vs. observed analysis</title>
<p>The predicted observed panels (upper left in each figure) give a compact visual summary of overall fit. For all six crops, the points lie close to the 45-degree line, which is consistent with the high <italic>R</italic><sup>2</sup> values (0.946&#x2013;0.988) reported earlier. There is no obvious tendency for the model to overpredict at low yields or underpredict at high yields; the cloud of points remains roughly centered on the reference line across the entire range, which suggests that the predictions are not systematically biased.</p>
<p>The plots also show that the models work well across the full spectrum of yields rather than only in some narrow band. Rice, wheat, and maize exhibit especially tight clusters, with <italic>R</italic><sup>2</sup> values close to 0.99. Groundnut points are a little more spread out, reflecting its higher intrinsic variability. Cotton still shows a strong linear pattern despite its lower typical yields. Sugarcane, which has by far the widest yield range (up to about 12,000<italic>,kg/ha</italic>), maintains a clear, almost linear relationship between predictions and observations.</p>
</sec>
<sec id="s4_5_2">
<label>4.5.2</label>
<title>Residual analysis</title>
<p>The residual panels (upper right) plot the errors <inline-formula>
<mml:math display="inline" id="im87"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>against the predicted values. For a well-behaved model, one expects a band of points scattered around zero with no obvious structure, and that is broadly what we see. There is no clear curvature, trend, or pattern that would point to systematic underfitting or a missing non-linear term. This supports the view that the model form is appropriate for the data at hand.</p>
<p>Residual spread is fairly even across most of the predicted range for rice, wheat, groundnut, and cotton, suggesting that error variance is approximately constant. Two crops merit a brief comment. For sugarcane, a small amount of extra scatter appears at the very high end of the yield range, above about 8,000,kg/ha, where a few large residuals occur. For maize, the residuals fan out slightly in the mid-range, indicating a modest increase in variance there. In all crops, a handful of large residuals (greater than about 100,kg/ha for cereals) are visible and likely correspond to years with extreme weather, local shocks, or data artefacts. These rare points do not dominate the overall pattern.</p>
</sec>
<sec id="s4_5_3">
<label>4.5.3</label>
<title>Residual distribution</title>
<p>The residual histograms (lower left) give a second perspective on model fit by focusing on the distribution of errors. For each crop, the histogram is roughly bell-shaped and centered near zero, which matches the usual assumption of symmetric, approximately Gaussian noise. Mean residuals are extremely small (between about 0.0 and 0.3<italic>kg/ha</italic>), reinforcing the impression that there is no consistent tendency to overshoot or undershoot yields.</p>
<p>The spread of the histograms agrees with the reported RMSE values (roughly 6.6&#x2013;86.0<italic>kg/ha</italic>), which indicates that our summary error metrics accurately reflect the underlying distribution rather than being driven by a few pathological cases. Deviations from a textbook normal curve do exist: in some crops the right tail is slightly longer (a few large underestimates) and the distributions show mild heavy tails. However, these departures are modest and typical for real-world agricultural data.</p>
</sec>
<sec id="s4_5_4">
<label>4.5.4</label>
<title>Normality assessment (Q&#x2013;Q Plots)</title>
<p>The Q&#x2013;Q plots (lower right) compare the empirical residual quantiles to those of a theoretical normal distribution. For all crops, the points follow the diagonal line closely through the bulk of the distribution. Roughly the central 80&#x2013;90% of residuals line up almost perfectly, which again supports the approximate normality assumption.</p>
<p>As is common, the largest deviations occur in the tails. Some points in the upper tail lie above the diagonal, indicating occasional large positive residuals (underestimation of yield), while some points in the lower tail lie below it, corresponding to large negative residuals (overestimation). These tail effects are relatively mild and confined to a small number of observations. In practice, this means that most predictions are well behaved, while a few extreme cases are harder to capture exactly. Confidence intervals based on normal errors may therefore be slightly conservative or imperfect in the extremes, but are still reasonable for day-to-day use.</p>
</sec>
<sec id="s4_5_5">
<label>4.5.5</label>
<title>Summary of diagnostic findings</title>
<p>Taken together, the diagnostics paint a consistent and reassuring picture. The predicted observed plots show very high predictive accuracy and little sign of systematic bias. Residuals are roughly random around zero and display only mild, crop-specific quirks, which suggests that the model structure is adequate and that major patterns in the data have been captured. The residual distributions and Q&#x2013;Q plots are close enough to normal with fairly stable variance that standard statistical summaries and uncertainty estimates remain meaningful.</p>
<p>Small imperfections occasional outliers, slight skewness, and modest tail deviations are expected in a setting that involves weather shocks, management changes, and measurement noise. They do not materially undermine the usefulness of the models. Importantly, the diagnostics also show that the models cope well with very different yield regimes, from low-yield cotton to high-yield sugarcane. Overall, the Random Forest models with network features appear robust enough for use in operational yield forecasting, provided that users remain aware of the usual uncertainties associated with extreme events and rare outliers.</p>
</sec>
</sec>
</sec>
<sec id="s5" sec-type="discussion">
<label>5</label>
<title>Discussion</title>
<sec id="s5_1">
<label>5.1</label>
<title>Key findings interpretation</title>
<p>Our results show that the Random Forest models deliver very strong predictive performance for all six major Indian crops, with <italic>R</italic><sup>2</sup> values consistently above 0.94. This level of accuracy is high even by the standards of recent work in data-driven crop forecasting and compares well with state-of-the-art studies in the agricultural machine learning literature (<xref ref-type="bibr" rid="B16">Khaki et&#xa0;al., 2020</xref>; <xref ref-type="bibr" rid="B29">van Klompenburg et&#xa0;al., 2020</xref>). Several aspects of the model design help to explain this performance. The ensemble of 300 trees stabilises predictions through averaging, which lowers variance without introducing substantial bias. The use of random feature subsampling at each split forces individual trees to explore different subsets of predictors, encouraging diverse decision rules and reducing the risk that the model becomes overly dependent on a small number of features. In addition, the non-parametric tree structure is well suited to the underlying problem: it can recover non-linear relationships and interaction effects directly from the data, without requiring an explicit functional form.</p>
<p>When we place these findings in the context of prior work, the improvement becomes more apparent. Our <italic>R</italic><sup>2</sup> values (0.946&#x2013;0.988) are higher than those typically reported for multi-crop, multi-region settings. For example, van Klompenburg et&#xa0;al. (<xref ref-type="bibr" rid="B29">van Klompenburg et&#xa0;al., 2020</xref>) report <italic>R</italic><sup>2</sup> values in the range 0.65&#x2013;0.85 for several crops, while Khaki and Wang (<xref ref-type="bibr" rid="B16">Khaki et&#xa0;al., 2020</xref>) obtain <italic>R</italic><sup>2</sup> values of 0.88&#x2013;0.92 for corn in the U.S.Corn Belt. The performance gains in our study likely come from three things working together: better features that capture temporal patterns, using time-series cross-validation to respect temporal structure, and careful preprocessing that treats outliers and implausible values in a systematic way. A more unexpected outcome is the very limited contribution of network-derived features. In quantitative terms, these features improve performance by less than 1% and do not yield statistically significant gains over models that rely solely on temporal and diversification features. At first glance, this is at odds with the intuitive appeal of network-based approaches for agricultural systems, and therefore needs careful interpretation. One key consideration is the strength of temporal autocorrelation in yields: year-to-year dependence is extremely high, and lag-1 yield features alone explain roughly 30%&#x2013;50% of the variance. In such a setting, the information contained in &#x201c;what happened here last year&#x201d; is so dominant that it leaves little room for additional predictive value from &#x201c;what happened in similar districts last year.</p>
<p>The way the similarity network is constructed also matters. Our network is built to capture static patterns of resemblance in yield trajectories between districts. This structure is useful for describing which districts behave similarly, but it does not necessarily correspond to causal pathways through which shocks, practices, or technologies propagate. Two districts may have similar historical yield profiles because they share agro-climatic or socioeconomic conditions, yet there may be no ongoing interaction between them that could improve prediction beyond what is already encoded in local temporal features. In addition, several network centrality measures are likely correlated with other covariates. Highly productive districts, for instance, may appear central in the network, so centrality scores end up duplicating information already carried by temporal yield statistics and diversification indicators.</p>
<p>Scale is another potential source of mismatch. The processes that shape yields pest and disease spread, market integration, extension services, or knowledge diffusion may operate at spatial scales that our district-level network cannot resolve. Relevant interactions might occur within districts at the farm level, or at broader regional scales that group many districts together. In such cases, a district-level similarity network may fail to capture the mechanisms that truly drive cross-location dependence. Finally, our analysis relies on a static network estimated from 2008&#x2013;2017 patterns. Agricultural systems, however, evolve in response to climate trends, policy changes, and technological adoption. Updating the network every year could track changing relationships more accurately, but doing so would demand extra data and considerable computational effort.</p>
<p>Taken together, these observations are consistent with recent critical assessments of network-based methods in spatial prediction tasks (<xref ref-type="bibr" rid="B28">Thompson et&#xa0;al., 2019</xref>). Networks can be extremely valuable for exploring and visualising the structure of agricultural systems, but their predictive benefit is not guaranteed. Their usefulness depends on whether network features provide genuinely new information beyond what is already captured by strong temporal signals and well-designed covariates. In our setting, the evidence suggests that they do not at least at the district level and with the network definitions considered here.</p>
</sec>
<sec id="s5_2">
<label>5.2</label>
<title>Why network features contributed minimally: a detailed analysis</title>
<p>The minimal contribution of network features (&#xa1;1% importance) warrants careful interpretation, as it carries important implications for future research and practice. We identify five primary reasons for this outcome:</p>
<list list-type="order">
<list-item>
<p>Dominance of Temporal Autocorrelation: Agricultural yields exhibit extremely strong temporal autocorrelation due to the persistence of underlying factors soil quality, irrigation infrastructure, farmer expertise, varietal adoption, and institutional arrangements that change slowly over time. Our analysis confirms that lag-1 yield features alone explain 30&#x2013;50% of variance across crops. In such a setting, the information encoded in &#x201c;what happened here last year&#x201d; is so dominant that it leaves little room for additional predictive value from &#x201c;what happened in similar districts.&#x201d; This finding aligns with the well-established literature on yield persistence (<xref ref-type="bibr" rid="B29">van Klompenburg et&#xa0;al., 2020</xref>) but provides the first rigorous quantification of its implications for network-based feature engineering.</p></list-item>
<list-item>
<p>Static Network Limitations: Our district similarity network was constructed from a fixed 10-year reference period (2008&#x2013;2017), capturing static structural similarity rather than dynamic interactions. Agricultural systems, however, evolve continuously in response to climate change, policy interventions (e.g., minimum support prices, input subsidies), and technological adoption (e.g., Bt cotton, hybrid varieties). A static network, by definition, cannot capture these temporal dynamics. We explicitly acknowledge that this study should be interpreted as an evaluation of static yield-similarity networks rather than a general assessment of all network approaches. Dynamic networks that update annually or across cross-validation folds may better capture evolving relationships.</p></list-item>
<list-item>
<p>Structural Similarity vs. Causal Interaction: The district similarity network connects districts with similar historical yield profiles, but similarity does not imply interaction. Two districts may have similar yields because they share agro-climatic conditions, not because they exchange information, technology, or are affected by common shocks. For network features to provide predictive value, they should ideally capture causal pathways such as the diffusion of improved practices through extension networks, coordinated responses to policy, or the spread of pests and diseases rather than mere statistical correlation. Our yield-based similarity metric captures the latter, which explains why centrality measures provide redundant rather than complementary information.</p></list-item>
<list-item>
<p>Scale Mismatch: Relevant agricultural processes may operate at scales other than the district level. Technology diffusion and farmer-to-farmer learning often occur within local communities or administrative blocks (sub-district), while market integration and climate teleconnections operate at regional or national scales. A district-level network may be too coarse to capture farm-level interactions and too fine to capture macro-regional dependencies, resulting in a &#x201c;middle-ground&#x201d; representation that misses the scales at which network effects are most pronounced.</p></list-item>
<list-item>
<p>Feature Redundancy: Network centrality measures (degree, eigenvector, closeness, betweenness) are likely correlated with other covariates in the model. Highly productive districts tend to appear central in yield-similarity networks, so centrality scores may duplicate information already captured by temporal yield statistics and diversification indices. The correlation-based feature filtering (removing features with <italic>r &gt;</italic> 0.99) addresses only the most extreme redundancy; more subtle multicollinearity may persist.</p></list-item>
</list>
<p>Conditions Under Which Network Features Might Become Informative: Based on this analysis, we hypothesize that network&#xa0;features could provide predictive value under the following conditions.</p>
<list list-type="bullet">
<list-item>
<p>Dynamic network construction: Networks updated annually or per cross-validation fold to track evolving relationships</p></list-item>
<list-item>
<p>Alternative network definitions: Networks based on actual flow data (trade, labor migration, extension visits) rather than yield similarity</p></list-item>
<list-item>
<p>Event-driven contexts: Settings where shock propagation is prominent, such as pest outbreaks or disease spread</p></list-item>
<list-item>
<p>Weaker temporal signals: Contexts where historical yields are less predictive of future outcomes</p></list-item>
<list-item>
<p>Graph Neural Network architectures: Models that learn network representations jointly with prediction rather than using pre-computed centrality features</p></list-item>
</list>
</sec>
<sec id="s5_3">
<label>5.3</label>
<title>Implications of omitting weather and climate data</title>
<p>A fundamental limitation of this study is the omission of weather and climate variables (temperature, precipitation, growing degree days, solar radiation) and soil properties (texture, organic matter, pH, nutrient status). We explicitly acknowledge that this constrains the model&#x2019;s practical utility and affects interpretation of results in several important ways:</p>
<list list-type="order">
<list-item>
<p>Capturing Trends vs. Deviations: The temporal features in our model effectively capture systematic yield trends long-term technological progress, infrastructure development, and persistent regional differences. However, they cannot capture in-season deviations caused by weather anomalies, which are often the primary driver of year-to-year yield variation. As a result, our model is better suited for medium-term planning (multi-year averages, trend projections) than for operational early-season forecasting that requires predicting specific outcomes conditional on current-season conditions.</p></list-item>
<list-item>
<p>Practical Utility Constraints: Operational yield forecasting systems typically require weather inputs to provide actionable early-season predictions. Our model, lacking such inputs, functions more as a &#x201c;historical baseline&#x201d; predictor than a full operational forecasting system. Users should understand that the high <italic>R</italic><sup>2</sup> values reflect the model&#x2019;s ability to capture temporal persistence and systematic trends, not its ability to predict yield responses to specific weather events.</p></list-item>
<list-item>
<p>Interpretation of High Performance: The exceptionally high cross-validated <italic>R</italic><sup>2</sup> values (0.946&#x2013;0.988) may initially seem surprising for agricultural forecasting. However, they are explicable by the strong temporal autocorrelation in yields and the model&#x2019;s reliance on lag-1 features. In essence, the model learns that &#x201c;yield this year is similar to yield last year, adjusted for systematic trends&#x201d; a pattern that holds reliably in the absence of extreme weather but may break down during anomalous years.</p></list-item>
<list-item>
<p>Study Scope Clarification: This study is positioned as a baseline framework for yield-history-based prediction rather than a comprehensive operational forecasting system. The methodological contribution lies in demonstrating rigorous evaluation practices (time-series CV, statistical tests, diagnostics) and quantifying the relative value of different feature types. Future work integrating gridded climate products (IMD, ERA5, CHIRPS), remote sensing indices (NDVI, EVI), and soil databases (SoilGrids, HWSD) would substantially extend the model&#x2019;s practical utility and is explicitly identified as a priority direction.</p></list-item>
</list>
</sec>
<sec id="s5_4">
<label>5.4</label>
<title>Crop-specific insights</title>
<p>Rice attains the highest <italic>R</italic><sup>2</sup> (0.988), indicating that its yields are very easy to predict, which is consistent with stable, long-established rice-growing regions and management practices in India (<xref ref-type="bibr" rid="B13">Jain et&#xa0;al., 2016</xref>). This stability makes rice a strong candidate for operational forecasting to support food security planning. Wheat is also highly predictable (<italic>R</italic><sup>2</sup> = 0.976), though its errors are slightly more variable, and the mild upward trend in error over time (slope = +8.92 <italic>kg/ha</italic>) suggests that changing practices or climate effects may be starting to matter. Maize, despite its wide yield range (0&#x2013;5,898 <italic>kg/ha</italic>) and diverse production environments, still reaches <italic>R</italic><sup>2</sup> = 0.971, and the sharp contrast between advanced models (MAE = 58.39) and baselines (MAE = 441.26) underlines the importance of non-linear models and careful feature engineering for this crop. Sugarcane, which has the highest absolute yields and an <italic>R</italic><sup>2</sup> of 0.986, also gains substantially from advanced modeling. The 87% reduction in error compared with the naive baseline (MAE: 129.68 vs. 984.86 <italic>kg/ha</italic>) shows that, despite its complexity, sugarcane&#x2019;s yield behaviour can be learned effectively likely helped by strong temporal autocorrelation linked to its multi-year growth cycle.</p>
<p>Groundnut shows the largest spread in errors (MAE std = 24.12 <italic>kg/ha</italic>), indicating that it is harder to predict accurately than the other crops. This higher variability likely stems from groundnut&#x2019;s strong sensitivity to factors such as water stress, pest attacks (especially aflatoxin-producing fungi), and soil calcium levels (<xref ref-type="bibr" rid="B7">Elavarasan and Vincent, 2020</xref>). Even so, an <italic>R</italic><sup>2</sup> of 0.946 still represents very strong performance, though users of the model should anticipate greater uncertainty for groundnut forecasts compared with cereals. Cotton poses additional difficulties due to the high frequency of zero-yield observations and a strongly skewed yield distribution, which necessitates special treatment. The adoption of a safe MAPE calculation excluding yields below 100 <italic>kg/ha</italic> prevents numerical instability while still providing a meaningful error measure. Cotton&#x2019;s slightly non-significant result (<italic>p</italic> = 0.0627) relative to the baselines is more plausibly due to limited statistical power than to poor model performance. This interpretation is supported by the large 78% reduction in prediction error, which points to a genuinely meaningful improvement.</p>
</sec>
<sec id="s5_5">
<label>5.5</label>
<title>Methodological contributions</title>
<p>This study advances agricultural yield prediction in several important ways. First, our network construction strategy refines how spatial relationships between districts are modeled. By using a relatively high similarity threshold (0.80), we ensure that edges connect only genuinely similar districts, producing networks that are easier to interpret. Top-<italic>k</italic> pruning with <italic>k</italic> = 15 keeps the graph sparse and focused on the strongest relationships, while computing multiple centrality measures allows a rich description of the network structure. The resulting 6.2% network density lies in a range that is suitable for extracting meaningful structural patterns. Although the network-derived features ultimately contributed little to predictive performance, the network methodology remains highly useful for descriptive analysis and for understanding the broader organization of agricultural systems. We also use a set of simple but effective feature-engineering steps that are important for building stable, deployment-ready models. We drop features that are almost perfectly correlated (<italic>r &gt;</italic> 0.99) or show almost no variation, and we include rolling standard deviations to capture how yields fluctuate over time. For Ridge regression, we rely on RobustScaler to reduce the impact of outliers and use a thresholded MAPE to handle very low yields safely, so that the final models learn from features that are informative without causing numerical problems.</p>
<p>Finally, our evaluation framework is designed to reflect best practice for agricultural machine learning. Time-series cross-validation is used to prevent temporal leakage and to approximate realistic forecasting conditions, addressing a frequent weakness in prior studies. Model performance is assessed using a suite of metrics (MAE, RMSE, MAPE, MedAE, and <italic>R</italic><sup>2</sup>), providing a more nuanced view than any single measure alone. Statistical significance tests are employed to confirm that observed performance differences are not simply due to random variation, while temporal stability analysis is used to identify concept drift and assess how reliably models perform over time an aspect that is critical for deployment but often neglected. We also inspect residuals, check for normality, and test for unequal variance to make sure the model&#x2019;s assumptions are reasonable. Together, these steps form a straightforward workflow that others can follow to run agricultural machine learning studies in a careful, open, and repeatable way.</p>
</sec>
<sec id="s5_6">
<label>5.6</label>
<title>Practical implications</title>
<p>Our results have clear implications for how operational forecasting systems and decision-support tools in agriculture should be designed. Most of the predictive strength comes from temporal features such as lags, rolling averages, and other time-based summaries rather than from complex network features. In practice, this suggests that it is more effective to invest in better historical yield data (its quality, consistency, and coverage) than in sophisticated network construction. For modelling, a Random Forest with about 300 trees gives a good trade-off between accuracy, robustness, and computational cost. Because it is non-parametric, it does not require feature scaling and copes well with mixed feature distributions, which simplifies preprocessing and makes the overall pipeline easier to deploy and maintain.</p>
<p>The analysis of temporal stability suggests that these models can remain reliable for roughly 2&#x2013;3 years without retraining, provided that their performance is checked regularly, for example once a year, to detect concept drift. This relatively low retraining frequency reduces operational overhead compared with models that need continual updating. In practice, forecasts should be accompanied by prediction intervals rather than only point estimates, with intervals tailored to crop-specific uncertainty (for instance, wider intervals for groundnut than for cereals). Such uncertainty estimates are especially important where forecasts feed into policy or risk-management decisions.</p>
<p>The consistent performance across India&#x2019;s diverse agro-climatic regions also indicates that, with modest local calibration, the models are broadly transferable. This suggests that the main time-based patterns driving yields are broadly similar across regions, despite differences in environment and management. Reliable yield forecasts then plug directly into policy: early-season predictions help planners manage buffer stocks, plan imports, and adjust public distribution more effectively to support food security. With MAPE below 10%, these forecasts are accurate enough to reduce both shortages and unnecessary stockpiling. On the market side, advance information on likely yields supports timely interventions such as setting minimum support prices or tuning procurement volumes to stabilise prices and protect farmer incomes, which is especially vital for smallholders in India&#x2019;s volatile agricultural markets.</p>
<p>These forecasts also function as early warning signals. Large shortfalls relative to expected yields can indicate shocks such as droughts, floods, or pest outbreaks, allowing quicker assessment and response. In insurance, model-based yield estimates provide an objective benchmark for index-based products, reducing information gaps and enabling fairer premium setting. Multi-year forecasts also guide investments in storage, transport, and processing facilities, helping both public agencies and private investors align capacity with expected production and avoid under- or over-building.</p>
</sec>
<sec id="s5_7">
<label>5.7</label>
<title>Limitations and challenges</title>
<p>Our analysis is constrained by several data and modeling gaps that point to clear future improvements. In particular, the dataset lacks key weather variables (temperature, rainfall, solar radiation), and adding gridded climate data from sources like IMD or ERA5 would likely boost performance, especially for early- and within-season forecasts that update as conditions change. Likewise, important soil properties such as texture, organic matter, pH, and nutrient status are missing. Linking district-level yields to soil datasets like ISRIC SoilGrids could be especially beneficial in marginal areas where soil&#x2013;climate interactions drive much of the yield variability.</p>
<p>Working at the district level also hides substantial within-district heterogeneity. Finer spatial units (e.g., sub-districts or grid cells) would support more targeted interventions and better serve precision agriculture, but this is currently constrained by data availability. In addition, the dataset does not contain information on management practices irrigation, fertilizer application, pest control, or cultivar choice even though these are major yield drivers. Incorporating such information, via surveys, administrative records, or remote-sensing proxies, would likely improve model accuracy and broaden the range of policy-relevant questions that can be addressed. Incorporating such data through farmer surveys, administrative records, or remote-sensing proxies could improve accuracy and would allow scenario analysis for policy interventions. Although 52 years of data provide a solid basis for model training, the series currently ends in 2017. Extending the dataset to include more recent years (2018&#x2013;2024) is essential for operational deployment, especially given the climate anomalies and policy changes over the last decade that may have altered yield dynamics.</p>
<p>Our carefully constructed similarity network contributed very little to predictive accuracy, suggesting that alternative designs such as dynamic networks, different similarity metrics, or other spatial scales should be explored. Time-evolving networks, in particular, might better capture changing relationships between districts than the static approach used here. More generally, even well-performing data-driven models are likely to struggle with truly unprecedented events (e.g., record droughts or new pest outbreaks), and hybrid approaches that combine machine learning with process-based crop models could improve robustness by adding physiological and biophysical insight. In addition, our current models do not explicitly model spatial dependence between neighboring districts.</p>
<p>Although our results indicate that temporal dependencies dominate in this setting, spatial econometric models, graph neural networks, or other spatially explicit methods could prove valuable in specific contexts where spillovers from pest spread, irrigation projects, or market linkages are more pronounced. At the feature level, Random Forest implicitly captures complex interactions, but these interactions are not explicitly parameterized. Introducing explicit interaction terms or attention-based architectures could help identify important synergies, such as combined temperature rainfall effects, and thereby deepen understanding of yield responses to multiple simultaneous stresses.</p>
<p>Interpretability remains a challenge. Global feature importance gives only a broad overview, and the ensemble structure makes it hard to explain individual predictions. This lack of case-level transparency can be problematic in policy settings where decisions must be justified. Developing methods that offer clear, local explanations for specific predictions, without heavily compromising accuracy, is therefore an important direction for future research. Our study is also limited in geography and crop coverage. Because the models are trained only on Indian data, they may not directly generalize to other countries without region-specific recalibration, and their strong reliance on temporal patterns means performance could degrade if historical yield dynamics change rapidly due to technology, climate, or policy shifts.</p>
<p>In addition, we focus on six major crops and do not cover others such as pulses, oilseeds, and vegetables, which may follow different temporal dynamics and respond to different environmental drivers. Extending the framework to these crops will need targeted feature engineering and dedicated validation for each crop. In addition, some district&#x2013;crop combinations have relatively few observations, reducing reliability at the margins of the data. Although our research dataset contains no missing yields, real-world operational systems must cope with data gaps, reporting delays, and quality issues. Robust, well-tested imputation and data quality control procedures will be essential for deploying similar models in live settings, particularly when decisions must be made before complete data are available.</p>
</sec>
<sec id="s5_8">
<label>5.8</label>
<title>Additional methodological limitations</title>
<p>Geographic Generalizability: The models are trained exclusively on Indian agricultural data and may not transfer directly to other countries without region-specific recalibration. Differences in cropping systems, management practices, data collection methodologies, and institutional contexts could limit external validity. Users seeking to apply this framework elsewhere should plan for dedicated validation and potential retraining.</p>
<p>Temporal Generalizability: The dataset ends in 2017, and yield dynamics may have changed significantly in the subsequent period (2018&#x2013;2024) due to climate anomalies, policy changes (e.g., PM-KISAN direct benefit transfers), technological shifts (e.g., precision agriculture adoption), and unprecedented events (e.g., COVID-19 disruptions to agricultural supply chains). Model performance on post-2017 data remains untested.</p>
<p>Multicollinearity Considerations: The study generates a large number of temporal features (multiple lags, rolling statistics over different windows) that are inherently correlated by construction. While we removed features with correlation exceeding 0.99, this is a conservative threshold that does not eliminate moderate multicollinearity. Variance Inflation Factor (VIF) analysis, which we recommend for future extensions of this work, would provide more granular assessment. We note that: (1) Random Forest is inherently robust to multicollinearity because splits can occur on any correlated feature; (2) Ridge regression with <italic>&#x3b1;</italic> = 10 provides L2 regularization that mitigates collinearity effects; (3) feature importance percentages should be interpreted as joint contributions of correlated feature groups rather than isolated effects. The 39.3% average importance attributed to lag-1 should be understood as reflecting &#x201c;temporal autocorrelation features collectively&#x201d; rather than lag-1 in isolation. Since lag and rolling statistics are inherently correlated, we examined the correlation structure among key temporal feature groups to assess multicollinearity. Correlations are moderate-to-high among lag/rolling mean features, but model choices (RF and Ridge) mitigate adverse effects. Details are in <xref ref-type="supplementary-material" rid="SM1"><bold>Supplementary Table&#xa0;5</bold></xref>.</p>
<p>Cross-Validation Granularity: Using only three folds for 52 years of data provides limited statistical power for assessing temporal stability. A rolling-origin design with annual test windows would yield more granular performance estimates but at substantially higher computational cost. Conclusions about model stability over time should be interpreted cautiously as they are based on three temporal segments rather than fine-grained annual assessments.</p>
<p>Low-Yield Prediction Accuracy: The exclusion of yields below 100 kg/ha from MAPE calculation, while mathematically necessary, means that model performance on crop failure scenarios is not fully characterized by our primary metrics. Supplementary analysis of prediction accuracy specifically in the low-yield regime (e.g., yields in the 0&#x2013;200 kg/ha range) would provide additional insight into the model&#x2019;s utility for detecting anomalous conditions, which is often of greatest practical interest.</p>
</sec>
</sec>
<sec id="s6" sec-type="conclusions">
<label>6</label>
<title>Conclusion and future work</title>
<p>This work introduces a network-enhanced machine learning framework for multi-crop yield prediction across India, using 52 years (1966&#x2013;2017) of district-level data for six major crops. Positioned primarily as a rigorous benchmarking and methodological validation framework, We contribute: (i) an integration framework combining district similarity networks, crop co-occurrence, temporal features, and diversification indices; (ii) a refined network construction strategy (similarity threshold 0.80, top-<italic>k</italic> = 15, multiple centrality measures); (iii) a rigorous evaluation pipeline with time-series cross-validation, statistical tests, temporal stability analysis, and detailed diagnostics; (iv) a thorough benchmark showing Random Forest achieves <italic>R</italic><sup>2</sup><italic>&gt;</italic> 0.94 and MAPE 2.69&#x2013;8.08% across all crops; (v) empirical evidence that temporal features dominate prediction (lag-1 alone explains 30&#x2013;50% of variance) while network features add <italic>&lt;</italic> 1% this &#x201c;negative result&#x201d; is itself a significant contribution guiding practitioners toward data quality investments rather than complex network constructions; (vi) a set of practical best practices for feature screening, robust scaling, and safe metric computation; and (vii) practical validation showing 75&#x2013;85% error reduction over baselines with stable performance across time. Statistical significance results (<italic>p &lt;</italic> 0.05 for five of six crops) and temporal stability analyses together support real-world use in food security planning, market stabilization, insurance, and policy support.</p>
<p>From this, six key lessons emerge. Temporal features (lags, trends, rolling statistics) are the primary signal, so improving historical yield data should be the top priority. A Random Forest with 300 trees offers an excellent accuracy robustness complexity trade-off and works well without heavy tuning or scaling, making it suitable for operational pipelines. In contrast, even carefully designed network features provide little extra predictive value once temporal information is included, suggesting networks are more useful for descriptive system analysis than for boosting forecast accuracy. Robust practice requires time-series cross-validation, formal statistical testing, and temporal stability checks; standard <italic>k</italic>-fold CV is inappropriate for yield time series. Error behaviour and stability differ by crop, so crop-specific calibration and uncertainty quantification remain important. Overall, the very high accuracy (<italic>R</italic><sup>2</sup><italic>&gt;</italic> 0.94<italic>, MAPE &lt;</italic> 10%) and temporal stability show that operational deployment is realistic.</p>
<p>We identify four main directions for future research: (i) richer network modeling (dynamic and temporal networks, multi-layer and spatial networks, alternative similarity metrics such as DTW or Earth Mover&#x2019;s Distance); (ii) integrating additional data sources, including gridded climate products (IMD, ERA5, CHIRPS), remote sensing (NDVI, EVI, LAI), soil datasets (SoilGrids, HWSD), management information (irrigation, inputs, pest control), and market indicators; (iii) exploring advanced methods deep learning (CNNs, LSTMs, hybrids), graph neural networks, ensemble meta-learning, attention, transfer learning, and causal inference tools for policy analysis; and (iv) building operational systems with real-time predictions, dashboards, scenario analysis, calibrated uncertainty, downscaling to sub-district scale, continuous drift monitoring, and close engagement with end-users. To isolate the marginal contribution of temporal, diversification, and network-derived feature groups, we outline a structured ablation design for future extensions. This configuration enables clearer attribution while controlling for correlated predictors. The proposed ablations are listed in <xref ref-type="supplementary-material" rid="SM1"><bold>Supplementary Table&#xa0;6</bold></xref>. Even though network features did not improve predictions as expected, the study shows that well-engineered temporal features already deliver very strong performance; more sophisticated models should therefore be viewed as complements to, not substitutes for, careful treatment of fundamental time-series structure in agricultural data.</p>
</sec>
</body>
<back>
<sec id="s7" sec-type="data-availability">
<title>Data availability statement</title>
<p>The original contributions presented in the study are included in the article/<xref ref-type="supplementary-material" rid="SM1"><bold>Supplementary Material</bold></xref>. Further inquiries can be directed to the corresponding author.</p></sec>
<sec id="s8" sec-type="author-contributions">
<title>Author contributions</title>
<p>SC: Conceptualization, Formal analysis, Validation, Visualization, Writing &#x2013; original draft. PA: Data curation, Investigation, Supervision, Writing &#x2013; review &amp; editing.</p></sec>
<ack>
<title>Acknowledgments</title>
<p>The first author, Ms. Shinyclimensa C, thanks the Vellore Institute of Technology, Vellore, for the TRA fellowship.</p>
</ack>
<sec id="s10" sec-type="COI-statement">
<title>Conflict of interest</title>
<p>The author(s) declared that this work was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p></sec>
<sec id="s11" sec-type="ai-statement">
<title>Generative AI statement</title>
<p>The author(s) declared that generative AI was not used in the creation of this manuscript.</p>
<p>Any alternative text (alt text) provided alongside figures in this article has been generated by Frontiers with the support of artificial intelligence and reasonable efforts have been made to ensure accuracy, including review by the authors wherever possible. If you identify any issues, please contact us.</p></sec>
<sec id="s12" sec-type="disclaimer">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p></sec>
<sec id="s13" sec-type="supplementary-material">
<title>Supplementary material</title>
<p>The Supplementary Material for this article can be found online at: <ext-link ext-link-type="uri" xlink:href="https://www.frontiersin.org/articles/10.3389/fagro.2026.1767878/full#supplementary-material">https://www.frontiersin.org/articles/10.3389/fagro.2026.1767878/full#supplementary-material</ext-link></p>
<supplementary-material xlink:href="DataSheet1.pdf" id="SM1" mimetype="application/pdf"/></sec>
<ref-list>
<title>References</title>
<ref id="B1">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Bardoscia</surname> <given-names>M.</given-names></name>
<name><surname>Battiston</surname> <given-names>S.</given-names></name>
<name><surname>Caccioli</surname> <given-names>F.</given-names></name>
<name><surname>Caldarelli</surname> <given-names>G.</given-names></name>
</person-group> (<year>2021</year>). 
<article-title>The physics of financial networks</article-title>. <source>Nat. Rev. Phys.</source> <volume>3</volume>, <fpage>490</fpage>&#x2013;<lpage>507</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1038/s42254-021-00322-5</pub-id>, PMID: <pub-id pub-id-type="pmid">41735448</pub-id>
</mixed-citation>
</ref>
<ref id="B2">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Boers</surname> <given-names>N.</given-names></name>
<name><surname>Goswami</surname> <given-names>B.</given-names></name>
<name><surname>Rheinwalt</surname> <given-names>A.</given-names></name>
<name><surname>Bookhagen</surname> <given-names>B.</given-names></name>
<name><surname>Hoskins</surname> <given-names>B.</given-names></name>
<name><surname>Kurths</surname> <given-names>J.</given-names></name>
</person-group> (<year>2019</year>). 
<article-title>Complex networks reveal global pattern of extreme-rainfall teleconnections</article-title>. <source>Nature</source> <volume>566</volume>, <fpage>373</fpage>&#x2013;<lpage>377</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1038/s41586-018-0872-x</pub-id>, PMID: <pub-id pub-id-type="pmid">30700912</pub-id>
</mixed-citation>
</ref>
<ref id="B3">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Chen</surname> <given-names>T.</given-names></name>
<name><surname>Guestrin</surname> <given-names>C.</given-names></name>
</person-group> (<year>2016</year>). 
<article-title>Xgboost: A scalable tree boosting system</article-title>. <source>Proc. 22nd ACM SIGKDD Int. Conf. Knowledge Discov. Data Min.</source>, <fpage>785</fpage>&#x2013;<lpage>794</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1145/2939672.2939785</pub-id>, PMID: <pub-id pub-id-type="pmid">40727313</pub-id>
</mixed-citation>
</ref>
<ref id="B4">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Cheng</surname> <given-names>E.</given-names></name>
<name><surname>Zhang</surname> <given-names>B.</given-names></name>
<name><surname>Peng</surname> <given-names>D.</given-names></name>
<name><surname>Gao</surname> <given-names>L.</given-names></name>
<name><surname>Duan</surname> <given-names>M.</given-names></name>
<name><surname>Ding</surname> <given-names>C.</given-names></name>
</person-group> (<year>2016</year>). 
<article-title>Combining multi-indicators with machine-learning algorithms for maize yield early prediction at the county-level in China</article-title>. <source>Agric. For. Meteorology</source> <volume>223</volume>, <fpage>51</fpage>&#x2013;<lpage>61</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.agrformet.2016.03.022</pub-id>, PMID: <pub-id pub-id-type="pmid">41743167</pub-id>
</mixed-citation>
</ref>
<ref id="B5">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Chlingaryan</surname> <given-names>A.</given-names></name>
<name><surname>Sukkarieh</surname> <given-names>S.</given-names></name>
<name><surname>Whelan</surname> <given-names>B.</given-names></name>
</person-group> (<year>2018</year>). 
<article-title>Machine learning approaches for crop yield prediction and nitrogen status estimation in precision agriculture: A review</article-title>. <source>Comput. Electron. Agric.</source> <volume>151</volume>, <fpage>61</fpage>&#x2013;<lpage>69</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.compag.2018.05.012</pub-id>, PMID: <pub-id pub-id-type="pmid">41743167</pub-id>
</mixed-citation>
</ref>
<ref id="B6">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Crane-Droesch</surname> <given-names>A.</given-names></name>
</person-group> (<year>2018</year>). 
<article-title>Machine learning methods for crop yield prediction and climate change impact assessment in agriculture</article-title>. <source>Environ. Res. Lett.</source> <volume>13</volume>, <fpage>114003</fpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1088/1748-9326/aae159</pub-id>
</mixed-citation>
</ref>
<ref id="B7">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Elavarasan</surname> <given-names>D.</given-names></name>
<name><surname>Vincent</surname> <given-names>P. M. D. R.</given-names></name>
</person-group> (<year>2020</year>). 
<article-title>Crop yield prediction using deep reinforcement learning model for sustainable agrarian applications</article-title>. <source>IEEE Access</source> <volume>8</volume>, <fpage>86886</fpage>&#x2013;<lpage>86901</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1109/ACCESS.2020.2992480</pub-id>, PMID: <pub-id pub-id-type="pmid">41116384</pub-id>
</mixed-citation>
</ref>
<ref id="B8">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Folberth</surname> <given-names>C.</given-names></name>
<name><surname>Baklanov</surname> <given-names>A.</given-names></name>
<name><surname>Balkovi&#x10d;</surname> <given-names>J.</given-names></name>
<name><surname>Skalsk&#xfd;</surname> <given-names>R.</given-names></name>
<name><surname>Khabarov</surname> <given-names>N.</given-names></name>
<name><surname>Obersteiner</surname> <given-names>M.</given-names></name>
</person-group> (<year>2019</year>). 
<article-title>Parameterization-induced uncertainties and impacts of crop management harmonization in a global gridded crop model ensemble</article-title>. <source>PloS One</source> <volume>14</volume>, <fpage>e0221862</fpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1371/journal.pone.0221862</pub-id>, PMID: <pub-id pub-id-type="pmid">31525247</pub-id>
</mixed-citation>
</ref>
<ref id="B9">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Garrett</surname> <given-names>K. A.</given-names></name>
<name><surname>Alcal&#xe1;-Brise&#xf1;o</surname> <given-names>R. I.</given-names></name>
<name><surname>Andersen</surname> <given-names>K. F.</given-names></name>
<name><surname>Buddenhagen</surname> <given-names>C. E.</given-names></name>
<name><surname>Choudhury</surname> <given-names>R. A.</given-names></name>
<name><surname>Fulton</surname> <given-names>J. C.</given-names></name>
<etal/>
</person-group>. (<year>2018</year>). 
<article-title>Network analysis: a systems framework to address grand challenges in plant pathology</article-title>. <source>Annu. Rev. Phytopathol.</source> <volume>56</volume>, <fpage>559</fpage>&#x2013;<lpage>580</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1146/annurev-phyto-080516-035326</pub-id>, PMID: <pub-id pub-id-type="pmid">29979928</pub-id>
</mixed-citation>
</ref>
<ref id="B10">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Gephart</surname> <given-names>J. A.</given-names></name>
<name><surname>Pace</surname> <given-names>M. L.</given-names></name>
</person-group> (<year>2015</year>). 
<article-title>Structure and evolution of the global seafood trade network</article-title>. <source>Environ. Res. Lett.</source> <volume>10</volume>, <elocation-id>125014</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1088/1748-9326/10/12/125014</pub-id>
</mixed-citation>
</ref>
<ref id="B11">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Hara</surname> <given-names>T.</given-names></name>
<name><surname>Hirata</surname> <given-names>M.</given-names></name>
<name><surname>Ohsako</surname> <given-names>T.</given-names></name>
<name><surname>Ikegami</surname> <given-names>K.</given-names></name>
<name><surname>Usui</surname> <given-names>Y.</given-names></name>
<name><surname>Kitano</surname> <given-names>S.</given-names></name>
<etal/>
</person-group>. (<year>2021</year>). 
<article-title>Ensemble learning of multiple models enhances genomic prediction of sorghum biomass and grain yield</article-title>. <source>Bioinformatics</source> <volume>37</volume>, <fpage>3735</fpage>&#x2013;<lpage>3740</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1093/bioinformatics/btab307</pub-id>, PMID: <pub-id pub-id-type="pmid">34252953</pub-id>
</mixed-citation>
</ref>
<ref id="B12">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Iizumi</surname> <given-names>T.</given-names></name>
<name><surname>Shiogama</surname> <given-names>H.</given-names></name>
<name><surname>Imada</surname> <given-names>Y.</given-names></name>
<name><surname>Hanasaki</surname> <given-names>N.</given-names></name>
<name><surname>Takikawa</surname> <given-names>H.</given-names></name>
<name><surname>Nishimori</surname> <given-names>M.</given-names></name>
</person-group> (<year>2018</year>). 
<article-title>Crop production losses associated with anthropogenic climate change for 1981&#x2013;2010 compared with preindustrial levels</article-title>. <source>Int. J. Climatology</source> <volume>38</volume>, <fpage>5405</fpage>&#x2013;<lpage>5417</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1002/joc.5818</pub-id>, PMID: <pub-id pub-id-type="pmid">41744314</pub-id>
</mixed-citation>
</ref>
<ref id="B13">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Jain</surname> <given-names>M.</given-names></name>
<name><surname>Srivastava</surname> <given-names>A. K.</given-names></name>
<name><surname>Singh</surname> <given-names>B.</given-names></name>
<name><surname>Joon</surname> <given-names>R. K.</given-names></name>
<name><surname>McDonald</surname> <given-names>A.</given-names></name>
<name><surname>Royal</surname> <given-names>K.</given-names></name>
<etal/>
</person-group>. (<year>2016</year>). 
<article-title>Mapping smallholder wheat yields and sowing dates using micro-satellite data</article-title>. <source>Remote Sens.</source> <volume>8</volume>, <fpage>860</fpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/rs8100860</pub-id>, PMID: <pub-id pub-id-type="pmid">41725453</pub-id>
</mixed-citation>
</ref>
<ref id="B14">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Jeong</surname> <given-names>J. H.</given-names></name>
<name><surname>Resop</surname> <given-names>J. P.</given-names></name>
<name><surname>Mueller</surname> <given-names>N. D.</given-names></name>
<name><surname>Fleisher</surname> <given-names>D. H.</given-names></name>
<name><surname>Yun</surname> <given-names>K.</given-names></name>
<name><surname>Butler</surname> <given-names>E. E.</given-names></name>
<etal/>
</person-group>. (<year>2016</year>). 
<article-title>Random forests for global and regional crop yield predictions</article-title>. <source>PloS One</source> <volume>11</volume>, <fpage>e0156571</fpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1371/journal.pone.0156571</pub-id>, PMID: <pub-id pub-id-type="pmid">27257967</pub-id>
</mixed-citation>
</ref>
<ref id="B15">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Khaki</surname> <given-names>S.</given-names></name>
<name><surname>Wang</surname> <given-names>L.</given-names></name>
</person-group> (<year>2019</year>). 
<article-title>Crop yield prediction using deep neural networks</article-title>. <source>Front. Plant Sci.</source> <volume>10</volume>. doi:&#xa0;<pub-id pub-id-type="doi">10.3389/fpls.2019.00621</pub-id>, PMID: <pub-id pub-id-type="pmid">31191564</pub-id>
</mixed-citation>
</ref>
<ref id="B16">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Khaki</surname> <given-names>S.</given-names></name>
<name><surname>Wang</surname> <given-names>L.</given-names></name>
<name><surname>Archontoulis</surname> <given-names>S. V.</given-names></name>
</person-group> (<year>2020</year>). 
<article-title>A cnn-rnn framework for crop yield prediction</article-title>. <source>Front. Plant Sci.</source> <volume>10</volume>. doi:&#xa0;<pub-id pub-id-type="doi">10.3389/fpls.2019.01750</pub-id>, PMID: <pub-id pub-id-type="pmid">32038699</pub-id>
</mixed-citation>
</ref>
<ref id="B17">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Kuwata</surname> <given-names>K.</given-names></name>
<name><surname>Shibasaki</surname> <given-names>R.</given-names></name>
</person-group> (<year>2015</year>). 
<article-title>Estimating crop yields with deep learning and remotely sensed data</article-title>. <source>2015 IEEE Int. Geosci. Remote Sens. Symposium (IGARSS)</source>, <fpage>858</fpage>&#x2013;<lpage>861</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1109/IGARSS.2015.7325900</pub-id>, PMID: <pub-id pub-id-type="pmid">41116384</pub-id>
</mixed-citation>
</ref>
<ref id="B18">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Liakos</surname> <given-names>K. G.</given-names></name>
<name><surname>Busato</surname> <given-names>P.</given-names></name>
<name><surname>Moshou</surname> <given-names>D.</given-names></name>
<name><surname>Pearson</surname> <given-names>S.</given-names></name>
<name><surname>Bochtis</surname> <given-names>D.</given-names></name>
</person-group> (<year>2018</year>). 
<article-title>Machine learning in agriculture: A review</article-title>. <source>Sensors</source> <volume>18</volume>, <elocation-id>2674</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/s18082674</pub-id>, PMID: <pub-id pub-id-type="pmid">30110960</pub-id>
</mixed-citation>
</ref>
<ref id="B19">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Lin</surname> <given-names>B. B.</given-names></name>
<name><surname>Schilstra</surname> <given-names>A. J.</given-names></name>
</person-group> (<year>2019</year>). 
<article-title>Crop diversity at different spatial scales promotes multiple ecosystem services in smallholder farms</article-title>. <source>Agriculture Ecosyst. Environ.</source> <volume>285</volume>, <elocation-id>106615</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.agee.2019.106615</pub-id>, PMID: <pub-id pub-id-type="pmid">41743167</pub-id>
</mixed-citation>
</ref>
<ref id="B20">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Nevavuori</surname> <given-names>P.</given-names></name>
<name><surname>Narra</surname> <given-names>N.</given-names></name>
<name><surname>Lipping</surname> <given-names>T.</given-names></name>
</person-group> (<year>2019</year>). 
<article-title>Crop yield prediction with deep convolutional neural networks</article-title>. <source>Comput. Electron. Agric.</source> <volume>163</volume>, <elocation-id>104859</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.compag.2019.104859</pub-id>, PMID: <pub-id pub-id-type="pmid">41743167</pub-id>
</mixed-citation>
</ref>
<ref id="B21">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Parnell</surname> <given-names>S.</given-names></name>
<name><surname>Gottwald</surname> <given-names>T. R.</given-names></name>
<name><surname>Gilks</surname> <given-names>W. R.</given-names></name>
<name><surname>van den Bosch</surname> <given-names>F.</given-names></name>
</person-group> (<year>2017</year>). 
<article-title>Surveillance to inform control of emerging plant diseases: an epidemiological perspective</article-title>. <source>Annu. Rev. Phytopathol.</source> <volume>55</volume>, <fpage>591</fpage>&#x2013;<lpage>610</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1146/annurev-phyto-080516-035334</pub-id>, PMID: <pub-id pub-id-type="pmid">28637378</pub-id>
</mixed-citation>
</ref>
<ref id="B22">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Puma</surname> <given-names>M. J.</given-names></name>
<name><surname>Bose</surname> <given-names>S.</given-names></name>
<name><surname>Chon</surname> <given-names>S. Y.</given-names></name>
<name><surname>Cook</surname> <given-names>B. I.</given-names></name>
</person-group> (<year>2015</year>). 
<article-title>Assessing the evolving fragility of the global food system</article-title>. <source>Environ. Res. Lett.</source> <volume>10</volume>, <elocation-id>24007</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1088/1748-9326/10/2/024007</pub-id>
</mixed-citation>
</ref>
<ref id="B23">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Roberts</surname> <given-names>D. R.</given-names></name>
<name><surname>Bahn</surname> <given-names>V.</given-names></name>
<name><surname>Ciuti</surname> <given-names>S.</given-names></name>
<name><surname>Boyce</surname> <given-names>M. S.</given-names></name>
<name><surname>Elith</surname> <given-names>J.</given-names></name>
<name><surname>Guillera-Arroita</surname> <given-names>G.</given-names></name>
<etal/>
</person-group>. (<year>2017</year>). 
<article-title>Cross-validation strategies for data with temporal, spatial, hierarchical, or phylogenetic structure</article-title>. <source>Ecography</source> <volume>40</volume>, <fpage>913</fpage>&#x2013;<lpage>929</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1111/ecog.02881</pub-id>, PMID: <pub-id pub-id-type="pmid">41744481</pub-id>
</mixed-citation>
</ref>
<ref id="B24">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>S&#xe1;ez-Almendros</surname> <given-names>S.</given-names></name>
<name><surname>Obrador</surname> <given-names>B.</given-names></name>
<name><surname>Bach-Faig</surname> <given-names>A.</given-names></name>
<name><surname>Serra-Majem</surname> <given-names>L.</given-names></name>
</person-group> (<year>2020</year>). 
<article-title>Emerging trends in the agri-food sector: Digitalisation and shift to plant-based diets</article-title>. <source>Sustainability</source> <volume>12</volume>, <elocation-id>5141</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/su12125141</pub-id>, PMID: <pub-id pub-id-type="pmid">41725453</pub-id>
</mixed-citation>
</ref>
<ref id="B25">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Shahhosseini</surname> <given-names>M.</given-names></name>
<name><surname>Hu</surname> <given-names>G.</given-names></name>
<name><surname>Huber</surname> <given-names>I.</given-names></name>
<name><surname>Archontoulis</surname> <given-names>S. V.</given-names></name>
</person-group> (<year>2021</year>). 
<article-title>Optimizing ensemble weights for machine learning models: a case study for maize yield prediction</article-title>. <source>Agron. J.</source> <volume>113</volume>, <fpage>3056</fpage>&#x2013;<lpage>3066</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1002/agj2.20680</pub-id>, PMID: <pub-id pub-id-type="pmid">41744314</pub-id>
</mixed-citation>
</ref>
<ref id="B26">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Song</surname> <given-names>C.</given-names></name>
<name><surname>Yao</surname> <given-names>L.</given-names></name>
<name><surname>Hua</surname> <given-names>C.</given-names></name>
<name><surname>Ni</surname> <given-names>Q.</given-names></name>
</person-group> (<year>2020</year>). 
<article-title>A water quality prediction model based on variational mode decomposition and the least squares support vector machine optimized by the gravitational search algorithm (vmd-gsa-lssvm) for oxbow lakes in northeast China</article-title>. <source>Water</source> <volume>12</volume>, <elocation-id>985</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/w12040985</pub-id>, PMID: <pub-id pub-id-type="pmid">41725453</pub-id>
</mixed-citation>
</ref>
<ref id="B27">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Sun</surname> <given-names>J.</given-names></name>
<name><surname>Lai</surname> <given-names>Z.</given-names></name>
<name><surname>Di</surname> <given-names>L.</given-names></name>
<name><surname>Sun</surname> <given-names>Z.</given-names></name>
<name><surname>Tao</surname> <given-names>J.</given-names></name>
<name><surname>Shen</surname> <given-names>Y.</given-names></name>
</person-group> (<year>2019</year>). 
<article-title>Multilevel deep learning network for county-level corn yield estimation in the us corn belt</article-title>. <source>IEEE J. Selected Topics Appl. Earth Observations Remote Sens.</source> <volume>13</volume>, <fpage>5048</fpage>&#x2013;<lpage>5060</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1109/JSTARS.2020.3019046</pub-id>, PMID: <pub-id pub-id-type="pmid">41116384</pub-id>
</mixed-citation>
</ref>
<ref id="B28">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Thompson</surname> <given-names>J.</given-names></name>
<name><surname>Ramakrishnan</surname> <given-names>A.</given-names></name>
<name><surname>Patel</surname> <given-names>T.</given-names></name>
<name><surname>McClure</surname> <given-names>S. C.</given-names></name>
</person-group> (<year>2019</year>). 
<article-title>Network analysis for agricultural systems research: Where are we at and where can we go</article-title>? <source>Agric. Syst.</source> <volume>174</volume>, <fpage>1</fpage>&#x2013;<lpage>11</lpage>.
</mixed-citation>
</ref>
<ref id="B29">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>van Klompenburg</surname> <given-names>T.</given-names></name>
<name><surname>Kassahun</surname> <given-names>A.</given-names></name>
<name><surname>Catal</surname> <given-names>C.</given-names></name>
</person-group> (<year>2020</year>). 
<article-title>Crop yield prediction using machine learning: A systematic literature review</article-title>. <source>Comput. Electron. Agric.</source> <volume>177</volume>, <elocation-id>105709</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.compag.2020.105709</pub-id>, PMID: <pub-id pub-id-type="pmid">41743167</pub-id>
</mixed-citation>
</ref>
<ref id="B30">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Wang</surname> <given-names>L.</given-names></name>
<name><surname>Tian</surname> <given-names>Y.</given-names></name>
<name><surname>Yao</surname> <given-names>X.</given-names></name>
<name><surname>Zhu</surname> <given-names>Y.</given-names></name>
<name><surname>Cao</surname> <given-names>W.</given-names></name>
</person-group> (<year>2014</year>). 
<article-title>Predicting grain yield and protein content in wheat by fusing multi-sensor and multi-temporal remote-sensing images</article-title>. <source>Field Crops Res.</source> <volume>164</volume>, <fpage>178</fpage>&#x2013;<lpage>188</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.fcr.2014.05.001</pub-id>, PMID: <pub-id pub-id-type="pmid">41743167</pub-id>
</mixed-citation>
</ref>
<ref id="B31">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Weiss</surname> <given-names>M.</given-names></name>
<name><surname>Jacob</surname> <given-names>F.</given-names></name>
<name><surname>Duveiller</surname> <given-names>G.</given-names></name>
</person-group> (<year>2020</year>). 
<article-title>Remote sensing for agricultural applications: A meta-review</article-title>. <source>Remote Sens. Environ.</source> <volume>236</volume>, <elocation-id>111402</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.rse.2019.111402</pub-id>, PMID: <pub-id pub-id-type="pmid">41743167</pub-id>
</mixed-citation>
</ref>
<ref id="B32">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>You</surname> <given-names>J.</given-names></name>
<name><surname>Li</surname> <given-names>X.</given-names></name>
<name><surname>Low</surname> <given-names>M.</given-names></name>
<name><surname>Lobell</surname> <given-names>D.</given-names></name>
<name><surname>Ermon</surname> <given-names>S.</given-names></name>
</person-group> (<year>2017</year>). 
<article-title>Deep gaussian process for crop yield prediction based on remote sensing data</article-title>. <source>Proc. AAAI Conf. Artif. Intell.</source> <volume>31</volume>, <fpage>4559</fpage>&#x2013;<lpage>4565</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1609/aaai.v31i1.11172</pub-id>
</mixed-citation>
</ref>
</ref-list>
<fn-group>
<fn id="n1" fn-type="custom" custom-type="edited-by">
<p>Edited by: <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/75444">Aqeel Ahmad</ext-link>, University of Florida, United States</p></fn>
<fn id="n2" fn-type="custom" custom-type="reviewed-by">
<p>Reviewed by: <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2649016">Ahmad Alsaber</ext-link>, American University of Kuwait, Kuwait</p>
<p><ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/3125634">Mutlu Bulut</ext-link>, Ni&#x11f;de &#xd6;mer Halisdemir University, T&#xfc;rkiye</p></fn>
</fn-group>
</back>
</article>