<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="2.3" xml:lang="EN">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Artif. Intell.</journal-id>
<journal-title>Frontiers in Artificial Intelligence</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Artif. Intell.</abbrev-journal-title>
<issn pub-type="epub">2624-8212</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/frai.2025.1620019</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Artificial Intelligence</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>A hybrid long short-term memory with generalized additive model and post-hoc explainable artificial intelligence with causal inference for air pollutants prediction in Kimberley, South Africa</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name><surname>Agbehadji</surname> <given-names>Israel Edem</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x002A;</sup></xref>
<uri xlink:href="https://loop.frontiersin.org/people/2068904/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
<role content-type="https://credit.niso.org/contributor-roles/formal-analysis/"/>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/data-curation/"/>
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/software/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-review-editing/"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Obagbuwa</surname> <given-names>Ibidun Christiana</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<uri xlink:href="https://loop.frontiersin.org/people/2326835/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/funding-acquisition/"/>
<role content-type="https://credit.niso.org/contributor-roles/project-administration/"/>
<role content-type="https://credit.niso.org/contributor-roles/validation/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-review-editing/"/>
<role content-type="https://credit.niso.org/contributor-roles/supervision/"/>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>Centre for Global Change, Sol Plaatje University</institution>, <addr-line>Kimberley</addr-line>, <country>South Africa</country></aff>
<aff id="aff2"><sup>2</sup><institution>Department of Computer Science and Information Technology, Faculty of Natural and Applied Sciences, Sol Plaatje University</institution>, <addr-line>Kimberley</addr-line>, <country>South Africa</country></aff>
<author-notes>
<fn fn-type="edited-by" id="fn0001">
<p>Edited by: Pradeep Kumar, Banaras Hindu University, India</p>
</fn>
<fn fn-type="edited-by" id="fn0002">
<p>Reviewed by: Kruna Ratkovic, University of Donja Gorica, Montenegro</p>
<p>Vandana Homes, Christ University, India</p>
</fn>
<corresp id="c001">&#x002A;Correspondence: Israel Edem Agbehadji, <email>israel.agbehadji@spu.ac.za</email></corresp>
</author-notes>
<pub-date pub-type="epub">
<day>04</day>
<month>08</month>
<year>2025</year>
</pub-date>
<pub-date pub-type="collection">
<year>2025</year>
</pub-date>
<volume>8</volume>
<elocation-id>1620019</elocation-id>
<history>
<date date-type="received">
<day>29</day>
<month>04</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>21</day>
<month>07</month>
<year>2025</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x00A9; 2025 Agbehadji and Obagbuwa.</copyright-statement>
<copyright-year>2025</copyright-year>
<copyright-holder>Agbehadji and Obagbuwa</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). 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.</p>
</license>
</permissions>
<abstract>
<p>The study addresses the problem of nonlinear characteristics of common air pollutants by proposing a deep learning time-series model based on the long short-term memory (LSTM) integrated with a generalized additive model (GAM). LSTM model captures both nonlinear relationships and temporal long-term dependencies in time-series data, and GAM provides insight into the statistical relationship between selected features and the target pollutant. The post-hoc eXplainable artificial intelligence (xAI) technique, local interpretable model-agnostic explanation (LIME), further explains the nonlinearity. Finally, causal inference was determined on the impact of the air pollutants relationship, thereby offering further interpretability in which deep learning models are deficient. Meteorological and air pollutant statistical records were leveraged from a Hantam (Karoo) air monitoring station in South Africa, and through a random sampling approach, synthetic data were generated for the city of Kimberley. The model was evaluated with the mean squared error (MSE), root mean squared error (RMSE) and mean absolute error (MAE) for different time-steps. The proposed referred to as long short-term memory generalized additive model based post-hoc eXplainable Artificial Intelligence (LSTM-GAM_xAI) model with a 10-day time-step and 5-day time-step for multiple pollutants prediction guaranteed least MSE. Though the causal effect analysis show no <italic>p</italic>-values (&#x003E;0.88) for variables, the experiment results show that LSTM-GAM-xAI guaranteed the lowest MSE values across different time-steps.</p>
</abstract>
<kwd-group>
<kwd>generative additive model</kwd>
<kwd>post-hoc explanation</kwd>
<kwd>local interpretable model-agnostic explanation</kwd>
<kwd>deep learning</kwd>
<kwd>causal inference</kwd>
</kwd-group>
<counts>
<fig-count count="5"/>
<table-count count="9"/>
<equation-count count="25"/>
<ref-count count="59"/>
<page-count count="17"/>
<word-count count="11872"/>
</counts>
<custom-meta-wrap>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Machine Learning and Artificial Intelligence</meta-value>
</custom-meta>
</custom-meta-wrap>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="sec1">
<label>1</label>
<title>Introduction</title>
<p>The prediction of air pollutant concentration continues to receive attention from the research community due to the health risk impact of high levels of air pollutant concentrations. Despite the World Health Organization (WHO) standard limits on the allowable air pollutant concentration in the environment, the problem of air pollution persists in some countries. Some of the sources of these air pollutants include power plants and cement factories, and the transport sector, which are known to emit Nitrogen Dioxide (NO<sub>2</sub>) into the atmosphere (<xref ref-type="bibr" rid="ref51">Tu et al., 2023</xref>).</p>
<p>Air is a combination of gaseous components, and understanding the correlation is key, which can equally be achieved with machine learning or deep learning time-series models. Deep learning models for time-series analysis find patterns in the air pollutant dataset to help understand the nature of correlation through their network architecture. For instance, deep learning models such as the long short-term memory model (LSTM) use their gated mechanism to filter the necessary data inputs to produce refined output. Generally, LSTM is one of the commonly used models for time-series analysis, which requires training and testing with volumes of data. Other variants of deep learning models includes bi-directional LSTM (BiLSTM), gated recurrent unit (GRU), bi-gated recurrent unit (BiGRU), and one-dimensional convolutional neural network (1DCNN). These model, among other time-series models, captures complex nonlinear and temporal long-term dependencies in air pollutants (<xref ref-type="bibr" rid="ref3">Agbehadji and Obagbuwa, 2025a</xref>). Mostly, air pollutants exhibit dynamic tendencies that make their modeling challenging. In this regard, the modeling of air quality tasks is not immune to errors that could impact on model&#x2019;s performance. Several attempts have been made by researchers to address the errors from either a data or a model structure perspective. For instance, the use of an adaptive Kalman filter in an LSTM model to address prediction performance and also noise in the dataset (<xref ref-type="bibr" rid="ref4">Agbehadji and Obagbuwa, 2025b</xref>). Again, the ensemble Kalman Filter was integrated with machine learning and deep learning models for long-term forecasting to reduce the level of uncertainty in data-driven models (<xref ref-type="bibr" rid="ref11">Cheng et al., 2023</xref>). Therefore, hybrid models have contributed greatly to enhancing predictive accuracy in most prediction tasks. <xref ref-type="bibr" rid="ref53">Wahiduzzaman and Yeasmin (2024)</xref> enhanced the predictive capability of deep learning models by utilizing a generalized additive model (GAM) to smooth the transformation of predictors. GAM is a machine learning model that helps to capture nonlinearity in data through its smoothing function capability (<xref ref-type="bibr" rid="ref52">Tyralis and Papacharalampous, 2024</xref>). One of the potential of GAM is that it help understand problems within relevant domains such as air pollution to help stakeholders formulate their policies. Again, it help to bridge the gap between traditional statistical models and machine learning or deep learning models which make it a very valuable tool in xAI. While the role of neural-based GAM has been identified to provide interpretable and transparent deep learning models (<xref ref-type="bibr" rid="ref42">Ortega-Fernandez et al., 2024</xref>), understanding the causal effect of air pollutants in a predictive task remains a challenge.</p>
<p>To solve the aforementioned challenge, this study attempts to develop a novel air predictive model for Kimberley. Kimberley is located in the Northern Cape Province of South Africa. The Northern Cape covers an area of 372,889km<sup>2</sup> with an estimated population of 1,193,780. The Province is rich in minerals and also has fertile agricultural land (<xref ref-type="bibr" rid="ref16">Department of Environmental Affairs, 2019</xref>). <xref ref-type="fig" rid="fig1">Figure 1</xref> shows the map of South Africa with air monitoring stations.</p>
<fig position="float" id="fig1">
<label>Figure 1</label>
<caption>
<p>Map of South Africa showing Air quality monitoring stations in South Africa as of January 2023.</p>
</caption>
<graphic xlink:href="frai-08-1620019-g001.tif" mimetype="image" mime-subtype="tiff">
<alt-text content-type="machine-generated">Map of South Africa showing provinces, district municipalities, and air quality monitoring stations. Monitoring stations are marked with blue dots, concentrated in Gauteng, KwaZulu-Natal, and Western Cape. Provinces are outlined, and a compass rose indicates directions.</alt-text>
</graphic>
</fig>
<p>In Kimberley, the leading air pollution sources are diamond mining activities, vehicle emissions, and industrial facilities, where particulate matter (PM<sub>2.5</sub>) is a primary concern (<xref ref-type="bibr" rid="ref7">Becker et al., 2024</xref>). Moreover, the annual measure of particulates (PM<sub>10</sub>) and sulfur dioxide (SO<sub>2</sub>) are the two most prevalent pollutants in South Africa (<xref ref-type="bibr" rid="ref21">Forestry Fisheries and the Environment, 2024</xref>). Furthermore, power stations in South Africa emit different kinds of air pollutants, including Carbon Monoxide (CO), NO<sub>2</sub>, and sulfur dioxide (SO<sub>2</sub>) (<xref ref-type="bibr" rid="ref3">Agbehadji and Obagbuwa, 2025a</xref>). Unfortunately, the activities of large-scale diamond mining companies in Kimberley impact negatively on the environment, leading to land degradation, air pollution and biodiversity loss (<xref ref-type="bibr" rid="ref10">Charumbira and Ncube, 2022</xref>).</p>
<p>This study aims to develop a model for predicting multiple air pollutant concentrations including PM<sub>2.5</sub>, PM<sub>10</sub>, Ozone (O<sub>3</sub>), SO<sub>2</sub>, NO<sub>2</sub>, NO, and NO<sub>x</sub>. Additionally, meteorological factors such as wind speed (WS), ambient temperature (AT), relative humidity (RH) and solar radiation (SR) were considered in developing the predictive model. The generalized additive model (GAM) and deep learning time-series models, such as LSTM, were utilized for nonlinear relationship modeling and capturing temporal dependencies in the pollutants dataset. A causal inference model is leveraged to establish the impact of predicted air pollutants and others. Given that deep learning models have complex network structures, hybridizing with another model could increase the level of complexity, thus, the post-hoc explanation is employed to explain the feature influences on target variables and the model complexity. The post-hoc techniques, such as LIME, are gaining popularity in providing explanations on the relationship between a target and predictors, and provide feature importance to help with human understanding. Our study contributes toward developing a predictive model for air monitoring stations that seek to use an enhanced deep learning model with causal inference capability, as an alternative to legacy-based air pollutant concentration prediction systems. The sections are section 2 (literature review), section 3 (Method and material), section 4 (results), section 5 (discussion), section 6 (methodological limitations) and section 7 (conclusion).</p>
</sec>
<sec id="sec2">
<label>2</label>
<title>Literature review</title>
<p>This section presents a review of generalized additive models, deep learning time-series models and post-hoc explanation models focusing on air pollutant concentration prediction within their air quality thresholds. It then presents a summary of models, either single or hybrid models, applicable to diverse research domains within the context of air pollution predictions and quality indexes.</p>
<sec id="sec3">
<label>2.1</label>
<title>Generalized additive model</title>
<p>The GAM is a model that handles the nonlinear relationship among features. GAM handle this nonlinearity through the use of link functions to map input data to their search space (<xref ref-type="bibr" rid="ref40">Nisbet et al., 2009</xref>). By so doing, it uses probability distributions to achieve the mapping to the data distribution. This model incorporates smoothing functions (like splines) to model the relationship, thereby allowing the capture of the nonlinearity in data variables. By so doing, it offers interpretability to models. Additionally, neural networks, when deployed on GAM, can estimate the smoothing function to offer scalable models. The degree of flexibility of the GAM makes it suitable for its incorporation in other models. <xref ref-type="bibr" rid="ref33">Jo and Kim (2023)</xref> indicated that using neural networks on GAM offers good prediction performance for multivariate time-series predictions (MTS) and also offers interpretability for neural networks (which are black-box in nature). Integrating a neural network on GAM helps estimate each feature contribution toward an accurate and explainable deep learning model (<xref ref-type="bibr" rid="ref42">Ortega-Fernandez et al., 2024</xref>). Studies such as <xref ref-type="bibr" rid="ref38">Lou et al. (2012)</xref> and <xref ref-type="bibr" rid="ref41">Obster et al. (2022)</xref> also applied machine learning models to GAM to enhance accuracy. Studies have been conducted to compare the utilization of interpretability of tools like GAM and Shapley additive explanations (SHAP) among scientists and concluded that there is over-trust and misuse of these tools (<xref ref-type="bibr" rid="ref34">Kaur et al., 2020</xref>). Given this, the merit and demerits of GAM and machine learning models were highlighted, thus discounting the notion that there is no strict trade-off between models&#x2019; performance and interpretability, thereby dispelling the idea that only black box models can achieve high performance (<xref ref-type="bibr" rid="ref35">Kruschel et al., 2025</xref>).</p>
<p>Since deep learning time series models can handle nonlinear relationships as well as GAM can also handle nonlinear relationships, presenting a common approach for integration. Thus, the two-layer approach can help to improve the accuracy of models. Within a search space, the GAM can search for nonlinear transformations of both target and predictors that can result in additive model. Though GAM is a statistical tool, it provides more analytical tools for climate modeling than traditional linear models (<xref ref-type="bibr" rid="ref43">Ravindra et al., 2019</xref>). The GAM is also very effective at handling time-series data. GAM provides a best fit for non-linear relationships between the independent variable and the predictor (<xref ref-type="bibr" rid="ref43">Ravindra et al., 2019</xref>). However, the ease of understanding the output of the model has been a challenge when more complex nonlinear models are utilized in the prediction.</p>
<p><xref ref-type="bibr" rid="ref5">Bai et al. (2021)</xref> indicated that air quality standards are not static and need to be revised after a certain period. For instance, in 2013, China developed new air quality standards in which the GAM was used to evaluate this new standard on air pollutants such as PM<sub>10</sub>, SO<sub>2</sub>, and NO<sub>2</sub>. Their findings suggest that the new standard affected the health of the population (<xref ref-type="bibr" rid="ref5">Bai et al., 2021</xref>). <xref ref-type="bibr" rid="ref6">Barbalat et al. (2024)</xref> used the GAM to aggregate the prediction of three machine learning models, such as extreme gradient boosting, random forest and categorical boosting, to predict daily NO<sub>2</sub> concentration with low error levels. In this regard, combining the predictions increases the chance of an accurate prediction over time. The GAM has been extensively applied to analyze the relationship between air pollutants, environmental factors and health-related issues (<xref ref-type="bibr" rid="ref24">Gao et al., 2025</xref>; <xref ref-type="bibr" rid="ref22">Fu et al., 2023</xref>; <xref ref-type="bibr" rid="ref23">Fu et al., 2020</xref>; <xref ref-type="bibr" rid="ref20">Fang et al., 2021</xref>; <xref ref-type="bibr" rid="ref19">Fan et al., 2024</xref>; <xref ref-type="bibr" rid="ref26">Gu et al., 2020</xref>). Common air particles such as PM<sub>10</sub> can remain in the atmosphere for minutes or hours, whereas PM<sub>2.5</sub> can remain for days or weeks.</p>
<p>GAM demonstrates optimal performance in capturing the nonlinear relationship between concentration O<sub>3</sub> and predictor factors than the multiple linear regression model for different locations (<xref ref-type="bibr" rid="ref27">Habeebullah, 2020</xref>). GAM is also able to disclose the varying dependencies between air pollutants (such as PM<sub>10</sub> and NO<sub>2</sub>) and meteorological variables for different locations and seasons (<xref ref-type="bibr" rid="ref28">Haddad and Vizakos, 2021</xref>). <xref ref-type="table" rid="tab1">Table 1</xref> presents research on the use of GAM in different research domains.</p>
<table-wrap position="float" id="tab1">
<label>Table 1</label>
<caption>
<p>Generalized additive model in air pollution.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top">Author</th>
<th align="left" valign="top">Research focus</th>
<th align="left" valign="top">Approach</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top">
<xref ref-type="bibr" rid="ref59">Zhu et al. (2024)</xref>
</td>
<td align="left" valign="top">To predict monthly average concentrations of Nitric oxide (NO).</td>
<td align="left" valign="top">Spatio-temporal smoothing models and machine learning prediction algorithms.</td>
</tr>
<tr>
<td align="left" valign="top">
<xref ref-type="bibr" rid="ref8">Bitz et al. (2024)</xref>
</td>
<td align="left" valign="top">Prediction of urban ultrafine particle emission fluxes.</td>
<td align="left" valign="top">Method of evaluation: <italic>R</italic><sup>2</sup></td>
</tr>
<tr>
<td align="left" valign="top">
<xref ref-type="bibr" rid="ref1">Adamkiewicz et al. (2022)</xref>
</td>
<td align="left" valign="top">The short-term effect of daily PM<sub>10</sub>, PM<sub>2.5</sub> concentration, and meteorological variables on hospital data.</td>
<td align="left" valign="top">GAM and a random-effects meta-analysis.</td>
</tr>
<tr>
<td align="left" valign="top">
<xref ref-type="bibr" rid="ref12">Cheng et al. (2021)</xref>
</td>
<td align="left" valign="top">Influence of weather and air pollution on the concentration change of PM<sub>2.5</sub></td>
<td align="left" valign="top">GAM and gradient boosting machine (GBM) approaches to analyze the relationship between PM<sub>2.5</sub> concentration and environmental factors.</td>
</tr>
<tr>
<td align="left" valign="top">
<xref ref-type="bibr" rid="ref14">de As&#x00ED;s L&#x00F3;pez et al. (2024)</xref>
</td>
<td align="left" valign="top">Location scaling model that finds the means for each variable and a correlation matrix.</td>
<td align="left" valign="top">GAM to scale spatial location data</td>
</tr>
<tr>
<td align="left" valign="top">
<xref ref-type="bibr" rid="ref29">Hammouda et al. (2021)</xref>
</td>
<td align="left" valign="top">Quantification of the impact of meteorological conditions and precursor concentrations on air pollution (PM<sub>10</sub> and O<sub>3</sub>).</td>
<td align="left" valign="top">GAMs</td>
</tr>
<tr>
<td align="left" valign="top">
<xref ref-type="bibr" rid="ref30">He et al. (2023)</xref>
</td>
<td align="left" valign="top">Estimate the daily ground-level NO<sub>2</sub> concentrations.</td>
<td align="left" valign="top">GAM to ensemble machine learning models such as random forest and extreme gradient boosting (XGBoost).</td>
</tr>
<tr>
<td align="left" valign="top">
<xref ref-type="bibr" rid="ref31">Huang et al. (2025)</xref>
</td>
<td align="left" valign="top">To estimate and characterize the spatiotemporal distributions of elemental PM<sub>2.5</sub> in Taiwan.</td>
<td align="left" valign="top">An ensemble machine learning approach that combines generalized additive model (GAM) with eXtreme Gradient Boosting (XGBoost). Use the Shapley additive explanations analysis to find the time-invariant features.</td>
</tr>
<tr>
<td align="left" valign="top">
<xref ref-type="bibr" rid="ref37">Lin et al. (2025)</xref>
</td>
<td align="left" valign="top">Meteorological and traffic effects on air pollutants such as CO, NO, NO<sub>2</sub>, and Nitrogen oxides (NOx); and O<sub>3</sub>, PM<sub>10</sub>, and PM<sub>2.5</sub>, respectively.</td>
<td align="left" valign="top">LSTM model incorporate GAM and Bayesian network.</td>
</tr>
<tr>
<td align="left" valign="top">
<xref ref-type="bibr" rid="ref15">de Foy et al. (2024)</xref>
</td>
<td align="left" valign="top">Interpretable machine learning tools to analyze PM<sub>2.5</sub> sensor network data.</td>
<td align="left" valign="top">Generalized additive models.</td>
</tr>
<tr>
<td align="left" valign="top">
<xref ref-type="bibr" rid="ref43">Ravindra et al. (2019)</xref>
</td>
<td align="left" valign="top">GAM to address the non-normal distribution of the environment and the meteorological dataset.</td>
<td align="left" valign="top">Generalized additive models.</td>
</tr>
<tr>
<td align="left" valign="top">
<xref ref-type="bibr" rid="ref25">Goudet et al. (2018)</xref>
</td>
<td align="left" valign="top">Cause-effect inference.</td>
<td align="left" valign="top">Use of Causal Generative Neural Network (CGNN).</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Despite the application of generalized additive models (GAMs), it lacks structures that offer the needed scalability when large volumes of data are required (<xref ref-type="bibr" rid="ref9">Chang et al., 2022</xref>). GAM is more interpretable than models such as post-hoc explanations (SHAP) (<xref ref-type="bibr" rid="ref34">Kaur et al., 2020</xref>). The hybridization of GAM with deep learning models such as GRU, BiLSTM, and 1DCNN remains a research domain that needs to be explored within the context of air pollution prediction. Therefore, applying GAM, this research provides two insights: that is model&#x2019;s interpretability and performance.</p>
</sec>
<sec id="sec4">
<label>2.2</label>
<title>Time-series deep learning models</title>
<p>Many attempts have been made to improve the interpretability of deep learning models, leading to the use of models such as neural-based GAM and post-hoc models (such as SHAP). The gradient-based approach (such as the Adam method) has been used as an approach to smooth parameters used in GAM (<xref ref-type="bibr" rid="ref13">Dammann et al., 2025</xref>). Deep learning models have multiple layers to process input data, reveal the hidden structures in a large set of data, improve training and model&#x2019;s performance (<xref ref-type="bibr" rid="ref36">LeCun et al., 2015</xref>). Deep learning also has &#x201C;Dropout&#x201D; as a way to prevent overfitting in deep learning models (<xref ref-type="bibr" rid="ref46">Srivastava et al., 2014</xref>).</p>
<p><xref ref-type="bibr" rid="ref44">Setianingrum et al. (2022)</xref> suggested the use of the Prophet Facebook model and the Bayesian Optimisation as a hyper-parameter tuner to effectively predict O<sub>3</sub>, SO<sub>2</sub>, and CO. While traditional models like autoregressive integrated moving average (ARIMA) are more accurate for predicting the parameters of PM<sub>10</sub> and NO<sub>2</sub>. Since model performance differs across different air pollutant datasets, there is a need to continuously enhance the model&#x2019;s performance. <xref ref-type="bibr" rid="ref18">Eslami et al. (2020)</xref> indicated that the convolutional neural network (CNN) model is faster in predicting hourly O<sub>3</sub> concentrations throughout the year than both LSTM and deep stacked auto-encoder (SAE). Also, the CNN predictions of daytime O<sub>3</sub> concentrations were more accurate than nighttime. However, the CNN model under-predicted the daily maximum ozone concentrations, particularly during the summer, because of the non-availability of several meteorological parameters, such as cloud fraction and solar radiation, to train their model. The complexity of interpreting learning models and generalizing their outcomes leads to the use of causal models integrated into complex models such as deep learning models (<xref ref-type="bibr" rid="ref49">Tejada-Lapuerta et al., 2025</xref>).</p>
<p>The literature review highlighted model hybridization for air quality prediction. Among such hybrid models include a tree-based ensemble deep learning model, where the approach used random forest, XGboost, and Light Gradient Boosting Machine (LightGBM) to predict O3 concentration independently and then combined the predicted result with a linear regression model for further predictions (<xref ref-type="bibr" rid="ref57">Zang et al., 2021</xref>); the application of Modified Particle Swarm Optimization (MPSO) and ANFIS (Adaptive Neuro Fuzzy Inference System) to predict SO<sub>2</sub> and O<sub>3</sub>, in which MPSO was used to train ANFIS for better prediction of SO<sub>2</sub> and O<sub>3</sub> (<xref ref-type="bibr" rid="ref47">Talati et al., 2023</xref>). Also, an adaptive filter technique based on ANN has been used to predict the daily O<sub>3</sub> concentrations using the meteorological dataset (<xref ref-type="bibr" rid="ref48">Taormina et al., 2011</xref>). Again, while <xref ref-type="bibr" rid="ref45">Sharma et al. (2024)</xref> attempt to forecast air quality using machine learning methods, they only focus on air pollutants without considering meteorological features in testing the effectiveness of air predictive models. Meteorological features have useful information on RH, AT and WS, which are location or spatial information that can be useful in air quality prediction (<xref ref-type="bibr" rid="ref2">Agbehadji and Obagbuwa, 2024</xref>). Unfortunately, due to data limitations or uncertainties in collecting data from multiple sources (<xref ref-type="bibr" rid="ref56">Xiong et al., 2024</xref>), some researchers may either focus only on air pollutants or meteorological data. Therefore, this could impact how models are developed, in addition to setting hyperparameters of models.</p>
<p><xref ref-type="bibr" rid="ref55">Widiputra et al. (2021)</xref> indicates that most time-series models use univariate approach for prediction, while a multivariate CNN-LSTM uses the best features from many time-series models to make predictions. Thus, the assumption is that a group of time series data from the same source tend to have a relationship and each influences the other. By using the multivariate approach on CNN-LSTM model, the CNN layer extracts the main features from time-series data, and the LSTM layer calculates the final prediction (<xref ref-type="bibr" rid="ref55">Widiputra et al., 2021</xref>). In the multivariate approach, the input data structure accommodates multiple parallel time-series data. This model was able to predict the value of different targets. Again, a two staged model was proposed to predict multivariate time-series data in urban area (<xref ref-type="bibr" rid="ref39">Naz et al., 2024</xref>).</p>
<p><xref ref-type="bibr" rid="ref50">Tian et al. (2023)</xref> indicates that when large volumes of data are fed into time-series models for long-term series predictions, their performance is challenged. Thus, the parallel model can greatly improve the performance of these models.</p>
</sec>
<sec id="sec5">
<label>2.3</label>
<title>Post-hoc explanation</title>
<p>Post-hoc explanation utilized artificial intelligence models such as SHAP and local interpretable model-agnostic explanation (LIME) to provide explanations on models. Predictive ML models such as XGBoost have been noted to provide a robust approach when compared with explainable models such as SHAP (<xref ref-type="bibr" rid="ref17">Dillon et al., 2025</xref>). Moreover, it provides some information on the relationship between input variables and their predicted variables used in explaining ML models.</p>
<p>Compared to existing literature, our study hybridized GAM with LSTM and xAI to help fill the gap of interpretable and transparent modeling of multiple air pollution. Furthermore, the integration of interpretable and causality into time-series model is a relevant contribution in the context of explainable AI for environmental data monitoring and analysis. In spite of LSTM techniques, GAM provides a way forward when interpretability matters as well as accuracy of prediction. Furthermore, GAM is less data hungry as compared to LSTM, which requires large volumes of data for model training.</p>
</sec>
</sec>
<sec sec-type="materials|methods" id="sec6">
<label>3</label>
<title>Materials and methods</title>
<sec id="sec7">
<label>3.1</label>
<title>Proposed method</title>
<p>In this study the objective is to propose a model for predicting multiple air pollutant concentration. The method is based on generalized additive model (GAM) and deep learning time-series models. While the time-series deep learning models can capture both nonlinear relationships and temporal dependencies, the GAM provides an initial layer that captures the nonlinear relationship in the features and the target. The aim is to improve the accuracy of the predictive model. The proposed method consists of an input layer, data preprocessing, and training Deep learning time-series model (e.g., Long short-term memory (LSTM)) layer, training a GAM layer (using deep learning predictions with features), model evaluation, predictions, and post-hoc explanation (using LIME to interpret GAM predictions). <xref ref-type="fig" rid="fig2">Figure 2</xref> depicts the proposed method for this study. Integrating these approaches helps capture both temporal dynamics and their interpretable relationship between features.</p>
<fig position="float" id="fig2">
<label>Figure 2</label>
<caption>
<p>Proposed model.</p>
</caption>
<graphic xlink:href="frai-08-1620019-g002.tif" mimetype="image" mime-subtype="tiff">
<alt-text content-type="machine-generated">Flowchart illustrating a predictive model for air quality. The process starts with input from an air station in Hantam, Karoo, including air pollutants and meteorological data. The data is normalized, sequenced, and processed through a Long Short-Term Memory (LSTM) model. Predictions are made in the GAM layer and evaluated using LIME. The causal model equation is provided, resulting in predictions denoted as "gamma."</alt-text>
</graphic>
</fig>
</sec>
<sec id="sec8">
<label>3.2</label>
<title>Phases of the proposed model</title>
<p>Phases of the proposed model can be expressed as follows:</p>
<sec id="sec9">
<label>3.2.1</label>
<title>Dataset</title>
<p>This study leveraged the South African Air Quality Information System (SAAQIS) platform for recent air quality data and reports. Air pollutant data from the Northern Cape National Air Quality Indicator (NAQI) ambient monitoring network from the Hantam (Karoo) station was utilized, focusing largely on the February 2024 pollutant data, which has statistical information such as average, minimum (min) and maximum (max) range for 8-h running average. Statistical information on other features was leveraged from the February 2021 report (that is, CO and WS) and February 2023 (that is, O<sub>3</sub>) to augment the February 2024 statistical information. Based on this information, a dataset was synthesized for the city of Kimberley, which contained meteorological and air pollutant concentrations, thereby addressing the data limitation gap. <xref ref-type="fig" rid="fig3">Figure 3</xref> is a map highlighting the location of Hantam and Kimberley, this map was obtained using Python library.</p>
<fig position="float" id="fig3">
<label>Figure 3</label>
<caption>
<p>Map of South Africa showing location of Hantam and Kimberley.</p>
</caption>
<graphic xlink:href="frai-08-1620019-g003.tif" mimetype="image" mime-subtype="tiff">
<alt-text content-type="machine-generated">Map of South Africa showing Kimberley and Hantam marked with red dots. Latitude and longitude lines are indicated. Kimberley is northeast of Hantam. Ocean is visible to the southeast.</alt-text>
</graphic>
</fig>
</sec>
<sec id="sec10">
<label>3.2.2</label>
<title>Input layer</title>
<p>The synthesized dataset was generated using a random sampling method from a normal distribution, which is bounded by the statistical information like min/max values for each environmental variable and pollutant data from Hantam (Karoo) air monitoring station in Northern Cape Province in the Republic of South Africa. Data was loaded as input into the model for data preparation. The data consists of PM<sub>2.5</sub>, PM<sub>10</sub>, CO, O<sub>3</sub>, SO<sub>2</sub>, NO<sub>2</sub>, NO<sub>x</sub>, NO, WS, AT, RH and SR.</p>
<p>Having loaded the data, it is cleansed through data interpolation, then it is normalized and the LSTM sequence is created. Afterwards, it is split into training and test, then loaded into the LSTM model. Data normalization was achieved using the <italic>MinMaxScaler</italic> method. There were 6,210 instances with 12 features. After normalization, the time sequence is created using the dataset, target and time-step, which is expressed by <xref ref-type="disp-formula" rid="EQ1">Equation (1)</xref>:</p>
<disp-formula id="EQ1">
<label>(1)</label>
<mml:math id="M1">
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">creat</mml:mtext>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mtext mathvariant="italic">sequence</mml:mtext>
</mml:msub>
<mml:mo stretchy="true">(</mml:mo>
<mml:mtext mathvariant="italic">dataset</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mtext mathvariant="italic">target</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mtext mathvariant="italic">timestep</mml:mtext>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</disp-formula>
<p>Where <italic>x</italic> represents the features and <italic>y</italic> is the target pollutant, dataset consists of the air pollutants and the target represents what was being predicted. In this regard, the time-step and the features are input into the deep learning time-series models.</p>
</sec>
<sec id="sec11">
<label>3.2.3</label>
<title>Deep learning time-series models</title>
<p>The deep learning models are used to capture the temporal dependencies in the air pollutant concentrations and meteorological variables. The time-series deep learning models considered are LSTM, BiLSTM, GRU, BiGRU, 1DCNN and Transformer. The input features into this layer are of PM<sub>2.5</sub>, PM<sub>10</sub>, CO, O<sub>3</sub>, SO<sub>2</sub>, NO<sub>2</sub>, NO<sub>x</sub>, NO, WS, AT, RH and SR. These single models are hybridized with the GAM model to provide a hybrid model for the prediction of CO<sub>2</sub> concentration. These deep learning (DL) models are trained on the original input dataset, and the trained model is used for prediction. DL model is expressed in <xref ref-type="disp-formula" rid="EQ2 EQ3 EQ4">Equations (2&#x2013;4)</xref>.</p>
<disp-formula id="EQ2">
<label>(2)</label>
<mml:math id="M2">
<mml:mi mathvariant="italic">LST</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">model</mml:mtext>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">Sequential</mml:mtext>
<mml:mo>_</mml:mo>
<mml:mtext mathvariant="italic">model</mml:mtext>
<mml:mo stretchy="true">(</mml:mo>
<mml:mtext mathvariant="italic">input</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mtext mathvariant="italic">parameters</mml:mtext>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</disp-formula>
<disp-formula id="EQ3">
<label>(3)</label>
<mml:math id="M3">
<mml:mi mathvariant="italic">LST</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">model</mml:mtext>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">LST</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">model</mml:mtext>
</mml:msub>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mtext mathvariant="italic">train</mml:mtext>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mtext mathvariant="italic">train</mml:mtext>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</disp-formula>
<disp-formula id="EQ4">
<label>(4)</label>
<mml:math id="M4">
<mml:mi mathvariant="italic">LST</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">predict</mml:mtext>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">LST</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">model</mml:mtext>
</mml:msub>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mtext mathvariant="italic">test</mml:mtext>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</disp-formula>
<p>Where <inline-formula>
<mml:math id="M5">
<mml:mi mathvariant="italic">LST</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">model</mml:mtext>
</mml:msub>
</mml:math>
</inline-formula> represents the LSTM model and <inline-formula>
<mml:math id="M6">
<mml:mtext mathvariant="italic">Sequential</mml:mtext>
<mml:mo>_</mml:mo>
<mml:mtext mathvariant="italic">model</mml:mtext>
</mml:math>
</inline-formula>() represents a deep learning library with input and parameters.</p>
</sec>
<sec id="sec12">
<label>3.2.4</label>
<title>Generalized additive model layer</title>
<p>After training the deep learning model to make the predictions, the GAM was used as a post-processing approach to model the relationship between the predictions and actual data, thus allowing for model interpretability and refinement of the predictions. Thus, the generalized additive model is flexible for modeling nonlinear relationships between predictors and the target pollutant. The GAM could be generally expressed in <xref ref-type="disp-formula" rid="EQ5">Equations (5</xref>, <xref ref-type="disp-formula" rid="EQ6">6)</xref>:</p>
<disp-formula id="EQ5">
<label>(5)</label>
<mml:math id="M7">
<mml:mi>y</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>&#x03B2;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi>&#x03B5;</mml:mi>
</mml:math>
</disp-formula>
<p>Thus,</p>
<disp-formula id="EQ6">
<label>(6)</label>
<mml:math id="M8">
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>&#x03B2;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:munderover>
<mml:mo movablelimits="false">&#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:mi>f</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>&#x03B5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:math>
</disp-formula>
<p>Where <italic>y</italic> is the predicted air pollutant, <inline-formula>
<mml:math id="M9">
<mml:mi>f</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</inline-formula> is the nonlinear function (<italic>f<sub>1</sub>,&#x2026;,f<sub>n</sub></italic> are the smooth functions representing the effect of each predictor like <italic>x<sub>1</sub>, x<sub>2</sub>,&#x2026;,x<sub>n</sub></italic>), <italic>&#x03B2;<sub>0</sub></italic> is the intercept term, and epsilon (<italic>&#x03F5;</italic>) is the error term.</p>
<p>The generalized additive model has a smoothing function that explains each feature&#x2019;s relation with the target pollutant. For instance, features such as PM<sub>2.5</sub>, PM<sub>10</sub>, SO<sub>2</sub>, O<sub>3</sub>, NO<sub>2</sub>, NOx, WS, AT, RH and SR are the independent variables whereas the target pollutant like NO concentration is the dependent variable which could be explained with GAM in <xref ref-type="disp-formula" rid="EQ7">Equation (7)</xref>.</p>
<disp-formula id="EQ7">
<label>(7)</label>
<mml:math id="M10">
<mml:mtable columnalign="left" displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">NO</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>&#x03B2;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mn>2.5</mml:mn>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mn>10</mml:mn>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>S</mml:mi>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>5</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>N</mml:mi>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>6</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">NOx</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>7</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">WS</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>8</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">RH</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>9</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">AT</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>10</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">SR</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo>&#x2208;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
<p>Again, to predict SO<sub>2</sub>, the GAM is expressed by <xref ref-type="disp-formula" rid="EQ8">Equation (8)</xref>:</p>
<disp-formula id="EQ8">
<label>(8)</label>
<mml:math id="M11">
<mml:mtable columnalign="left" displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi>S</mml:mi>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>&#x03B2;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mn>2.5</mml:mn>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mn>10</mml:mn>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi mathvariant="italic">NO</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>5</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>N</mml:mi>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>6</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">NO</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>7</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">WS</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>8</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">RH</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>9</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">AT</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>10</mml:mn>
</mml:msub>
<mml:mspace width="0em"/>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">SR</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo>&#x2208;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
<p>Furthermore, the remaining air pollutant concentrations (PM<sub>2.5</sub>, PM<sub>10</sub>, O<sub>3</sub>, NO<sub>2</sub>, NO<sub>x</sub>) are predicted subsequently to understand the correlation between air pollutant features and a target pollutant. The integration of the LSTM model with GAM was achieved using dataframe, expressed as <xref ref-type="disp-formula" rid="EQ9">Equation (9)</xref>:</p>
<disp-formula id="EQ9">
<label>(9)</label>
<mml:math id="M12">
<mml:mi mathvariant="italic">GA</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">datafram</mml:mtext>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mtext mathvariant="italic">test</mml:mtext>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="italic">LST</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">predict</mml:mtext>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</disp-formula>
<p>Thus, <inline-formula>
<mml:math id="M13">
<mml:mi mathvariant="italic">LST</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">predict</mml:mtext>
</mml:msub>
</mml:math>
</inline-formula> represent the predictions from the LSTM model and <inline-formula>
<mml:math id="M14">
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mtext mathvariant="italic">test</mml:mtext>
</mml:msub>
</mml:math>
</inline-formula> is the test dataset, <inline-formula>
<mml:math id="M15">
<mml:mi mathvariant="italic">GA</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">datafram</mml:mtext>
</mml:msub>
</mml:math>
</inline-formula>is the dataframe. Generally, the LSTM-GAM model is expressed by <xref ref-type="disp-formula" rid="EQ10">Equation (10)</xref>:</p>
<disp-formula id="EQ10">
<label>(10)</label>
<mml:math id="M16">
<mml:mi mathvariant="italic">GA</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">LSTM</mml:mtext>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>GLM</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:mtable columnalign="left" displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">GA</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">datafram</mml:mtext>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mtext mathvariant="italic">train</mml:mtext>
</mml:msub>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>&#x03B5;</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</disp-formula>
<p>Where <inline-formula>
<mml:math id="M17">
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</inline-formula> etc. represent the feature matrix of the training set, <inline-formula>
<mml:math id="M18">
<mml:mi>&#x03B5;</mml:mi>
</mml:math>
</inline-formula> represents the error term, GLM () is the function to implement the generalized additive model which is important from GLM library, and <inline-formula>
<mml:math id="M19">
<mml:mi mathvariant="italic">GA</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">datafram</mml:mtext>
</mml:msub>
</mml:math>
</inline-formula> represents the target air pollutant that is the intercept &#x03B2;<sub>0</sub>. <xref ref-type="disp-formula" rid="EQ11">Equation (11)</xref> was used to fit the model, and <xref ref-type="disp-formula" rid="EQ12">Equation (12)</xref> was used for prediction.</p>
<disp-formula id="EQ11">
<label>(11)</label>
<mml:math id="M20">
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">GAM</mml:mi>
<mml:mo>_</mml:mo>
<mml:mtext mathvariant="italic">predict</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">GA</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">LSTM</mml:mtext>
</mml:msub>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">fit</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</disp-formula>
<disp-formula id="EQ12">
<label>(12)</label>
<mml:math id="M21">
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">GA</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">final</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">GAM</mml:mi>
<mml:mo>_</mml:mo>
<mml:mtext mathvariant="italic">predict</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
<mml:mtext mathvariant="italic">predict</mml:mtext>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</disp-formula>
<p>Where <inline-formula>
<mml:math id="M22">
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">GA</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">final</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> represents the final prediction from the LSTM-GAM. The residual or error term <inline-formula>
<mml:math id="M23">
<mml:mi>&#x03B5;</mml:mi>
</mml:math>
</inline-formula> was normally distributed using the Gaussian function. The <inline-formula>
<mml:math id="M24">
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">GA</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">final</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>model was used by the LIME model for interpretation, which is expressed as <xref ref-type="disp-formula" rid="EQ13">Equation (13)</xref>.</p>
<disp-formula id="EQ13">
<label>(13)</label>
<mml:math id="M25">
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mtext mathvariant="italic">LIME</mml:mtext>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">GA</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">final</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</disp-formula>
<p>Where <inline-formula>
<mml:math id="M26">
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mtext mathvariant="italic">LIME</mml:mtext>
</mml:msub>
</mml:math>
</inline-formula>represents the LIME explainer, <inline-formula>
<mml:math id="M27">
<mml:mi>f</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">GA</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">final</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</inline-formula> is the function that explains the final predictions to display the output for visualization and causal inference analysis.</p>
</sec>
<sec id="sec13">
<label>3.2.5</label>
<title>Model evaluation metrics</title>
<p>The models were evaluated with mean squared error (MSE), root mean squared error (RMSE) and mean absolute error (MAE). The MSE is expressed in <xref ref-type="disp-formula" rid="EQ14">Equation (14)</xref>.</p>
<disp-formula id="EQ14">
<label>(14)</label>
<mml:math id="M28">
<mml:mi>MSE</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>N</mml:mi>
</mml:mfrac>
<mml:munderover>
<mml:mo movablelimits="false">&#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="true">(</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">&#x00AF;</mml:mo>
</mml:mover>
<mml:mo stretchy="true">)</mml:mo>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:math>
</disp-formula>
<p>Where <inline-formula>
<mml:math id="M29">
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo stretchy="true">&#x00AF;</mml:mo>
</mml:mover>
</mml:math>
</inline-formula> is the predicted value from the model,<inline-formula>
<mml:math id="M30">
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:math>
</inline-formula> is the actual value of the target pollutant. The interpretation is that a lower MSE value means a better model, and a higher MSE suggest the model is worse. MSE equal to zero means the model&#x2019;s prediction is perfect. The RMSE is expressed in <xref ref-type="disp-formula" rid="EQ15">Equation (15)</xref>.</p>
<disp-formula id="EQ15">
<label>(15)</label>
<mml:math id="M31">
<mml:mtext>RMSE</mml:mtext>
<mml:mo>=</mml:mo>
<mml:msqrt>
<mml:mi mathvariant="italic">MSE</mml:mi>
</mml:msqrt>
</mml:math>
</disp-formula>
<p>The MAE is expressed by <xref ref-type="disp-formula" rid="EQ16">Equation (16)</xref>.</p>
<disp-formula id="EQ16">
<label>(16)</label>
<mml:math id="M32">
<mml:mi>MAE</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>N</mml:mi>
</mml:mfrac>
<mml:munderover>
<mml:mo movablelimits="false">&#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 stretchy="true">(</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">&#x00AF;</mml:mo>
</mml:mover>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</disp-formula>
<p>Where <inline-formula>
<mml:math id="M33">
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo stretchy="true">&#x00AF;</mml:mo>
</mml:mover>
</mml:math>
</inline-formula> is the predicted value of the target pollutant, <inline-formula>
<mml:math id="M34">
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:math>
</inline-formula> is the actual value of the target pollutant, and N represents the number of data points.</p>
<p>One of the key methods to evaluate a model is the differences between the actual value and prediction, which should be lower to suggest better prediction, that is, the predicted variable has a value closer to the observed value (<xref ref-type="bibr" rid="ref54">Wattal and Singh, 2021</xref>). <xref ref-type="bibr" rid="ref50">Tian et al. (2023)</xref> indicates that when large volumes of data are fed into time-series models for a long-range prediction, their performance is challenged, thus, it is imperative to understand how the model performs to suggest future enhancements.</p>
</sec>
<sec id="sec14">
<label>3.2.6</label>
<title>Post-hoc explanation</title>
<p>Post-hoc explanation explains a decision or prediction of a model. The goal is to interpret the inner workings or the output of a complex model in a simple, human-understandable manner, like linear regression. Thus, it explains how to understand the reason models make certain decisions using an M-day time-step of previous data. These explanations are needed to increase transparency, ensure fairness, improve trust, and satisfy regulatory. In this study, LIME was used to explain the contribution or correlation of each feature in the final prediction. Thus, feature importance and their weighted values are displayed for interpretation. In this regard, to explain the prediction <inline-formula>
<mml:math id="M35">
<mml:mi>f</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</inline-formula> to a complex model <inline-formula>
<mml:math id="M36">
<mml:mi>f</mml:mi>
</mml:math>
</inline-formula> at each point <inline-formula>
<mml:math id="M37">
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:math>
</inline-formula>, the simple linear regression for LIME can be mathematically expressed to approximate <inline-formula>
<mml:math id="M38">
<mml:mi>f</mml:mi>
</mml:math>
</inline-formula> to an interpretable model <inline-formula>
<mml:math id="M39">
<mml:mi>g</mml:mi>
</mml:math>
</inline-formula> within the local neighboring <inline-formula>
<mml:math id="M40">
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:math>
</inline-formula> variables by <xref ref-type="disp-formula" rid="EQ17">Equation (17)</xref>.</p>
<disp-formula id="EQ17">
<label>(17)</label>
<mml:math id="M41">
<mml:mi mathvariant="normal">g</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="normal">x</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo>arg</mml:mo>
<mml:munder>
<mml:mo>min</mml:mo>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mi>L</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x03C0;</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi>&#x03B4;</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</disp-formula>
<p>Where the components <inline-formula>
<mml:math id="M42">
<mml:mi>f</mml:mi>
</mml:math>
</inline-formula>is the complex model, <inline-formula>
<mml:math id="M43">
<mml:mi>g</mml:mi>
</mml:math>
</inline-formula> is the interpretable model (that is the linear regression); <inline-formula>
<mml:math id="M44">
<mml:mi>L</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x03C0;</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</inline-formula> represent the local loss function which measure how well <inline-formula>
<mml:math id="M45">
<mml:mi>g</mml:mi>
</mml:math>
</inline-formula> can approximate <inline-formula>
<mml:math id="M46">
<mml:mi>f</mml:mi>
</mml:math>
</inline-formula> in the neighboring variables <inline-formula>
<mml:math id="M47">
<mml:mi>x</mml:mi>
</mml:math>
</inline-formula>; <inline-formula>
<mml:math id="M48">
<mml:msub>
<mml:mi>&#x03C0;</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>z</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</inline-formula> explains how close sampled points <inline-formula>
<mml:math id="M49">
<mml:mi>z</mml:mi>
</mml:math>
</inline-formula> is to the original point <inline-formula>
<mml:math id="M50">
<mml:mi>x</mml:mi>
</mml:math>
</inline-formula>; and <inline-formula>
<mml:math id="M51">
<mml:mi>&#x03B4;</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</inline-formula> is the complexity penalty weight to ensure a simple model. <xref ref-type="disp-formula" rid="EQ18">Equations (18</xref>&#x2013;<xref ref-type="disp-formula" rid="EQ20">20)</xref> represents the mathematical expression.</p>
<disp-formula id="EQ18">
<label>(18)</label>
<mml:math id="M52">
<mml:mi>f</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">LST</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mtext mathvariant="italic">prediction</mml:mtext>
</mml:msub>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</disp-formula>
<disp-formula id="EQ19">
<label>(19)</label>
<mml:math id="M53">
<mml:mi>g</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:munderover>
<mml:mo movablelimits="false">&#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:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:math>
</disp-formula>
<disp-formula id="EQ20">
<label>(20)</label>
<mml:math id="M54">
<mml:msub>
<mml:mi>&#x03C0;</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>exp</mml:mo>
<mml:mo stretchy="true">(</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>D</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>&#x2032;</mml:mo>
<mml:mo stretchy="true">)</mml:mo>
</mml:mrow>
<mml:msup>
<mml:mi>&#x03C3;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mfrac>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</disp-formula>
<p>Thus, kernel function computes <italic>D</italic>, which is the distance between <inline-formula>
<mml:math id="M55">
<mml:mi>x</mml:mi>
<mml:mspace width="0.25em"/>
</mml:math>
</inline-formula>and <inline-formula>
<mml:math id="M56">
<mml:mi>x</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:math>
</inline-formula>; variance <inline-formula>
<mml:math id="M57">
<mml:mi>&#x03C3;</mml:mi>
</mml:math>
</inline-formula> between <inline-formula>
<mml:math id="M58">
<mml:mi>x</mml:mi>
<mml:mspace width="0.25em"/>
</mml:math>
</inline-formula>and <inline-formula>
<mml:math id="M59">
<mml:mi>x</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:math>
</inline-formula>; <italic>n</italic> is the number of features in the matrix; <inline-formula>
<mml:math id="M60">
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:math>
</inline-formula>is the baseline intercept where the coefficients <inline-formula>
<mml:math id="M61">
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:math>
</inline-formula> are the relative importance of each feature.</p>
</sec>
<sec id="sec15">
<label>3.2.7</label>
<title>Causal inference analysis</title>
<p>The causal inference model was leveraged to understand the effect or impact of target air pollutants on predictor pollutants. In this regard, LIME helps to display the features according to their relative importance. The most relevant feature has a higher weighted value, which is then mapped to the target air pollutant using the causal inference model to understand the impact. The other less relevant features are included in the causal inference model as confounding variables (common causes) for a comprehensive mapping. Thus, the causal inference model <inline-formula>
<mml:math id="M62">
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mtext mathvariant="italic">model</mml:mtext>
</mml:msub>
<mml:mspace width="0.25em"/>
</mml:math>
</inline-formula>can be expressed by <xref ref-type="disp-formula" rid="EQ21">Equation (21)</xref>:</p>
<disp-formula id="EQ21">
<label>(21)</label>
<mml:math id="M63">
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mtext mathvariant="italic">model</mml:mtext>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">CausalModel</mml:mtext>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi mathvariant="italic">cv</mml:mi>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</disp-formula>
<p>Where <italic>d</italic> represents dataset, <italic>T</italic> is the treatment (target pollutant, e.g., <inline-formula>
<mml:math id="M64">
<mml:mi>S</mml:mi>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:math>
</inline-formula>), <italic>y</italic> is the outcome (e.g., <inline-formula>
<mml:math id="M65">
<mml:msub>
<mml:mi mathvariant="italic">NO</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
</mml:math>
</inline-formula>), and <inline-formula>
<mml:math id="M66">
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi mathvariant="italic">cv</mml:mi>
</mml:msub>
</mml:math>
</inline-formula> is the common causes, where <inline-formula>
<mml:math id="M67">
<mml:msub>
<mml:mi mathvariant="normal">C</mml:mi>
<mml:mi>cv</mml:mi>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mo stretchy="true">[</mml:mo>
<mml:mspace width="0.25em"/>
<mml:mi>N</mml:mi>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="italic">NO</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mn>2.5</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mn>10</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mtext mathvariant="italic">WSpeed</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="italic">AT</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="italic">RH</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="italic">SR</mml:mi>
<mml:mo stretchy="true">]</mml:mo>
</mml:math>
</inline-formula>.</p>
<p>The causal effect is estimated using <xref ref-type="disp-formula" rid="EQ22">Equation (22)</xref>:</p>
<disp-formula id="EQ22">
<label>(22)</label>
<mml:math id="M68">
<mml:mi>Y</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi>&#x03BC;</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">&#x03B3;T</mml:mi>
<mml:mo>+</mml:mo>
<mml:munderover>
<mml:mo movablelimits="false">&#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:msub>
<mml:mi>&#x03B2;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mo>&#x2208;</mml:mo>
</mml:math>
</disp-formula>
<p>Where <inline-formula>
<mml:math id="M69">
<mml:mi>&#x03B3;</mml:mi>
</mml:math>
</inline-formula> is the approximated or estimated causal effect of <italic>T</italic> on <italic>Y,</italic> <inline-formula>
<mml:math id="M70">
<mml:msub>
<mml:mi>&#x03B2;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:math>
</inline-formula>is the effect of the confounders<inline-formula>
<mml:math id="M71">
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:math>
</inline-formula>, <inline-formula>
<mml:math id="M72">
<mml:mo>&#x2208;</mml:mo>
</mml:math>
</inline-formula> is the noise (that is, random error term), <inline-formula>
<mml:math id="M73">
<mml:mi>&#x03BC;</mml:mi>
</mml:math>
</inline-formula> is the intercept. The terms are <inline-formula>
<mml:math id="M74">
<mml:mi>&#x03BC;</mml:mi>
</mml:math>
</inline-formula> intercept term, causal effect treatment term is <inline-formula>
<mml:math id="M75">
<mml:mi mathvariant="italic">&#x03B3;T</mml:mi>
</mml:math>
</inline-formula>, and <inline-formula>
<mml:math id="M76">
<mml:munderover>
<mml:mo movablelimits="false">&#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:msub>
<mml:mi>&#x03B2;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:math>
</inline-formula> is the effect of confounder terms, and error term is <inline-formula>
<mml:math id="M77">
<mml:mo>&#x2208;</mml:mo>
<mml:mo>.</mml:mo>
</mml:math>
</inline-formula> For each observation y and predicted y, the error term <inline-formula>
<mml:math id="M78">
<mml:mo>&#x2208;</mml:mo>
</mml:math>
</inline-formula> is expressed by <inline-formula>
<mml:math id="M79">
<mml:msub>
<mml:mo>&#x2208;</mml:mo>
<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:mi>Y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:math>
</inline-formula></p>
</sec>
</sec>
<sec id="sec16">
<label>3.3</label>
<title>Model parameter description</title>
<p><xref ref-type="table" rid="tab2">Table 2</xref> presents the parameter description of the proposed model. The proposed and comparative models were implemented in Python 3.10 due to its programming flexibility, using an Intel Core i3 processor. The relevant deep learning libraries were imported to develop the model. Dropout and regularization was used to avoid overfitting in the deep learning models. Our model training procedure focused on 80% data for training and 20% for testing, while the use of 80% allows sufficient data use for training.</p>
<table-wrap position="float" id="tab2">
<label>Table 2</label>
<caption>
<p>Hyperparameter tuning.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top">Model</th>
<th align="left" valign="top">Parameter value</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top" rowspan="2">LSTM</td>
<td align="left" valign="top">Hidden units&#x202F;=&#x202F;50</td>
</tr>
<tr>
<td align="left" valign="top">Batch size&#x202F;=&#x202F;32</td>
</tr>
<tr>
<td align="left" valign="top">Dense</td>
<td align="left" valign="top">1</td>
</tr>
<tr>
<td align="left" valign="top">Optimizer</td>
<td align="left" valign="top">&#x201C;adam&#x201D;</td>
</tr>
<tr>
<td align="left" valign="top">Epoch</td>
<td align="left" valign="top">100</td>
</tr>
<tr>
<td align="left" valign="top">Activation function</td>
<td align="left" valign="top">&#x201C;relu&#x201D;</td>
</tr>
<tr>
<td align="left" valign="top">Error (<inline-formula>
<mml:math id="M80">
<mml:mi>&#x03B5;</mml:mi>
</mml:math>
</inline-formula>)</td>
<td align="left" valign="top">Gaussian function</td>
</tr>
<tr>
<td align="left" valign="top">M-day time-step</td>
<td align="left" valign="top">M: 5, 10</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The parameter values followed the study by <xref ref-type="bibr" rid="ref58">Zhang et al. (2023)</xref> on hidden units and epoch, and <xref ref-type="bibr" rid="ref32">Hwang et al. (2024)</xref> on batch size. Optimizer used is &#x201C;adam&#x201D; with relu as the activation function of our proposed model. Furthermore, the random seed control strategy utilized numpy among others which ensures model&#x2019;s reproducibility during models execution. After completing the 100 epoch, the final model was selected based on the best validation performance.</p>
</sec>
</sec>
<sec sec-type="results" id="sec17">
<label>4</label>
<title>Results</title>
<sec id="sec18">
<label>4.1</label>
<title>Models&#x2019; prediction over M-day time-step</title>
<p>During the experiment, M-day time-step was considered where M represents the number of previous days data used to train the deep learning time-series models. <xref ref-type="table" rid="tab3">Table 3</xref> presents the evaluation results of the models prediction with 5-day time-step previous data.</p>
<table-wrap position="float" id="tab3">
<label>Table 3</label>
<caption>
<p>Air pollutants predictions with 5-day time-step.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top" rowspan="2">Model</th>
<th align="center" valign="top" colspan="3">Predict NO<sub>x</sub></th>
<th align="center" valign="top" colspan="3">Predict CO</th>
<th align="center" valign="top" colspan="3">PredictPM<sub>2.5</sub></th>
<th align="center" valign="top" colspan="3">Predict PM<sub>10</sub></th>
</tr>
<tr>
<th align="center" valign="top">MSE</th>
<th align="center" valign="top">RMSE</th>
<th align="center" valign="top">MAE</th>
<th align="center" valign="top">MSE</th>
<th align="center" valign="top">RMSE</th>
<th align="center" valign="top">MAE</th>
<th align="center" valign="top">MSE</th>
<th align="center" valign="top">RMSE</th>
<th align="center" valign="top">MAE</th>
<th align="center" valign="top">MSE</th>
<th align="center" valign="top">RMSE</th>
<th align="center" valign="top">MAE</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top">LSTM</td>
<td align="center" valign="top"><bold>0.340</bold></td>
<td align="center" valign="top"><bold>0.583</bold></td>
<td align="center" valign="top"><bold>0.736</bold></td>
<td align="center" valign="top">0.0296</td>
<td align="center" valign="top">0.1722</td>
<td align="center" valign="top">0.1354</td>
<td align="center" valign="top">1.152</td>
<td align="center" valign="bottom">1.0733</td>
<td align="center" valign="top">0.923</td>
<td align="center" valign="top">1.571</td>
<td align="center" valign="bottom">1.2534</td>
<td align="center" valign="top">0.964</td>
</tr>
<tr>
<td align="left" valign="top">BiLSTM</td>
<td align="center" valign="top">1.625</td>
<td align="center" valign="top">1.275</td>
<td align="center" valign="top">0.807</td>
<td align="center" valign="top">0.0366</td>
<td align="center" valign="top">0.1914</td>
<td align="center" valign="top">0.1513</td>
<td align="center" valign="top">1.441</td>
<td align="center" valign="bottom">1.2004</td>
<td align="center" valign="top">0.123</td>
<td align="center" valign="top">1.818</td>
<td align="center" valign="bottom">1.3483</td>
<td align="center" valign="top">1.036</td>
</tr>
<tr>
<td align="left" valign="top">BiGRU</td>
<td align="center" valign="top">1.487</td>
<td align="center" valign="top">1.219</td>
<td align="center" valign="top">0.762</td>
<td align="center" valign="top">0.0372</td>
<td align="center" valign="top">0.1929</td>
<td align="center" valign="top">0.1521</td>
<td align="center" valign="top">1.424</td>
<td align="center" valign="bottom">1.1933</td>
<td align="center" valign="top">1.078</td>
<td align="center" valign="top">1.923</td>
<td align="center" valign="bottom">1.3867</td>
<td align="center" valign="top">1.073</td>
</tr>
<tr>
<td align="left" valign="top">1DCNN</td>
<td align="center" valign="top">1.402</td>
<td align="center" valign="top">1.184</td>
<td align="center" valign="top">0.694</td>
<td align="center" valign="top">0.0253</td>
<td align="center" valign="top">0.1589</td>
<td align="center" valign="top">0.1287</td>
<td align="center" valign="top">0.960</td>
<td align="center" valign="bottom">0.9798</td>
<td align="center" valign="top">0.658</td>
<td align="center" valign="top">1.297</td>
<td align="center" valign="bottom">1.1389</td>
<td align="center" valign="top">0.923</td>
</tr>
<tr>
<td align="left" valign="top">LSTM-GAM-xAI</td>
<td align="center" valign="top">0.990</td>
<td align="center" valign="top">0.995</td>
<td align="center" valign="top">0.549</td>
<td align="center" valign="top"><bold>0.0184</bold></td>
<td align="center" valign="top"><bold>0.1355</bold></td>
<td align="center" valign="top"><bold>0.1100</bold></td>
<td align="center" valign="top"><bold>0.703</bold></td>
<td align="center" valign="bottom"><bold>0.8385</bold></td>
<td align="center" valign="top"><bold>0.502</bold></td>
<td align="center" valign="top"><bold>0.954</bold></td>
<td align="center" valign="bottom"><bold>0.9767</bold></td>
<td align="center" valign="top"><bold>0.794</bold></td>
</tr>
<tr>
<td align="left" valign="top">Random Forest</td>
<td align="center" valign="top">1.394</td>
<td align="center" valign="bottom">1.181</td>
<td align="center" valign="top">0.673</td>
<td align="center" valign="top">0.1376</td>
<td align="center" valign="top">0.3,709</td>
<td align="center" valign="top">0.1130</td>
<td align="center" valign="top">0.783</td>
<td align="center" valign="bottom">0.8849</td>
<td align="center" valign="top">0.538</td>
<td align="center" valign="top">1.004</td>
<td align="center" valign="bottom">1.0020</td>
<td align="center" valign="top">0.841</td>
</tr>
<tr>
<td align="left" valign="top">XGBoost</td>
<td align="center" valign="top">1.502</td>
<td align="center" valign="bottom">1.226</td>
<td align="center" valign="top">0.680</td>
<td align="center" valign="top">0.0218</td>
<td align="center" valign="top">0.1477</td>
<td align="center" valign="top">0.1173</td>
<td align="center" valign="top">0.910</td>
<td align="center" valign="bottom">0.9539</td>
<td align="center" valign="top">0.603</td>
<td align="center" valign="top">1.147</td>
<td align="center" valign="bottom">1.0710</td>
<td align="center" valign="top">0.887</td>
</tr>
</tbody>
</table>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top" rowspan="2">Model</th>
<th align="center" valign="top" colspan="3">Predict O<sub>3</sub></th>
<th align="center" valign="top" colspan="3">Predict SO<sub>2</sub></th>
<th align="center" valign="top" colspan="3">Predict NO</th>
<th align="center" valign="top" colspan="3">Predict NO<sub>2</sub></th>
</tr>
<tr>
<th align="center" valign="top">MSE</th>
<th align="center" valign="top">RMSE</th>
<th align="center" valign="top">MAE</th>
<th align="center" valign="top">MSE</th>
<th align="center" valign="top">RMSE</th>
<th align="center" valign="top">MAE</th>
<th align="center" valign="top">MSE</th>
<th align="center" valign="top">RMSE</th>
<th align="center" valign="top">MAE</th>
<th align="center" valign="top">MSE</th>
<th align="center" valign="top">RMSE</th>
<th align="center" valign="top">MAE</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top">LSTM</td>
<td align="center" valign="top">379.349</td>
<td align="center" valign="bottom">19.4769</td>
<td align="center" valign="top">16.632</td>
<td align="center" valign="top">0.607</td>
<td align="center" valign="bottom">0.7791</td>
<td align="center" valign="top">0.862</td>
<td align="center" valign="top">1.217</td>
<td align="center" valign="bottom">1.1032</td>
<td align="center" valign="top">0.886</td>
<td align="center" valign="top">0.886</td>
<td align="center" valign="bottom">0.9413</td>
<td align="center" valign="top">0.732</td>
</tr>
<tr>
<td align="left" valign="top">BiLSTM</td>
<td align="center" valign="top">420.932</td>
<td align="center" valign="bottom">20.5166</td>
<td align="center" valign="top">18.569</td>
<td align="center" valign="top">0.806</td>
<td align="center" valign="bottom">0.8978</td>
<td align="center" valign="top">0.965</td>
<td align="center" valign="top">1.639</td>
<td align="center" valign="bottom">1.2802</td>
<td align="center" valign="top">0.999</td>
<td align="center" valign="top">0.980</td>
<td align="center" valign="bottom">0.9899</td>
<td align="center" valign="top">0.764</td>
</tr>
<tr>
<td align="left" valign="top">BiGRU</td>
<td align="center" valign="top">414.866</td>
<td align="center" valign="bottom">20.3683</td>
<td align="center" valign="top">18.231</td>
<td align="center" valign="top">0.796</td>
<td align="center" valign="bottom">0.8922</td>
<td align="center" valign="top">0.969</td>
<td align="center" valign="top">1.581</td>
<td align="center" valign="bottom">1.2574</td>
<td align="center" valign="top">1.009</td>
<td align="center" valign="top">0.999</td>
<td align="center" valign="bottom">0.9995</td>
<td align="center" valign="top">0.770</td>
</tr>
<tr>
<td align="left" valign="top">1DCNN</td>
<td align="center" valign="top">289.449</td>
<td align="center" valign="bottom">17.0132</td>
<td align="center" valign="top">16.324</td>
<td align="center" valign="top">0.621</td>
<td align="center" valign="bottom">0.7880</td>
<td align="center" valign="top">0.832</td>
<td align="center" valign="top">1.101</td>
<td align="center" valign="bottom">1.0493</td>
<td align="center" valign="top">0.8534</td>
<td align="center" valign="top">1.002</td>
<td align="center" valign="bottom">1.0010</td>
<td align="center" valign="top">0.923</td>
</tr>
<tr>
<td align="left" valign="top">LSTM-GAM-xAI</td>
<td align="center" valign="top"><bold>198.787</bold></td>
<td align="center" valign="bottom"><bold>14.0992</bold></td>
<td align="center" valign="top"><bold>12.732</bold></td>
<td align="center" valign="top"><bold>0.416</bold></td>
<td align="center" valign="bottom"><bold>0.6450</bold></td>
<td align="center" valign="top"><bold>0.501</bold></td>
<td align="center" valign="top"><bold>0.786</bold></td>
<td align="center" valign="bottom"><bold>0.8866</bold></td>
<td align="center" valign="top"><bold>0.9051</bold></td>
<td align="center" valign="top"><bold>0.658</bold></td>
<td align="center" valign="bottom"><bold>0.8112</bold></td>
<td align="center" valign="top"><bold>0.432</bold></td>
</tr>
<tr>
<td align="left" valign="top">Random Forest</td>
<td align="center" valign="top">219.103</td>
<td align="center" valign="bottom">14.8021</td>
<td align="center" valign="top">13.342</td>
<td align="center" valign="top">0.427</td>
<td align="center" valign="bottom">0.6535</td>
<td align="center" valign="top">0.556</td>
<td align="center" valign="top">0.867</td>
<td align="center" valign="bottom">0.9311</td>
<td align="center" valign="top">0.754</td>
<td align="center" valign="top">0.653</td>
<td align="center" valign="bottom">0.8081</td>
<td align="center" valign="top">0.489</td>
</tr>
<tr>
<td align="left" valign="top">XGBoost</td>
<td align="center" valign="top">245.787</td>
<td align="center" valign="bottom">15.6776</td>
<td align="center" valign="top">14.321</td>
<td align="center" valign="top">0.497</td>
<td align="center" valign="bottom">0.7050</td>
<td align="center" valign="top">0.801</td>
<td align="center" valign="top">0.990</td>
<td align="center" valign="bottom">0.9950</td>
<td align="center" valign="top">0.8041</td>
<td align="center" valign="top">0.759</td>
<td align="center" valign="bottom">0.8712</td>
<td align="center" valign="top">0.472</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p>&#x002A;Bold values indicate the best metric values for the respective model.</p>
</table-wrap-foot>
</table-wrap>
<p><xref ref-type="table" rid="tab3">Table 3</xref> shows the 5-day time-step previous of the models to predict air pollutants such as NO<sub>x</sub>, PM<sub>2.5</sub>, PM<sub>10</sub>, O<sub>3</sub>, SO<sub>2</sub>, CO, NO and NO<sub>2</sub>. These predictions help in analyzing the predictive performance of each model and comparing it with the proposed model. For instance, in predicting the NOx, it was observed that LSTM, BiLSTM, BiGRU, IDCNN yielded the following MSE values 0.340, 1.625, 1.487, 1.402 and 0.990, respectively, for the deep learning time series models. It emerged that LSTM generated the lowest MSE value of 0.340, while the proposed LSTM-GAM-xAI guaranteed the second least MSE value of 0.990. Comparatively, LSTM-GAM-xAI performed better as it consistently maintained the lowest MSE value in all the air pollutant predictions using the deep learning time-series models.</p>
<p>Again, the two most common machine learning models, such as Random Forest (RF) and XGBoost were also compared with the comparative models. It can be observed that the MSE value for RF is 1.394, and XGBoost guaranteed 1.502. Based on these findings, the proposed LSTM-GAM-xAI guaranteed the least MSE value than the comparative ML models for predicting NO<sub>2</sub> concentration. Furthermore, the proposed LSTM-GAM-xAI guaranteed the best performance across all the air pollutant predictions.</p>
<p><xref ref-type="table" rid="tab4">Table 4</xref> shows the statistical information of the LSTM-GAM-xAI model on SO2 predictions for 5-day time-step. It can be observed that, there were 1,237 observation on features. Again, NO<sub>2</sub> had coefficient (coef) of 0.0170 with a constant term <inline-formula>
<mml:math id="M81">
<mml:msub>
<mml:mi>&#x03B2;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:math>
</inline-formula> of 1.3411, standard error (std err) of 0.178. Solar radiation had coef of 2.35&#x00D7;10<sup>&#x2212;05</sup> which is the least among the coefficient values.</p>
<table-wrap position="float" id="tab4">
<label>Table 4</label>
<caption>
<p>LSTM-GAM-xAI statistical information on SO<sub>2</sub> concentration with 5-day time-step.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top">Variable</th>
<th align="center" valign="top">Coef</th>
<th align="center" valign="top">Std. err.</th>
<th align="center" valign="top">z</th>
<th align="center" valign="top"><italic>p</italic>&#x202F;&#x003E;&#x202F;|z|</th>
<th align="center" valign="top">[0.025</th>
<th align="center" valign="top">0.975]</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top">Const</td>
<td align="center" valign="top">1.341</td>
<td align="center" valign="top">0.178</td>
<td align="center" valign="top">7.519</td>
<td align="center" valign="top">0.000</td>
<td align="center" valign="top">0.992</td>
<td align="center" valign="top">1.691</td>
</tr>
<tr>
<td align="left" valign="top">NO<sub>2</sub></td>
<td align="center" valign="top">0.0170</td>
<td align="center" valign="top">0.023</td>
<td align="center" valign="top">0.748</td>
<td align="center" valign="top">0.455</td>
<td align="center" valign="top">&#x2212;0.028</td>
<td align="center" valign="top">0.062</td>
</tr>
<tr>
<td align="left" valign="top">NO</td>
<td align="center" valign="top">0.0002</td>
<td align="center" valign="top">0.021</td>
<td align="center" valign="top">0.011</td>
<td align="center" valign="top">0.991</td>
<td align="center" valign="top">&#x2212;0.041</td>
<td align="center" valign="top">0.041</td>
</tr>
<tr>
<td align="left" valign="top">NOx</td>
<td align="center" valign="top">0.0133</td>
<td align="center" valign="top">0.019</td>
<td align="center" valign="top">0.718</td>
<td align="center" valign="top">0.473</td>
<td align="center" valign="top">&#x2212;0.023</td>
<td align="center" valign="top">0.050</td>
</tr>
<tr>
<td align="left" valign="top">CO</td>
<td align="center" valign="top">&#x2212;0.0926</td>
<td align="center" valign="top">0.136</td>
<td align="center" valign="top">&#x2212;0.680</td>
<td align="center" valign="top">0.496</td>
<td align="center" valign="top">&#x2212;0.359</td>
<td align="center" valign="top">0.174</td>
</tr>
<tr>
<td align="left" valign="top">O<sub>3</sub></td>
<td align="center" valign="top">0.0015</td>
<td align="center" valign="top">0.001</td>
<td align="center" valign="top">1.155</td>
<td align="center" valign="top">0.248</td>
<td align="center" valign="top">&#x2212;0.001</td>
<td align="center" valign="top">0.004</td>
</tr>
<tr>
<td align="left" valign="top">PM<sub>2.5</sub></td>
<td align="center" valign="top">0.0137</td>
<td align="center" valign="top">0.022</td>
<td align="center" valign="top">0.625</td>
<td align="center" valign="top">0.532</td>
<td align="center" valign="top">&#x2212;0.029</td>
<td align="center" valign="top">0.057</td>
</tr>
<tr>
<td align="left" valign="top">PM<sub>10</sub></td>
<td align="center" valign="top">0.0007</td>
<td align="center" valign="top">0.019</td>
<td align="center" valign="top">0.036</td>
<td align="center" valign="top">0.971</td>
<td align="center" valign="top">&#x2212;0.036</td>
<td align="center" valign="top">0.038</td>
</tr>
<tr>
<td align="left" valign="top">WS</td>
<td align="center" valign="top">&#x2212;0.0001</td>
<td align="center" valign="top">0.002</td>
<td align="center" valign="top">&#x2212;0.061</td>
<td align="center" valign="top">0.951</td>
<td align="center" valign="top">&#x2212;0.003</td>
<td align="center" valign="top">0.003</td>
</tr>
<tr>
<td align="left" valign="top">AT</td>
<td align="center" valign="top">0.0020</td>
<td align="center" valign="top">0.004</td>
<td align="center" valign="top">0.502</td>
<td align="center" valign="top">0.616</td>
<td align="center" valign="top">&#x2212;0.006</td>
<td align="center" valign="top">0.010</td>
</tr>
<tr>
<td align="left" valign="top">RH</td>
<td align="center" valign="top">0.0022</td>
<td align="center" valign="top">0.001</td>
<td align="center" valign="top">1.770</td>
<td align="center" valign="top">0.077</td>
<td align="center" valign="top">&#x2212;0.000</td>
<td align="center" valign="top">0.005</td>
</tr>
<tr>
<td align="left" valign="top">SR</td>
<td align="center" valign="top">2.35&#x00D7;10<sup>&#x2212;05</sup></td>
<td align="center" valign="top">9.74&#x00D7;10<sup>&#x2212;05</sup></td>
<td align="center" valign="top">0.241</td>
<td align="center" valign="top">0.809</td>
<td align="center" valign="top">&#x2212;0.00</td>
<td align="center" valign="top">0.000</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Based on <xref ref-type="table" rid="tab4">Table 4</xref>, it can be observed that in predicting the target pollutant (SO2), the constant term <inline-formula>
<mml:math id="M82">
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>&#x03B2;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>1.3411</mml:mn>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>,</mml:mo>
</mml:math>
</inline-formula> NO<sub>2</sub> contributed coef of &#x2212;0.0170, NO (0.0002), NOx (0.0133), CO (&#x2212;0.0925), O<sub>3</sub> (0.0015), PM<sub>2.5</sub> (0.0137), PM<sub>10</sub> (0.0007), WS (&#x2212;0.0001), AT (0.0020), RH (0.0022) and SR (2.35e-05). Thus, the general expression can be deduced within the confidence interval (0.025 and 0.975) as follows:</p>
<disp-formula>
<mml:math id="M83">
<mml:mtable columnalign="left" displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi>S</mml:mi>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>&#x03B2;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>0.0170</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi mathvariant="italic">NO</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>0.0002</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi mathvariant="italic">NO</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>0.0133</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi mathvariant="italic">NOx</mml:mi>
<mml:mo>&#x2212;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0.0925</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi mathvariant="italic">CO</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>0.0015</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi>O</mml:mi>
<mml:mn>3</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>0.0137</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi mathvariant="italic">PM</mml:mi>
<mml:mn>2.5</mml:mn>
<mml:mo>+</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0.0007</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi mathvariant="italic">PM</mml:mi>
<mml:mn>10</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>0.0001</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi mathvariant="italic">WS</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>0.0020</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi mathvariant="italic">AT</mml:mi>
<mml:mo>+</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0.0022</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi mathvariant="italic">RH</mml:mi>
<mml:mo>+</mml:mo>
<mml:mo stretchy="true">(</mml:mo>
<mml:mn>2.35</mml:mn>
<mml:mi>e</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>05</mml:mn>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi mathvariant="italic">SR</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
<p>Furthermore, <xref ref-type="supplementary-material" rid="SM1">Appendix A1</xref> present the detailed statistical information of air pollutants on the 5-day time-step of the previous data considered in this study.</p>
<p>Having experimented the 5-day time-step, further experiment was conducted using 10-day time-step previous data which aimed to further asses the performance of the models. <xref ref-type="table" rid="tab5">Table 5</xref> shows the 10-day time-step prediction of air pollutants.</p>
<table-wrap position="float" id="tab5">
<label>Table 5</label>
<caption>
<p>Air pollutants predictions with 10-day time-step.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top" rowspan="2">Model</th>
<th align="center" valign="top" colspan="3">Predict NO<sub>x</sub></th>
<th align="center" valign="top" colspan="3">Predict CO</th>
<th align="center" valign="top" colspan="3">PredictPM<sub>2.5</sub></th>
<th align="center" valign="top" colspan="3">Predict PM<sub>10</sub></th>
</tr>
<tr>
<th align="center" valign="top">MSE</th>
<th align="center" valign="top">RMSE</th>
<th align="center" valign="top">MAE</th>
<th align="center" valign="top">MSE</th>
<th align="center" valign="top">RMSE</th>
<th align="center" valign="top">MAE</th>
<th align="center" valign="top">MSE</th>
<th align="center" valign="top">RMSE</th>
<th align="center" valign="top">MAE</th>
<th align="center" valign="top">MSE</th>
<th align="center" valign="top">RMSE</th>
<th align="center" valign="top">MAE</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top">LSTM</td>
<td align="center" valign="top">1.426</td>
<td align="center" valign="top">1.1942</td>
<td align="center" valign="top">0.711</td>
<td align="center" valign="top">0.0303</td>
<td align="center" valign="top">0.1739</td>
<td align="center" valign="top">0.1330</td>
<td align="center" valign="top">0.976</td>
<td align="center" valign="top">0.988</td>
<td align="center" valign="top">0.531</td>
<td align="center" valign="top">1.139</td>
<td align="center" valign="top">1.0672</td>
<td align="center" valign="top">0.957</td>
</tr>
<tr>
<td align="left" valign="top">BiLSTM</td>
<td align="center" valign="top">1.432</td>
<td align="center" valign="top">1.1967</td>
<td align="center" valign="top">0.762</td>
<td align="center" valign="top">0.0341</td>
<td align="center" valign="top">0.1846</td>
<td align="center" valign="top">0.1412</td>
<td align="center" valign="top">1.171</td>
<td align="center" valign="top">1.082</td>
<td align="center" valign="top">0.602</td>
<td align="center" valign="top">1.350</td>
<td align="center" valign="top">1.1619</td>
<td align="center" valign="top">1.058</td>
</tr>
<tr>
<td align="left" valign="top">BiGRU</td>
<td align="center" valign="top">1.493</td>
<td align="center" valign="top">1.2219</td>
<td align="center" valign="top">0.782</td>
<td align="center" valign="top">0.0339</td>
<td align="center" valign="top">0.1842</td>
<td align="center" valign="top">0.1419</td>
<td align="center" valign="top">1.304</td>
<td align="center" valign="top">1.142</td>
<td align="center" valign="top">0.621</td>
<td align="center" valign="top">1.471</td>
<td align="center" valign="top">1.2128</td>
<td align="center" valign="top">1.114</td>
</tr>
<tr>
<td align="left" valign="top">1DCNN</td>
<td align="center" valign="top">1.577</td>
<td align="center" valign="top">1.2558</td>
<td align="center" valign="top">0.802</td>
<td align="center" valign="top">0.0281</td>
<td align="center" valign="top">0.1677</td>
<td align="center" valign="top">0.1316</td>
<td align="center" valign="top">0.964</td>
<td align="center" valign="top">0.982</td>
<td align="center" valign="top">0.562</td>
<td align="center" valign="top">1.039</td>
<td align="center" valign="top">1.0193</td>
<td align="center" valign="top">0.980</td>
</tr>
<tr>
<td align="left" valign="top">LSTM-GAM-xAI</td>
<td align="center" valign="top"><bold>0.960</bold></td>
<td align="center" valign="top">0.9798</td>
<td align="center" valign="top">0.509</td>
<td align="center" valign="top">0.0300</td>
<td align="center" valign="top">0.1731</td>
<td align="center" valign="top">0.1350</td>
<td align="center" valign="top"><bold>0.725</bold></td>
<td align="center" valign="top">0.852</td>
<td align="center" valign="top">0.421</td>
<td align="center" valign="top"><bold>0.756</bold></td>
<td align="center" valign="top">0.8695</td>
<td align="center" valign="top">0.608</td>
</tr>
<tr>
<td align="left" valign="top">Random Forest</td>
<td align="center" valign="top">1.394</td>
<td align="center" valign="top">1.1807</td>
<td align="center" valign="top">0.673</td>
<td align="center" valign="top"><bold>0.0189</bold></td>
<td align="center" valign="top">0.1376</td>
<td align="center" valign="top">0.1130</td>
<td align="center" valign="top">0.754</td>
<td align="center" valign="top">0.868</td>
<td align="center" valign="top">0.523</td>
<td align="center" valign="top">0.814</td>
<td align="center" valign="top">0.9022</td>
<td align="center" valign="top">0.841</td>
</tr>
<tr>
<td align="left" valign="top">XGBoost</td>
<td align="center" valign="top">1.502</td>
<td align="center" valign="top">1.2256</td>
<td align="center" valign="top">0.680</td>
<td align="center" valign="top">0.0218</td>
<td align="center" valign="top">0.1477</td>
<td align="center" valign="top">0.1173</td>
<td align="center" valign="top">0.871</td>
<td align="center" valign="top">0.933</td>
<td align="center" valign="top">0.612</td>
<td align="center" valign="top">0.928</td>
<td align="center" valign="top">0.9633</td>
<td align="center" valign="top">0.887</td>
</tr>
</tbody>
</table>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top" rowspan="2">Model</th>
<th align="center" valign="top" colspan="3">Predict O<sub>3</sub></th>
<th align="center" valign="top" colspan="3">Predict SO<sub>2</sub></th>
<th align="center" valign="top" colspan="3">Predict NO</th>
<th align="center" valign="top" colspan="3">Predict NO<sub>2</sub></th>
</tr>
<tr>
<th align="center" valign="top">MSE</th>
<th align="center" valign="top">RMSE</th>
<th align="center" valign="top">MAE</th>
<th align="center" valign="top">MSE</th>
<th align="center" valign="top">RMSE</th>
<th align="center" valign="top">MAE</th>
<th align="center" valign="top">MSE</th>
<th align="center" valign="top">RMSE</th>
<th align="center" valign="top">MAE</th>
<th align="center" valign="top">MSE</th>
<th align="center" valign="top">RMSE</th>
<th align="center" valign="top">MAE</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top">LSTM</td>
<td align="center" valign="top">1.314</td>
<td align="center" valign="top">1.1463</td>
<td align="center" valign="top">0.716</td>
<td align="center" valign="top">1.161</td>
<td align="center" valign="top">1.0775</td>
<td align="center" valign="top">0.732</td>
<td align="center" valign="top">1.365</td>
<td align="center" valign="top">1.168</td>
<td align="center" valign="top">0.830</td>
<td align="center" valign="top">0.897</td>
<td align="center" valign="top">0.947</td>
<td align="center" valign="top">0.526</td>
</tr>
<tr>
<td align="left" valign="top">BiLSTM</td>
<td align="center" valign="top">1.630</td>
<td align="center" valign="top">1.2767</td>
<td align="center" valign="top">0.796</td>
<td align="center" valign="top">1.355</td>
<td align="center" valign="top">1.1640</td>
<td align="center" valign="top">0.731</td>
<td align="center" valign="top">1,503</td>
<td align="center" valign="top">38.769</td>
<td align="center" valign="top">35.841</td>
<td align="center" valign="top">0.934</td>
<td align="center" valign="top">0.966</td>
<td align="center" valign="top">0.600</td>
</tr>
<tr>
<td align="left" valign="top">BiGRU</td>
<td align="center" valign="top">1.627</td>
<td align="center" valign="top">1.2755</td>
<td align="center" valign="top">0.792</td>
<td align="center" valign="top">1.485</td>
<td align="center" valign="top">1.2186</td>
<td align="center" valign="top">0.801</td>
<td align="center" valign="top">1.610</td>
<td align="center" valign="top">1.269</td>
<td align="center" valign="top">1.002</td>
<td align="center" valign="top">0.917</td>
<td align="center" valign="top">0.958</td>
<td align="center" valign="top">0.600</td>
</tr>
<tr>
<td align="left" valign="top">1DCNN</td>
<td align="center" valign="top">1.327</td>
<td align="center" valign="top">1.1520</td>
<td align="center" valign="top">0.631</td>
<td align="center" valign="top">1.090</td>
<td align="center" valign="top">1.0440</td>
<td align="center" valign="top">0.720</td>
<td align="center" valign="top">1.252</td>
<td align="center" valign="top">1.119</td>
<td align="center" valign="top">0.923</td>
<td align="center" valign="top">1.031</td>
<td align="center" valign="top">1.015</td>
<td align="center" valign="top">0.673</td>
</tr>
<tr>
<td align="left" valign="top">LSTM-GAM-xAI</td>
<td align="center" valign="top"><bold>0.930</bold></td>
<td align="center" valign="top">0.9644</td>
<td align="center" valign="top">0.531</td>
<td align="center" valign="top"><bold>0.782</bold></td>
<td align="center" valign="top">0.8843</td>
<td align="center" valign="top">0.602</td>
<td align="center" valign="top"><bold>0.784</bold></td>
<td align="center" valign="top">0.885</td>
<td align="center" valign="top">0.632</td>
<td align="center" valign="top"><bold>0.660</bold></td>
<td align="center" valign="top">0.812</td>
<td align="center" valign="top">0.377</td>
</tr>
<tr>
<td align="left" valign="top">Random Forest</td>
<td align="center" valign="top">1.032</td>
<td align="center" valign="top">1.0159</td>
<td align="center" valign="top">0.732</td>
<td align="center" valign="top">0.845</td>
<td align="center" valign="top">0.9192</td>
<td align="center" valign="top">0.712</td>
<td align="center" valign="top">0.867</td>
<td align="center" valign="top">0.931</td>
<td align="center" valign="top">0.754</td>
<td align="center" valign="top">0.653</td>
<td align="center" valign="top">0.808</td>
<td align="center" valign="top">0.452</td>
</tr>
<tr>
<td align="left" valign="top">XGBoost</td>
<td align="center" valign="top">1.182</td>
<td align="center" valign="top">1.0872</td>
<td align="center" valign="top">0.830</td>
<td align="center" valign="top">1.003</td>
<td align="center" valign="top">1.0015</td>
<td align="center" valign="top">0.753</td>
<td align="center" valign="top">0.990</td>
<td align="center" valign="top">0.995</td>
<td align="center" valign="top">0.789</td>
<td align="center" valign="top">0.759</td>
<td align="center" valign="top">0.8712</td>
<td align="center" valign="top">0.471</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p>&#x002A;Bold values indicate the best metric values for the respective model.</p>
</table-wrap-foot>
</table-wrap>
<p>Based on <xref ref-type="table" rid="tab5">Table 5</xref>, it is generally observed that LSTM-GAM-xAI has the best MSE values, in terms of the least MSE value, across the entire prediction of air pollutants. These results suggest that the proposed model performs well given the 10-day time-step previous data.</p>
<p><xref ref-type="table" rid="tab6">Table 6</xref> shows the LSTM-GAM-xAI model&#x2019;s statistical information for the 10-day time-step (e.g., for SO<sub>2</sub> concentration), whereas further statistical information for the remaining air pollutants are shown in <xref ref-type="supplementary-material" rid="SM1">Appendix A2</xref>. The statistical information includes <italic>coef, std err, z</italic> and <italic>p-value</italic>. Where <italic>coef</italic> represents the estimated coefficient for the predictor pollutants, which is the effect size of how much the outcome changes with an increase in a feature when other features are constant; whereas <italic>std</italic> err is the standard error, <italic>z</italic>-score and <italic>p</italic>-value.</p>
<table-wrap position="float" id="tab6">
<label>Table 6</label>
<caption>
<p>LSTM-GAM-xAI statistical information on SO<sub>2</sub> concentration with 10-day time-step.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top">Variable</th>
<th align="center" valign="top">Coef</th>
<th align="center" valign="top">Std. err.</th>
<th align="center" valign="top">z</th>
<th align="center" valign="top"><italic>p</italic>&#x202F;&#x003E;&#x202F;|z|</th>
<th align="center" valign="top">[0.025</th>
<th align="center" valign="top">0.975]</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top">NO<sub>2</sub></td>
<td align="center" valign="top">&#x2212;0.0178</td>
<td align="center" valign="top">0.043</td>
<td align="center" valign="top">&#x2212;0.408</td>
<td align="center" valign="top">0.684</td>
<td align="center" valign="top">&#x2212;0.101</td>
<td align="center" valign="top">0.067</td>
</tr>
<tr>
<td align="left" valign="top">NO</td>
<td align="center" valign="top">14.7005</td>
<td align="center" valign="top">94.101</td>
<td align="center" valign="top">0.156</td>
<td align="center" valign="top">0.876</td>
<td align="center" valign="top">&#x2212;169.725</td>
<td align="center" valign="top">199.144</td>
</tr>
<tr>
<td align="left" valign="top">NOx</td>
<td align="center" valign="top">&#x2212;0.0441</td>
<td align="center" valign="top">0.026</td>
<td align="center" valign="top">&#x2212;1.694</td>
<td align="center" valign="top">0.090</td>
<td align="center" valign="top">&#x2212;0.095</td>
<td align="center" valign="top">0.007</td>
</tr>
<tr>
<td align="left" valign="top">CO</td>
<td align="center" valign="top">&#x2212;0.0197</td>
<td align="center" valign="top">0.051</td>
<td align="center" valign="top">&#x2212;0.387</td>
<td align="center" valign="top">0.699</td>
<td align="center" valign="top">&#x2212;0.120</td>
<td align="center" valign="top">0.080</td>
</tr>
<tr>
<td align="left" valign="top">O<sub>3</sub></td>
<td align="center" valign="top">0.0250</td>
<td align="center" valign="top">0.026</td>
<td align="center" valign="top">0.954</td>
<td align="center" valign="top">0.340</td>
<td align="center" valign="top">&#x2212;0.026</td>
<td align="center" valign="top">0.076</td>
</tr>
<tr>
<td align="left" valign="top">PM<sub>2.5</sub></td>
<td align="center" valign="top">&#x2212;0.0452</td>
<td align="center" valign="top">0.030</td>
<td align="center" valign="top">&#x2212;1.522</td>
<td align="center" valign="top">0.128</td>
<td align="center" valign="top">&#x2212;0.103</td>
<td align="center" valign="top">0.013</td>
</tr>
<tr>
<td align="left" valign="top">PM<sub>10</sub></td>
<td align="center" valign="top">&#x2212;0.0442</td>
<td align="center" valign="top">0.029</td>
<td align="center" valign="top">&#x2212;1.516</td>
<td align="center" valign="top">0.129</td>
<td align="center" valign="top">&#x2212;0.101</td>
<td align="center" valign="top">0.013</td>
</tr>
<tr>
<td align="left" valign="top">WS</td>
<td align="center" valign="top">&#x2212;0.0100</td>
<td align="center" valign="top">0.025</td>
<td align="center" valign="top">&#x2212;0.397</td>
<td align="center" valign="top">0.691</td>
<td align="center" valign="top">&#x2212;0.059</td>
<td align="center" valign="top">0.039</td>
</tr>
<tr>
<td align="left" valign="top">AT</td>
<td align="center" valign="top">&#x2212;0.0184</td>
<td align="center" valign="top">0.025</td>
<td align="center" valign="top">&#x2212;0.727</td>
<td align="center" valign="top">0.467</td>
<td align="center" valign="top">&#x2212;0.068</td>
<td align="center" valign="top">0.031</td>
</tr>
<tr>
<td align="left" valign="top">RH</td>
<td align="center" valign="top">0.0317</td>
<td align="center" valign="top">0.025</td>
<td align="center" valign="top">1.251</td>
<td align="center" valign="top">0.211</td>
<td align="center" valign="top">&#x2212;0.018</td>
<td align="center" valign="top">0.081</td>
</tr>
<tr>
<td align="left" valign="top">SR</td>
<td align="center" valign="top">0.0521</td>
<td align="center" valign="top">0.025</td>
<td align="center" valign="top">2.060</td>
<td align="center" valign="top">0.039</td>
<td align="center" valign="top">&#x2212;0.003</td>
<td align="center" valign="top">0.102</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Based on <xref ref-type="table" rid="tab6">Table 6</xref>, it can be observed that in predicting only SO<sub>2</sub> concentration, NO<sub>2</sub> had <italic>coef</italic> value of &#x2212;0.0175, NO (14.7095), NOx (&#x2212;0.0441), CO (&#x2212;0.0197), O<sub>3</sub> (0.0250), PM<sub>2.5</sub> (&#x2212;0.0452), PM<sub>10</sub> (&#x2212;0.0442), WS (&#x2212;0.0100), AT (&#x2212;0.0184), RH (0.0317) and SR (0.0521). In view of this, a general expression can be deduced within the confidence interval (0.025 and 0.975) as follows:</p>
<disp-formula>
<mml:math id="M84">
<mml:mtable columnalign="left" displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi>S</mml:mi>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>&#x03B2;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>0.0175</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi>N</mml:mi>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mn>14.7095</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi mathvariant="italic">NO</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>0.0441</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:msub>
<mml:mi mathvariant="italic">NO</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0.0250</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>0.0452</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mn>2.5</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>0.0442</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mn>10</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0.0100</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi mathvariant="italic">WS</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>0.0184</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi mathvariant="italic">AT</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>0.0317</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi mathvariant="italic">RH</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>0.0521</mml:mn>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi mathvariant="italic">SR</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</sec>
<sec id="sec19">
<label>4.2</label>
<title>Explainable AI: LIME analysis on LSTM-GAM-xAI model</title>
<p>This section shows the LIME analysis results for only SO<sub>2</sub> concentration within the 5-day time-step and 10-day time-step. While the detail LIME analysis results for the remaining air pollutants are presented in <xref ref-type="supplementary-material" rid="SM1">Appendices A3, A4</xref>.</p>
<p><xref ref-type="fig" rid="fig4">Figure 4</xref> shows the LIME analysis results of LSTM-GAM-xAI model focusing on SO<sub>2</sub> concentration within the 5-day time-step. It can be observed that the predicted value lies between min (1.41) and max (1.89) as shown on the horizontal bar, where the intermediate value of 1.63 is the predicted value of the LSTM-GAM-xAI model for the specific instance being explained. Furthermore, the vertical line separates the features into positive and negative ranges. In this regard, features that are located on the positive side such as PM<sub>2.5</sub>, CO, AT, and PM<sub>10</sub> were the features pushing the prediction toward a 1.63 value.</p>
<fig position="float" id="fig4">
<label>Figure 4</label>
<caption>
<p>LSTM-GAM-xAI model&#x2019;s LIME explanation of SO<sub>2</sub> concentration with a 5-day time-step.</p>
</caption>
<graphic xlink:href="frai-08-1620019-g004.tif" mimetype="image" mime-subtype="tiff">
<alt-text content-type="machine-generated">Bar plot showing predicted values ranging from 1.41 to 1.89, centered at 1.63. Factors influencing predictions include NO2, NOx, relative humidity, PM2.5, CO, ozone, solar radiation, wind speed, NO, ambient temperature, and PM10, categorized as negative or positive influences.</alt-text>
</graphic>
</fig>
<p>Further LIME results of SO<sub>2</sub> concentration in presented in <xref ref-type="table" rid="tab7">Table 7</xref>, focusing on 5-day time-step previous using the LSTM-GAM-xAI model.</p>
<table-wrap position="float" id="tab7">
<label>Table 7</label>
<caption>
<p>LSTM-GAM-xAI model&#x2019;s LIME explanation for SO<sub>2</sub> prediction with 5-day time-step.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top">Features</th>
<th align="center" valign="top">Importance</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top">NO<sub>2</sub> <inline-formula>
<mml:math id="M85">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>3.84</td>
<td align="center" valign="top">&#x2212;0.10027</td>
</tr>
<tr>
<td align="left" valign="top">NOx<inline-formula>
<mml:math id="M86">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>4.29</td>
<td align="center" valign="top">&#x2212;0.08765</td>
</tr>
<tr>
<td align="left" valign="top">RH <inline-formula>
<mml:math id="M87">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>38.48</td>
<td align="center" valign="top">&#x2212;0.05968</td>
</tr>
<tr>
<td align="left" valign="top">PM<sub>2.5</sub>&#x202F;&#x003E;&#x202F;1.95</td>
<td align="center" valign="top">0.02334</td>
</tr>
<tr>
<td align="left" valign="top">CO <inline-formula>
<mml:math id="M88">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>0.00</td>
<td align="center" valign="top">0.01678</td>
</tr>
<tr>
<td align="left" valign="top">9.42&#x202F;&#x003C;&#x202F;O<sub>3</sub> <inline-formula>
<mml:math id="M89">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>20.20</td>
<td align="center" valign="top">&#x2212;0.01244</td>
</tr>
<tr>
<td align="left" valign="top">21.33&#x202F;&#x003C;&#x202F;AT <inline-formula>
<mml:math id="M90">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>24.39</td>
<td align="center" valign="top">0.00563</td>
</tr>
<tr>
<td align="left" valign="top">206.77&#x202F;&#x003C;&#x202F;SR <inline-formula>
<mml:math id="M91">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>343.39</td>
<td align="center" valign="top">&#x2212;0.00426</td>
</tr>
<tr>
<td align="left" valign="top">21.01&#x202F;&#x003C;&#x202F;WS <inline-formula>
<mml:math id="M92">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>28.57</td>
<td align="center" valign="top">&#x2212;0.00263</td>
</tr>
<tr>
<td align="left" valign="top">NO <inline-formula>
<mml:math id="M93">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>0.97</td>
<td align="center" valign="top">&#x2212;0.00214</td>
</tr>
<tr>
<td align="left" valign="top">PM<sub>10</sub>&#x202F;&#x003E;&#x202F;2.32</td>
<td align="center" valign="top">0.00189</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>From <xref ref-type="table" rid="tab7">Table 7</xref>, it can be observed that some features recorded negative importance value, such as NO<sub>2</sub>, NOx, RH, etc. Other pollutants recorded positive importance value, such as PM<sub>2.5</sub>, CO, AT and PM<sub>10</sub> in their respective threshold values. &#x201C;NO<sub>2</sub> <inline-formula>
<mml:math id="M94">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula> 3.84&#x201D; had an importance value of &#x2212;0.100271, and &#x201C;PM<sub>2.5</sub>&#x202F;&#x003E;&#x202F;1.95&#x201D; had an importance value of 0.0233407. Where, &#x201C;PM<sub>2.5</sub>&#x202F;&#x003E;&#x202F;1.95&#x201D; means the PM<sub>2.5</sub> had a threshold value of 1.95 and it contributes positively, a value of 0.0233407, to the prediction of SO<sub>2</sub>. Thus, higher PM<sub>2.5</sub> increases the prediction of SO<sub>2,</sub> and though the effect is positive, it is relatively weak compared to NO<sub>2</sub> influence on SO<sub>2</sub>. Thus, it can be indicated that NO<sub>2</sub> contributed negatively in predicting SO<sub>2</sub> and therefore contributed to pulling down the prediction relative to the local mean. On the other hand, PM<sub>2.5</sub> had a value of 0.0233407, which suggests that PM<sub>2.5</sub> contribute positively to the prediction and therefore pushes the prediction up. Comparatively, PM<sub>2.5</sub> contribute a better positive value as compared with CO (0.0167), PM<sub>10</sub> (0.00188). Thus, the simple linear model of LIME can be finally modeled as:</p>
<disp-formula>
<mml:math id="M95">
<mml:mtable columnalign="left" displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>g</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">LIME</mml:mtext>
<mml:mo>_</mml:mo>
<mml:mi>S</mml:mi>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>0.10027</mml:mn>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>N</mml:mi>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>3.84</mml:mn>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>0.088</mml:mn>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi mathvariant="italic">NO</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>4.29</mml:mn>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>&#x2212;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0.060</mml:mn>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">RH</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>38.48</mml:mn>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mn>0.023</mml:mn>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mn>2.5</mml:mn>
</mml:msub>
<mml:mo>&#x003E;</mml:mo>
<mml:mn>1.95</mml:mn>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0.017</mml:mn>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">CO</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>0.00</mml:mn>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>0.012</mml:mn>
<mml:mo stretchy="true">(</mml:mo>
<mml:mn>9.42</mml:mn>
<mml:mo>&#x003C;</mml:mo>
<mml:msub>
<mml:mi>O</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>20.20</mml:mn>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>+</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
<p>In terms of the 10-day time-step to predict SO<sub>2</sub> concentration with the LSTM-GAM-xAI model, the LIME analysis result is presented in <xref ref-type="fig" rid="fig5">Figure 5</xref>. It can be observed that &#x201C;NOx&#x202F;&#x003E;&#x202F;400.71&#x201D; has a feature value approximately &#x2212;0.07, followed by &#x201C;O3<inline-formula>
<mml:math id="M96">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>17.11&#x201D; with a feature value of approx. &#x2212;0.04. These results suggest that while using the 10-day time-step, previous to predict SO<sub>2</sub> concentration NOx with its threshold value (&#x003E;400.71) contributed negatively (&#x2212;0.07) to the prediction of SO<sub>2</sub>. Similarly, O<sub>3</sub> with its threshold (<inline-formula>
<mml:math id="M97">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>17.11) also contributed negatively (&#x2212;0.04) or pulled down the SO<sub>2</sub> concentration. On the other hand, SR ranged between (&#x201C;342.90&#x202F;&#x003C;&#x202F;SR <inline-formula>
<mml:math id="M98">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>343.59&#x201D;) and contributed positively (0.02889) to the prediction of SO<sub>2</sub> concentration. Again, SR was the highest positive feature value among the features recorded during the LIME explanation. Furthermore, the predicted value between the min (&#x2212;1.06) and max (1.58) is 1.58 as indicated on the yellow bar. This suggests that features that contribute to pushing up the SO<sub>2</sub> are SR, WS, CO, and AT. On the other hand, the features that contribute negatively or push down the prediction are NOx, O<sub>3</sub>, NO<sub>2</sub>, PM<sub>10</sub>, RH and PM<sub>2.5</sub>.</p>
<fig position="float" id="fig5">
<label>Figure 5</label>
<caption>
<p>LSTM-GAM-xAI LIME explanation for SO<sub>2</sub> concentration prediction with 10-day time-step.</p>
</caption>
<graphic xlink:href="frai-08-1620019-g005.tif" mimetype="image" mime-subtype="tiff">
<alt-text content-type="machine-generated">Bar chart displaying predicted values between negative and positive factors. Negative factors include NOx, O3, NO2, PM10, relative humidity, PM2.5, and NO. Positive factors include solar radiation, wind speed, CO, and ambient temperature. Predicted value ranges from -1.06 to 1.58.</alt-text>
</graphic>
</fig>
<p>Furthermore, <xref ref-type="table" rid="tab8">Table 8</xref> shows the LSTM-GAM-xAI aspect of LIME explanation showing feature importance values for the air pollutants that contributed in SO<sub>2</sub> concentration with 10-day time-step.</p>
<table-wrap position="float" id="tab8">
<label>Table 8</label>
<caption>
<p>LSTM-GAM-xAI LIME feature importance for SO<sub>2</sub> prediction with 10-day time-step.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top">Feature</th>
<th align="center" valign="top">Importance</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top">NOx&#x202F;&#x003E;&#x202F;400.71</td>
<td align="center" valign="top">&#x2212;0.07384</td>
</tr>
<tr>
<td align="left" valign="top">O<sub>3</sub> <inline-formula>
<mml:math id="M99">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>17.11</td>
<td align="center" valign="top">&#x2212;0.04122</td>
</tr>
<tr>
<td align="left" valign="top">342.90&#x202F;&#x003C;&#x202F;SR <inline-formula>
<mml:math id="M100">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>343.59</td>
<td align="center" valign="top">0.02889</td>
</tr>
<tr>
<td align="left" valign="top">NO<sub>2</sub>&#x202F;&#x003E;&#x202F;0.75</td>
<td align="center" valign="top">&#x2212;0.02486</td>
</tr>
<tr>
<td align="left" valign="top">WS <inline-formula>
<mml:math id="M101">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>242.06</td>
<td align="center" valign="top">0.02117</td>
</tr>
<tr>
<td align="left" valign="top">CO <inline-formula>
<mml:math id="M102">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>0.00</td>
<td align="center" valign="top">0.02113</td>
</tr>
<tr>
<td align="left" valign="top">1.54&#x202F;&#x003C;&#x202F;PM<sub>10</sub> <inline-formula>
<mml:math id="M103">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>2.22</td>
<td align="center" valign="top">&#x2212;0.02086</td>
</tr>
<tr>
<td align="left" valign="top">20.75&#x202F;&#x003C;&#x202F;AT <inline-formula>
<mml:math id="M104">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>21.48</td>
<td align="center" valign="top">0.01126</td>
</tr>
<tr>
<td align="left" valign="top">48.70&#x202F;&#x003C;&#x202F;RH <inline-formula>
<mml:math id="M105">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>49.39</td>
<td align="center" valign="top">&#x2212;0.01061</td>
</tr>
<tr>
<td align="left" valign="top">1.28&#x202F;&#x003C;&#x202F;PM<sub>2.5</sub> <inline-formula>
<mml:math id="M106">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>1.99</td>
<td align="center" valign="top">&#x2212;0.01011</td>
</tr>
<tr>
<td align="left" valign="top">NO <inline-formula>
<mml:math id="M107">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula>0.16</td>
<td align="center" valign="top">0.00000</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="sec20">
<label>4.3</label>
<title>Causal inference model</title>
<p><xref ref-type="table" rid="tab9">Table 9</xref> presents the causal inference model, which explains the effect or impact of the target pollutant on another. These pollutant features are the features with high relative importance considered as the outcome. Again, other features, with less importance values, were considered confounders in the causal inference model. These features were obtained from the LIME explanation and mapped to the target pollutant. <xref ref-type="table" rid="tab9">Table 9</xref> presents the causal inference analysis using the 5-day time-step. The analysis is based on components such as estimated effect, new effect and <italic>p</italic>-value. SO<sub>2</sub>, NO, PM<sub>2.5</sub>, PM<sub>10</sub>, O<sub>3</sub> and NO<sub>2</sub> generated estimated effect as 0.002937, 0.008082, &#x2212;0.004943, &#x2212;0.003184, &#x2212;0.003184 and &#x2212;0.005352, respectively.</p>
<table-wrap position="float" id="tab9">
<label>Table 9</label>
<caption>
<p>Causal inferences analysis with 5-day time-step.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top">Target pollutant</th>
<th align="center" valign="top">Estimated effect</th>
<th align="center" valign="top">New effect</th>
<th align="center" valign="top"><italic>p</italic>-value</th>
<th align="center" valign="top">Outcome</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top">SO<sub>2</sub></td>
<td align="center" valign="top">0.002937</td>
<td align="center" valign="top">0.0029055</td>
<td align="center" valign="top">0.92</td>
<td align="center" valign="top">NO<sub>2</sub></td>
</tr>
<tr>
<td align="left" valign="top">NO</td>
<td align="center" valign="top">0.008082</td>
<td align="center" valign="top">0.0080740</td>
<td align="center" valign="top">0.90</td>
<td align="center" valign="top">NO<sub>x</sub></td>
</tr>
<tr>
<td align="left" valign="top">NO<sub>x</sub></td>
<td align="center" valign="top">&#x2212;0.003280</td>
<td align="center" valign="top">&#x2212;0.0032964</td>
<td align="center" valign="top">0.88</td>
<td align="center" valign="top">NO<sub>2</sub></td>
</tr>
<tr>
<td align="left" valign="top">PM<sub>2.5</sub></td>
<td align="center" valign="top">&#x2212;0.004943</td>
<td align="center" valign="top">&#x2212;0.0049681</td>
<td align="center" valign="top">0.94</td>
<td align="center" valign="top">NO<sub>x</sub></td>
</tr>
<tr>
<td align="left" valign="top">PM<sub>10</sub></td>
<td align="center" valign="top">&#x2212;0.003184</td>
<td align="center" valign="top">&#x2212;0.0031820</td>
<td align="center" valign="top">0.96</td>
<td align="center" valign="top">NO<sub>x</sub></td>
</tr>
<tr>
<td align="left" valign="top">O<sub>3</sub></td>
<td align="center" valign="top">&#x2212;0.003184</td>
<td align="center" valign="top">&#x2212;0.0031741</td>
<td align="center" valign="top">0.89</td>
<td align="center" valign="top">NO<sub>2</sub></td>
</tr>
<tr>
<td align="left" valign="top">CO</td>
<td align="center" valign="top">&#x2212;0.005460</td>
<td align="center" valign="top">&#x2212;0.0054680</td>
<td align="center" valign="top">0.98</td>
<td align="center" valign="top">NO<sub>2</sub></td>
</tr>
<tr>
<td align="left" valign="top">NO<sub>2</sub></td>
<td align="center" valign="top">&#x2212;0.005352</td>
<td align="center" valign="top">&#x2212;0.0053696</td>
<td align="center" valign="top">0.98</td>
<td align="center" valign="top">NO<sub>x</sub></td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec sec-type="discussion" id="sec21">
<label>5</label>
<title>Discussion</title>
<p>The experiment results demonstrate different results to help understand the performance of the models (DL and ML) for the air pollutants prediction for the 5-day and 10-day time-steps. Common air pollutants considered are NOx, PM<sub>2.5</sub>, PM<sub>10</sub>, O<sub>3</sub>, SO<sub>2</sub>, NO and NO<sub>2</sub> with meteorological features. The results indicate that the proposed model demonstrated good performance using the MSE value for 5-day and 10-day time steps. For instance, in predicting SO<sub>2</sub> for the 10-day time-step, the performances are LSTM-GAM-xAI (0.782), LSTM (1.161), BiLSTM (1.355), BiGRU (1.485), 1DCNN (1.090), Random Forest (0.845), and XGBoost (1.003). Again, in predicting SO<sub>2</sub> for 5-day time-step generated the following LSTM-GAM-xAI (0.416), LSTM (0.607), BiLSTM (0.806), BiGRU (0.796), 1DCNN (0.621), Random Forest (0.427), and XGBoost (0.497). These findings suggest that in predicting the hourly concentration level of the air pollutants, the proposed model demonstrated good performance against the comparative models. <xref ref-type="bibr" rid="ref31">Huang et al. (2025)</xref> combine GAM with eXtreme Gradient Boosting (XGBoost) to predict PM<sub>2.5</sub> concentration in Taiwan with SHAP explanation. Furthermore, <xref ref-type="bibr" rid="ref30">He et al. (2023)</xref> estimated NO<sub>2</sub> concentration with GAM combined with XGBoost. <xref ref-type="bibr" rid="ref12">Cheng et al. (2021)</xref> also applied GAM combined with gradient boosting machine (GBM) to determine the relationship between PM<sub>2.5</sub> concentration and environmental factors. In view of this empirical research, GAM has been applied to a machine learning model for air pollutant analysis. Our research also extends the context of research by using the GAM with LSTM and post-hoc explainable artificial intelligence model to provide more explanation on models such as DL and ML models, which are used to predict common air pollutants such as PM<sub>2.5</sub>, PM<sub>10</sub>, SO<sub>2</sub>, O<sub>3</sub>, NO, NOx, NO<sub>2</sub> using different time-steps.</p>
<p>LIME explanation for SO<sub>2</sub> concentration prediction with a 5-day time-step generated &#x201C;NO<sub>2</sub> <inline-formula>
<mml:math id="M108">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula> 3.84&#x201D; with importance value &#x2212;0.10027, &#x201C;NO<sub>x</sub> <inline-formula>
<mml:math id="M109">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula> 4.29&#x201D; with importance value &#x2212;0.08764, &#x201C;RH <inline-formula>
<mml:math id="M110">
<mml:mo>&#x2264;</mml:mo>
</mml:math>
</inline-formula> 38.48&#x201D; with importance value &#x2212;0.05968, etc. (<xref ref-type="table" rid="tab7">Table 7</xref>). Whereas, GAM produced NO<sub>2</sub> with a coefficient (0.0170) followed by NO (0.0002), NOx (0.0133), CO (&#x2212;0.0925), O<sub>3</sub> (0.0015), etc. (<xref ref-type="table" rid="tab4">Table 4</xref>). It can be observed that the explanation from GAM and LIME placed NO<sub>2</sub> on top of the list of contributing factors in the prediction of SO<sub>2</sub> concentration. These results suggest that on one hand, using LIME, NO<sub>2</sub> contributed &#x2212;0.10027 to SO<sub>2</sub> prediction. On the other hand, with GAM explanations, NO<sub>2</sub> contributed 0.0170 to the SO<sub>2</sub> prediction. These results indicate that NO<sub>2</sub> pushed up the SO<sub>2</sub> prediction by approximately 0.02 in GAM, while NO<sub>2</sub> reduced the SO<sub>2</sub> prediction by approximately 0.10 in LIME explanation.</p>
<p>The LIME explanation provided the relevant features for the causal inference analysis. The causal effect generated p-value as SO<sub>2</sub> (0.92), NO (0.90), NOx (0.88), PM<sub>2.5</sub> (0.94), PM<sub>10</sub> (0.96), O<sub>3</sub> (0.89) and NO<sub>2</sub> (0.98) respectively (<xref ref-type="table" rid="tab9">Table 9</xref>). For instance, in predicting NO concentration, the estimated effect was 0.008082, new effect (0.0080740), p-value (0.90) and outcome (NOx), having confounders as PM<sub>2.5</sub>, PM<sub>10</sub>, SO<sub>2</sub>, O<sub>3</sub>, NO, NOx, NO<sub>2,</sub> RH, AT (<xref ref-type="table" rid="tab8">Table 8</xref>). It is imperative to note that having two air pollutants moving together does not necessarily mean that one variable may have caused another air pollutant to occur. Thus, having determined the causal inference of the air pollutants (<xref ref-type="table" rid="tab8">Table 8</xref>), it could be inferred that not every correlation implies causation; however, every causation implies correlation. Therefore, starting with a correlation analysis involves risks in the case of the proposed model. Thus, another explanation could be as a result of random chance, as the variables may appear to be related, but have no true underlying and clear relationships.</p>
<p>The LSTM-GAM-xAI model produced some detailed statistical information such as the coefficient, standard error, <italic>z</italic>-score, <italic>p</italic>-value and confidence interval. Again, number of observations, residual, Pearson Chi-square, etc. (<xref ref-type="table" rid="tab4">Table 4</xref>). The post-hoc explanation model, such as LIME, produced information on features within their threshold, predicted values within a min and max range, and feature values. In view of this, the GAM provides more interpretation than the LIME model. <xref ref-type="bibr" rid="ref34">Kaur et al. (2020)</xref> indicates that GAM is more interpretable than post-hoc explanation models like SHAP (<xref ref-type="bibr" rid="ref34">Kaur et al., 2020</xref>). Thus, our study also goes further to suggest that GAM provides more statistical information compared to LIME. Therefore, by proposing and experimenting with the hybrid LSTM-GAM-xAI model for pollutant prediction, detailed information is provided for human understanding. Thus, irrespective of the M-day time steps, our model adapted to the dataset and provided further information on air pollutant analysis for Kimberley.</p>
<p>Though the causal inference model was applied with methodological rigor, the model&#x2019;s resulting effect estimates (<xref ref-type="table" rid="tab9">Table 9</xref>) produced high <italic>p</italic>-values (e.g., &#x003E;0.8) indicating no statistically significant relationships, therefore any conclusion drawn must be interpreted with caution.</p>
<p>While the performance metrics such as MSE, RMSE and MAE provide useful insight, it also emphasizes the baseline to evaluate the technical accuracy of the proposed model in decision making. The interpretability of the output and feasibility of integrating the model in real-world scenarios are essential considerations in assessing whether the model can inform timely interventions in the real world. Although the proposed model achieved relatively low MSE value generally, as compared to the other models, it however shows promising performance results in different time-steps.</p>
<p>Our research contributes in the context of air pollution prediction a transparent and interpretable model that stakeholders could trust. It is worth noting, that researchers have provided several models in different context. For example, <xref ref-type="bibr" rid="ref59">Zhu et al. (2024)</xref> provided spatio-temporal model based on machine learning for prediction of NO; <xref ref-type="bibr" rid="ref37">Lin et al. (2025)</xref> incorporated LSTM with GAM and Bayesian model for prediction of different air pollutants; while <xref ref-type="bibr" rid="ref25">Goudet et al. (2018)</xref> focused on cause-effect inference with the causal generative neural network. The advantage of our model over the existing models is that, ours provide interpretability through the integration of emerging explainable AI model such as LIME with existing GAM and LSTM, thereby bridging the gap between traditional statistical model and deep learning model such as LSTM in a predictive task during environmental monitoring of air pollutants. Furthermore, our model may serve as the alternative to legacy-based air pollutants prediction systems available at air quality monitoring stations in the Northern Cape Province of the Republic of South Africa.</p>
<p>Our proposed model improves interpretability compared to other deep learning models such as LSTM, because it also considered existing statistical models such as GAM, which provides information on coefficient (<italic>coef</italic>), standard error (<italic>std err</italic>), <italic>z</italic>-score, <italic>p</italic>-value and confidence interval. This information is used by statisticians to understand the behavior of models used in modeling environmental data. Typical LIME or SHAP models lack this information which our model now provides. Therefore, our model provides added value by combining the GAM with post-hoc explanation in terms of transparency and actionable insight for practitioners in environmental monitoring.</p>
</sec>
<sec id="sec22">
<label>6</label>
<title>Methodological limitation</title>
<p>The use of synthetized data based on the measurements from Hantam station for the model evaluation was one of the limitations of this study. As this was due to the lack of air pollutants data for Kimberley. Thus, our research bridges this gap to help evaluate the proposed model&#x2019;s behavior in a data-scarce context. Again, though using data from one source (e.g., Hantam) to another location (that is, Kimberley) could introduce a potential bias due to site-specific meteorological and geographical differences, this concern was addressed by evaluating the models performance against multiple air pollutants.</p>
</sec>
<sec sec-type="conclusions" id="sec23">
<label>7</label>
<title>Conclusion</title>
<p>Air pollutants emission is a global issue as they contribute to global warming and climate-related activities. Human activities like burning fossil fuels contribute to air pollution and climate change. In this study, a deep learning time-series model was proposed that leverages an LSTM model with GAM and offers post-hoc explanation with causal inference analysis of common air pollutants such as PM<sub>2.5</sub>, PM<sub>10</sub>, O<sub>3</sub>, SO<sub>2</sub>, NO<sub>2</sub>, NO, NO<sub>x</sub>. Meteorological factors were also considered as input into the proposed model, in addition to these air pollutants. Random sampling method was adopted to synthesis dataset for the City of Kimberley. The local interpretable model-agnostic explanations, which is an artificial intelligence technique, provides a local interpretation of individual predictions. Different time-step previous data, such as 5-day and 10-day, were considered, and MSE, MAE, RMSE values were used to evaluate the predictions. The results indicate better performance value when compared with comparative models. Thus, the study is beneficial to air monitoring stations as it attempts to present alternate models for air pollutant concentration prediction. By conducting this research, we provide an effective approach to assist with the hybridization of the state-of-the-art deep learning time-series model, which could be used as an alternative to a legacy-based air quality prediction model for the city of Kimberley in the Province of Northern Cape, in the Republic of South Africa. Future research should consider the proposed model as one of the emerging models in air pollutant concentration prediction to further fine-tune the predictions in existing real world models.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="sec24">
<title>Data availability statement</title>
<p>The raw data supporting the conclusions of this article will be made available by the authors, without undue reservation.</p>
</sec>
<sec sec-type="author-contributions" id="sec25">
<title>Author contributions</title>
<p>IA: Writing &#x2013; original draft, Formal analysis, Methodology, Data curation, Conceptualization, Software, Writing &#x2013; review &#x0026; editing. IO: Funding acquisition, Project administration, Validation, Writing &#x2013; review &#x0026; editing, Supervision.</p>
</sec>
<sec sec-type="funding-information" id="sec26">
<title>Funding</title>
<p>The author(s) declare that financial support was received for the research and/or publication of this article. This work is funded by the Centre for Global Change, Sol Plaatje University, with the National Research Foundation (NRF) (number: 136097).</p>
</sec>
<sec sec-type="COI-statement" id="sec27">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="ai-statement" id="sec28">
<title>Generative AI statement</title>
<p>The authors declare that no Gen AI was used in the creation of this manuscript.</p>
</sec>
<sec sec-type="disclaimer" id="sec29">
<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 sec-type="supplementary-material" id="sec30">
<title>Supplementary material</title>
<p>The Supplementary material for this article can be found online at: <ext-link xlink:href="https://www.frontiersin.org/articles/10.3389/frai.2025.1620019/full#supplementary-material" ext-link-type="uri">https://www.frontiersin.org/articles/10.3389/frai.2025.1620019/full#supplementary-material</ext-link></p>
<supplementary-material xlink:href="Data_Sheet_1.docx" id="SM1" mimetype="application/vnd.openxmlformats-officedocument.wordprocessingml.document" xmlns:xlink="http://www.w3.org/1999/xlink"/>
</sec>
<ref-list>
<title>References</title>
<ref id="ref1"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Adamkiewicz</surname> <given-names>&#x0141;.</given-names></name> <name><surname>Maciejewska</surname> <given-names>K.</given-names></name> <name><surname>Rabczenko</surname> <given-names>D.</given-names></name> <name><surname>Drzeniecka-Osiadacz</surname> <given-names>A.</given-names></name></person-group> (<year>2022</year>). <article-title>Ambient particulate air pollution and daily hospital admissions in 31 cities in Poland</article-title>. <source>Atmos.</source> <volume>13</volume>:<fpage>345</fpage>. doi: <pub-id pub-id-type="doi">10.3390/atmos13020345</pub-id></citation></ref>
<ref id="ref2"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Agbehadji</surname> <given-names>I. E.</given-names></name> <name><surname>Obagbuwa</surname> <given-names>I. C.</given-names></name></person-group> (<year>2024</year>). <article-title>Systematic review of machine learning and deep learning techniques for spatiotemporal air quality prediction</article-title>. <source>Atmosphere, MDPI</source> <volume>15</volume>:<fpage>1352</fpage>. doi: <pub-id pub-id-type="doi">10.3390/atmos15111352</pub-id></citation></ref>
<ref id="ref3"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Agbehadji</surname> <given-names>I. E.</given-names></name> <name><surname>Obagbuwa</surname> <given-names>I. C.</given-names></name></person-group> (<year>2025a</year>). <article-title>Mode decomposition bi-directional long short-term memory (BiLSTM) attention mechanism and transformer (AMT) model for ozone (O3) prediction in Johannesburg, South Africa</article-title>. <source>Forecasting</source> <volume>7</volume>, <fpage>1</fpage>&#x2013;<lpage>19</lpage>. doi: <pub-id pub-id-type="doi">10.3390/forecast7020015</pub-id></citation></ref>
<ref id="ref4"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Agbehadji</surname> <given-names>I. E.</given-names></name> <name><surname>Obagbuwa</surname> <given-names>I. C.</given-names></name></person-group> (<year>2025b</year>). <article-title>Integration of explainable artificial intelligence into hybrid long short-term memory and adaptive Kalman filter for sulfur dioxide (SO2) prediction in Kimberley, South Africa</article-title>. <source>Atmos.</source> <volume>16</volume>:<fpage>523</fpage>. doi: <pub-id pub-id-type="doi">10.3390/atmos16050523</pub-id></citation></ref>
<ref id="ref5"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bai</surname> <given-names>Y.</given-names></name> <name><surname>Ni</surname> <given-names>Y.</given-names></name> <name><surname>Zeng</surname> <given-names>Q.</given-names></name></person-group> (<year>2021</year>). <article-title>Impact of ambient air quality standards revision on the exposure-response of air pollution in Tianjin, China</article-title>. <source>Environ. Res.</source> <volume>198</volume>:<fpage>111269</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.envres.2021.111269</pub-id>, PMID: <pub-id pub-id-type="pmid">33945811</pub-id></citation></ref>
<ref id="ref6"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Barbalat</surname> <given-names>G.</given-names></name> <name><surname>Hough</surname> <given-names>I.</given-names></name> <name><surname>Dorman</surname> <given-names>M.</given-names></name> <name><surname>Lepeule</surname> <given-names>J.</given-names></name> <name><surname>Kloog</surname> <given-names>I.</given-names></name></person-group> (<year>2024</year>). <article-title>A multi-resolution ensemble model of three decision-tree-based algorithms to predict daily NO2 concentration in France 2005&#x2013;2022</article-title>. <source>Environ. Res.</source> <volume>257</volume>:<fpage>119241</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.envres.2024.119241</pub-id>, PMID: <pub-id pub-id-type="pmid">38810827</pub-id></citation></ref>
<ref id="ref7"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Becker</surname> <given-names>D.</given-names></name> <name><surname>Alfeus</surname> <given-names>A.</given-names></name> <name><surname>Moln&#x00E1;r</surname> <given-names>P.</given-names></name> <name><surname>Boman</surname> <given-names>J.</given-names></name> <name><surname>Wichmann</surname> <given-names>J.</given-names></name></person-group> (<year>2024</year>). <article-title>Ambient PM2.5, soot, black carbon and organic carbon levels in Kimberley, South Africa</article-title>. <source>Clean Air J</source> <volume>34</volume>:<fpage>100</fpage>. doi: <pub-id pub-id-type="doi">10.17159/caj/2024/34/2.20100</pub-id></citation></ref>
<ref id="ref8"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bitz</surname> <given-names>T.</given-names></name> <name><surname>Gerling</surname> <given-names>L.</given-names></name> <name><surname>Meier</surname> <given-names>F.</given-names></name> <name><surname>Weber</surname> <given-names>S.</given-names></name></person-group> (<year>2024</year>). <article-title>Prediction of urban ultrafine particle emission fluxes using generalized additive models</article-title>. <source>Atmos. Environ.</source> <volume>334</volume>:<fpage>120677</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.atmosenv.2024.120677</pub-id>, PMID: <pub-id pub-id-type="pmid">40689378</pub-id></citation></ref>
<ref id="ref9"><citation citation-type="book"><person-group person-group-type="author"><name><surname>Chang</surname> <given-names>C.-H.</given-names></name> <name><surname>Caruana</surname> <given-names>R.</given-names></name> <name><surname>Goldenberg</surname> <given-names>A.</given-names></name></person-group> (<year>2022</year>). <source>NODE-GAM: neural generalized additive model for interpretable deep learning</source>. USA: <publisher-name>Cornell University</publisher-name>.</citation></ref>
<ref id="ref10"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Charumbira</surname> <given-names>S.</given-names></name> <name><surname>Ncube</surname> <given-names>A.</given-names></name></person-group> (<year>2022</year>). <article-title>An environmental disaster: a critical review of kimberlite diamond Mining in Kimberley, South Africa</article-title>. <source>Int J Disaster Risk Reduct</source>:<fpage>20</fpage>. doi: <pub-id pub-id-type="doi">10.2139/ssrn.4232987</pub-id></citation></ref>
<ref id="ref11"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Cheng</surname> <given-names>M.</given-names></name> <name><surname>Fang</surname> <given-names>F.</given-names></name> <name><surname>Navon</surname> <given-names>I. M.</given-names></name> <name><surname>Pain</surname> <given-names>C.</given-names></name></person-group> (<year>2023</year>). <article-title>Ensemble Kalman filter for GAN-ConvLSTM based long lead-time forecasting</article-title>. <source>J Comput Sci</source> <volume>69</volume>:<fpage>102024</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.jocs.2023.102024</pub-id>, PMID: <pub-id pub-id-type="pmid">40689378</pub-id></citation></ref>
<ref id="ref12"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Cheng</surname> <given-names>B.</given-names></name> <name><surname>Ma</surname> <given-names>Y.</given-names></name> <name><surname>Feng</surname> <given-names>F.</given-names></name> <name><surname>Zhang</surname> <given-names>Y.</given-names></name> <name><surname>Shen</surname> <given-names>J.</given-names></name> <name><surname>Wang</surname> <given-names>H.</given-names></name> <etal/></person-group>. (<year>2021</year>). <article-title>Influence of weather and air pollution on concentration change of PM2.5 using a generalized additive model and gradient boosting machine</article-title>. <source>Atmos. Environ.</source> <volume>255</volume>:<fpage>118437</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.atmosenv.2021.118437</pub-id>, PMID: <pub-id pub-id-type="pmid">40689378</pub-id></citation></ref>
<ref id="ref13"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Dammann</surname> <given-names>L. M.</given-names></name> <name><surname>Freitag</surname> <given-names>M.</given-names></name> <name><surname>Thielmann</surname> <given-names>A.</given-names></name> <name><surname>S&#x00E4;fken</surname> <given-names>B.</given-names></name></person-group> (<year>2025</year>). <article-title>Gradient-based smoothing parameter estimation for neural P-splines</article-title>. <source>Comput. Stat.</source> <volume>40</volume>, <fpage>3645</fpage>&#x2013;<lpage>3663</lpage>. doi: <pub-id pub-id-type="doi">10.1007/s00180-024-01593-z</pub-id></citation></ref>
<ref id="ref14"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>de As&#x00ED;s L&#x00F3;pez</surname> <given-names>F.</given-names></name> <name><surname>Ord&#x00F3;&#x00F1;ez</surname> <given-names>C.</given-names></name> <name><surname>Roca-Pardi&#x00F1;as</surname> <given-names>J.</given-names></name></person-group> (<year>2024</year>). <article-title>A generalized additive model (GAM) approach to principal component analysis of geographic data</article-title>. <source>Spatial Statistics</source> <volume>59</volume>:<fpage>100806</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.spasta.2023.100806</pub-id></citation></ref>
<ref id="ref15"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>de Foy</surname> <given-names>B.</given-names></name> <name><surname>Edwards</surname> <given-names>R.</given-names></name> <name><surname>Joy</surname> <given-names>K. S.</given-names></name> <name><surname>Zaman</surname> <given-names>S. U.</given-names></name> <name><surname>Salam</surname> <given-names>A.</given-names></name> <name><surname>Schauer</surname> <given-names>J. J.</given-names></name></person-group> (<year>2024</year>). <article-title>Interpretable machine learning tools to analyze PM2.5 sensor network data so as to quantify local source impacts and long-range transport</article-title>. <source>Atmos. Res.</source> <volume>311</volume>:<fpage>107656</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.atmosres.2024.107656</pub-id>, PMID: <pub-id pub-id-type="pmid">40689378</pub-id></citation></ref>
<ref id="ref16"><citation citation-type="other"><person-group person-group-type="author"><collab id="coll1">Department of Environmental Affairs</collab></person-group>. (<year>2019</year>). <source>National air quality indicator - monthly data report for the northern Cape Province</source>. p. <fpage>1</fpage>. South Africa. Available at: <ext-link xlink:href="https://saaqis.environment.gov.za/Pagesfiles/Northern%20Cape%20-%20February%202019.pdf" ext-link-type="uri">https://saaqis.environment.gov.za/Pagesfiles/Northern%20Cape%20-%20February%202019.pdf</ext-link></citation></ref>
<ref id="ref17"><citation citation-type="other"><person-group person-group-type="author"><name><surname>Dillon</surname> <given-names>E.</given-names></name> <name><surname>LaRiviere</surname> <given-names>J.</given-names></name> <name><surname>Lundberg</surname> <given-names>S.</given-names></name> <name><surname>Roth</surname> <given-names>J.</given-names></name> <name><surname>Syrgkanis</surname> <given-names>V</given-names></name></person-group>. Be careful when interpreting predictive models in search of causal insights. A joint article about causality and interpretable machine learning with 2018. (<year>2025</year>). Available online at: <ext-link xlink:href="https://shap.readthedocs.io/en/latest/example_notebooks/overviews/Be%20careful%20when%20interpreting%20predictive%20models%20in%20search%20of%20causal%20insights.html" ext-link-type="uri">https://shap.readthedocs.io/en/latest/example_notebooks/overviews/Be%20careful%20when%20interpreting%20predictive%20models%20in%20search%20of%20causal%20insights.html</ext-link>. (Accessed 20 March, 2025).</citation></ref>
<ref id="ref18"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Eslami</surname> <given-names>E.</given-names></name> <name><surname>Choi</surname> <given-names>Y.</given-names></name> <name><surname>Lops</surname> <given-names>Y.</given-names></name> <name><surname>Sayeed</surname> <given-names>A.</given-names></name></person-group> (<year>2020</year>). <article-title>A real-time hourly ozone prediction system using deep convolutional neural network</article-title>. <source>Neural Comput. &#x0026; Applic.</source> <volume>32</volume>, <fpage>8783</fpage>&#x2013;<lpage>8797</lpage>. doi: <pub-id pub-id-type="doi">10.1007/s00521-019-04282-x</pub-id></citation></ref>
<ref id="ref19"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Fan</surname> <given-names>X.</given-names></name> <name><surname>Jie</surname> <given-names>X.</given-names></name> <name><surname>Zou</surname> <given-names>F.</given-names></name> <name><surname>Wang</surname> <given-names>D.</given-names></name> <name><surname>da</surname> <given-names>H.</given-names></name> <name><surname>Li</surname> <given-names>H.</given-names></name> <etal/></person-group>. (<year>2024</year>). <article-title>Association between outdoor air pollutants and risk of acute exacerbation of chronic obstructive pulmonary disease in Xi&#x2019;an, China</article-title>. <source>Air Qual. Atmos. Health</source> <volume>17</volume>, <fpage>1373</fpage>&#x2013;<lpage>1390</lpage>. doi: <pub-id pub-id-type="doi">10.1007/s11869-024-01513-6</pub-id></citation></ref>
<ref id="ref20"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Fang</surname> <given-names>C.</given-names></name> <name><surname>Zhou</surname> <given-names>Z.</given-names></name> <name><surname>Li</surname> <given-names>J.</given-names></name> <name><surname>Zhou</surname> <given-names>M.</given-names></name> <name><surname>Chen</surname> <given-names>X.</given-names></name></person-group> (<year>2021</year>). <article-title>Short-term nitrogen dioxide exposure is associated with the spread of <italic>S. pyogenes</italic>-induced vulvovaginitis in prepubertal girls in Hangzhou, China</article-title>. <source>Environ. Sci. Pollut. Res.</source> <volume>28</volume>, <fpage>35790</fpage>&#x2013;<lpage>35797</lpage>. doi: <pub-id pub-id-type="doi">10.1007/s11356-021-13268-z</pub-id>, PMID: <pub-id pub-id-type="pmid">33677663</pub-id></citation></ref>
<ref id="ref21"><citation citation-type="book"><person-group person-group-type="author"><collab id="coll2">Forestry Fisheries and the Environment</collab></person-group> (<year>2024</year>). <source>National air Quality Indicator - monthly data report for the northern Cape Province</source>. <publisher-loc>South Africa</publisher-loc>: Department Forestry, Fisheries and the Environment, Republic of South Africa, <fpage>1</fpage>&#x2013;<lpage>15</lpage>.</citation></ref>
<ref id="ref22"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Fu</surname> <given-names>J.</given-names></name> <name><surname>Liu</surname> <given-names>Y.</given-names></name> <name><surname>Zhao</surname> <given-names>Y.</given-names></name> <name><surname>Tang</surname> <given-names>S.</given-names></name> <name><surname>Chen</surname> <given-names>Y.</given-names></name> <name><surname>Liu</surname> <given-names>Y.</given-names></name> <etal/></person-group>. (<year>2023</year>). <article-title>Hourly Valley concentration of air pollutants associated with increased acute myocardial infarction hospital admissions in Beijing, China</article-title>. <source>Atmos.</source> <volume>14</volume>:<fpage>27</fpage>. doi: <pub-id pub-id-type="doi">10.3390/atmos14010027</pub-id></citation></ref>
<ref id="ref23"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Fu</surname> <given-names>G.</given-names></name> <name><surname>An</surname> <given-names>T.</given-names></name> <name><surname>Liu</surname> <given-names>H.</given-names></name> <name><surname>Tian</surname> <given-names>Y.</given-names></name> <name><surname>Wang</surname> <given-names>P</given-names></name></person-group>. (<year>2020</year>). <article-title>Assessment of the impact of PM2.5 exposure on the daily mortality of circulatory system in Shijiazhuang, China</article-title>. <source>Atmos.</source> <volume>11</volume>:<fpage>1018</fpage>. doi: <pub-id pub-id-type="doi">10.3390/atmos11091018</pub-id></citation></ref>
<ref id="ref24"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gao</surname> <given-names>A.</given-names></name> <name><surname>You</surname> <given-names>X.</given-names></name> <name><surname>Li</surname> <given-names>Z.</given-names></name> <name><surname>Liao</surname> <given-names>C.</given-names></name> <name><surname>Yin</surname> <given-names>Z.</given-names></name> <name><surname>Zhang</surname> <given-names>B.</given-names></name> <etal/></person-group>. (<year>2025</year>). <article-title>Health effects associated with ozone in China: a systematic review</article-title>. <source>Environ. Pollut.</source> <volume>367</volume>:<fpage>125642</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.envpol.2025.125642</pub-id>, PMID: <pub-id pub-id-type="pmid">39761714</pub-id></citation></ref>
<ref id="ref25"><citation citation-type="other"><person-group person-group-type="author"><name><surname>Goudet</surname> <given-names>O.</given-names></name> <name><surname>Kalainathan</surname> <given-names>D.</given-names></name> <name><surname>Caillou</surname> <given-names>P.</given-names></name> <name><surname>Guyon</surname> <given-names>I.</given-names></name> <name><surname>Lopez-Paz</surname> <given-names>D.</given-names></name> <name><surname>Sebag</surname> <given-names>M</given-names></name></person-group>. (<year>2018</year>). <source>Learning functional causal models with generative neural networks. Xplainable and interpretable models in computer vision and machine learning</source>, <fpage>39</fpage>&#x2013;<lpage>80</lpage>.</citation></ref>
<ref id="ref26"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gu</surname> <given-names>J.</given-names></name> <name><surname>Shi</surname> <given-names>Y.</given-names></name> <name><surname>Chen</surname> <given-names>N.</given-names></name> <name><surname>Wang</surname> <given-names>H.</given-names></name> <name><surname>Chen</surname> <given-names>T.</given-names></name></person-group> (<year>2020</year>). <article-title>Ambient fine particulate matter and hospital admissions for ischemic and hemorrhagic strokes and transient ischemic attack in 248 Chinese cities</article-title>. <source>Sci. Total Environ.</source> <volume>715</volume>:<fpage>136896</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.scitotenv.2020.136896</pub-id>, PMID: <pub-id pub-id-type="pmid">32007884</pub-id></citation></ref>
<ref id="ref27"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Habeebullah</surname> <given-names>T. M. A.</given-names></name></person-group> (<year>2020</year>). <article-title>Assessment of ground-level ozone pollution with monitoring and modelling approaches in Makkah, Saudi Arabia</article-title>. <source>Arab. J. Geosci.</source> <volume>13</volume>:<fpage>1164</fpage>. doi: <pub-id pub-id-type="doi">10.1007/s12517-020-06179-9</pub-id></citation></ref>
<ref id="ref28"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Haddad</surname> <given-names>K.</given-names></name> <name><surname>Vizakos</surname> <given-names>N.</given-names></name></person-group> (<year>2021</year>). <article-title>Air quality pollutants and their relationship with meteorological variables in four suburbs of greater Sydney, Australia</article-title>. <source>Air Qual. Atmos. Health</source> <volume>14</volume>, <fpage>55</fpage>&#x2013;<lpage>67</lpage>. doi: <pub-id pub-id-type="doi">10.1007/s11869-020-00913-8</pub-id></citation></ref>
<ref id="ref29"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hammouda</surname> <given-names>Z.</given-names></name> <name><surname>Zaier</surname> <given-names>L. H.</given-names></name> <name><surname>Blond</surname> <given-names>N.</given-names></name></person-group> (<year>2021</year>). <article-title>Modeling tropospheric ozone and particulate matter in Tunis, Tunisia using generalized additive model</article-title>. <source>Clean Air J</source> <volume>31</volume>, <fpage>1</fpage>&#x2013;<lpage>16</lpage>. doi: <pub-id pub-id-type="doi">10.17159/caj/2021/31/2.8880</pub-id></citation></ref>
<ref id="ref30"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>He</surname> <given-names>M. Z.</given-names></name> <name><surname>Yitshak-Sade</surname> <given-names>M.</given-names></name> <name><surname>Just</surname> <given-names>A. C.</given-names></name> <name><surname>Guti&#x00E9;rrez-Avila</surname> <given-names>I.</given-names></name> <name><surname>Dorman</surname> <given-names>M.</given-names></name> <name><surname>de Hoogh</surname> <given-names>K.</given-names></name> <etal/></person-group>. (<year>2023</year>). <article-title>Predicting fine-scale daily NO2 over Mexico city using an ensemble modeling approach. Atmospheric</article-title>. <source>Pollut. Res.</source> <volume>14</volume>:<fpage>101763</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.apr.2023.101763</pub-id>, PMID: <pub-id pub-id-type="pmid">37193345</pub-id></citation></ref>
<ref id="ref31"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Huang</surname> <given-names>C. S.</given-names></name> <name><surname>Lo</surname> <given-names>K.</given-names></name> <name><surname>Wu</surname> <given-names>Y. L.</given-names></name> <name><surname>Wang</surname> <given-names>F. C.</given-names></name> <name><surname>Shiu</surname> <given-names>Y. S.</given-names></name> <name><surname>Chen</surname> <given-names>C. C.</given-names></name> <etal/></person-group>. (<year>2025</year>). <article-title>Estimating and characterizing spatiotemporal distributions of elemental PM2.5 using an ensemble machine learning approach in Taiwan. Atmospheric</article-title>. <source>Pollut. Res.</source> <volume>16</volume>:<fpage>102463</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.apr.2025.102463</pub-id>, PMID: <pub-id pub-id-type="pmid">40689378</pub-id></citation></ref>
<ref id="ref32"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hwang</surname> <given-names>J.-S.</given-names></name> <name><surname>Gil</surname> <given-names>J.-W.</given-names></name> <name><surname>Lee</surname> <given-names>C.-K.</given-names></name></person-group> (<year>2024</year>). <article-title>Determination of optimal batch size of deep learning models with time series data</article-title>. <source>Sustainability</source> <volume>16</volume>:<fpage>5936</fpage>. doi: <pub-id pub-id-type="doi">10.3390/su16145936</pub-id></citation></ref>
<ref id="ref33"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Jo</surname> <given-names>W.</given-names></name> <name><surname>Kim</surname> <given-names>D.</given-names></name></person-group> (<year>2023</year>). <article-title>Neural additive time-series models: explainable deep learning for multivariate time-series prediction</article-title>. <source>Expert Syst. Appl.</source> <volume>228</volume>:<fpage>120307</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.eswa.2023.120307</pub-id>, PMID: <pub-id pub-id-type="pmid">40689378</pub-id></citation></ref>
<ref id="ref34"><citation citation-type="book"><person-group person-group-type="author"><name><surname>Kaur</surname> <given-names>H.</given-names></name> <name><surname>Nori</surname> <given-names>H.</given-names></name> <name><surname>Jenkins</surname> <given-names>S.</given-names></name> <name><surname>Caruana</surname> <given-names>R.</given-names></name> <name><surname>Wallach</surname> <given-names>H.</given-names></name> <name><surname>Vaughan Wortman</surname> <given-names>J.</given-names></name> <etal/></person-group>. (<year>2020</year>). &#x201C;<article-title>Interpreting interpretability: understanding data scientists' use of interpretability tools for machine learning</article-title>&#x201D; in <source>Proceedings of the 2020 CHI conference on human factors in computing systems</source> (<publisher-loc>Honolulu HI USA</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>1</fpage>&#x2013;<lpage>14</lpage>.</citation></ref>
<ref id="ref35"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kruschel</surname> <given-names>S.</given-names></name> <name><surname>Hambauer</surname> <given-names>N.</given-names></name> <name><surname>Weinzierl</surname> <given-names>S.</given-names></name> <name><surname>Zilker</surname> <given-names>S.</given-names></name> <name><surname>Kraus</surname> <given-names>M.</given-names></name> <name><surname>Zschech</surname> <given-names>P.</given-names></name></person-group> (<year>2025</year>). <article-title>Challenging the performance-interpretability trade-off: an evaluation of interpretable machine learning models</article-title>. <source>Bus. Inf. Syst. Eng.</source>, <fpage>1</fpage>&#x2013;<lpage>25</lpage>. doi: <pub-id pub-id-type="doi">10.1007/s12599-024-00922-2</pub-id>, PMID: <pub-id pub-id-type="pmid">40689350</pub-id></citation></ref>
<ref id="ref36"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>LeCun</surname> <given-names>Y.</given-names></name> <name><surname>Bengio</surname> <given-names>Y.</given-names></name> <name><surname>Hinton</surname> <given-names>G.</given-names></name></person-group> (<year>2015</year>). <article-title>Deep learning</article-title>. <source>Nature</source> <volume>521</volume>, <fpage>436</fpage>&#x2013;<lpage>444</lpage>. doi: <pub-id pub-id-type="doi">10.1038/nature14539</pub-id>, PMID: <pub-id pub-id-type="pmid">26017442</pub-id></citation></ref>
<ref id="ref37"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lin</surname> <given-names>Y. C.</given-names></name> <name><surname>Lin</surname> <given-names>Y. T.</given-names></name> <name><surname>Chen</surname> <given-names>C. R.</given-names></name> <name><surname>Lai</surname> <given-names>C. Y.</given-names></name></person-group> (<year>2025</year>). <article-title>Meteorological and traffic effects on air pollutants using Bayesian networks and deep learning</article-title>. <source>J. Environ. Sci. (China)</source> <volume>152</volume>, <fpage>54</fpage>&#x2013;<lpage>70</lpage>. doi: <pub-id pub-id-type="doi">10.1016/j.jes.2024.01.057</pub-id>, PMID: <pub-id pub-id-type="pmid">39617575</pub-id></citation></ref>
<ref id="ref38"><citation citation-type="book"><person-group person-group-type="author"><name><surname>Lou</surname> <given-names>Y.</given-names></name> <name><surname>Caruana</surname> <given-names>R.</given-names></name> <name><surname>Gehrke</surname> <given-names>J.</given-names></name></person-group> (<year>2012</year>). &#x201C;<article-title>Intelligible models for classification and regression</article-title>&#x201D; in <source>Proceedings of the 18th ACM SIGKDD international conference on knowledge discovery and data mining</source> (<publisher-loc>Beijing</publisher-loc>: <publisher-name>ACM Press</publisher-name>), <fpage>150</fpage>.</citation></ref>
<ref id="ref39"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Naz</surname> <given-names>F.</given-names></name> <name><surname>Fahim</surname> <given-names>M.</given-names></name> <name><surname>Cheema</surname> <given-names>A. A.</given-names></name> <name><surname>Viet</surname> <given-names>N. T.</given-names></name> <name><surname>Cao</surname> <given-names>T. V.</given-names></name> <name><surname>Hunter</surname> <given-names>R.</given-names></name> <etal/></person-group>. (<year>2024</year>). <article-title>Two-stage feature engineering to predict air pollutants in urban areas</article-title>. <source>IEEE Access</source> <volume>12</volume>, <fpage>114073</fpage>&#x2013;<lpage>114085</lpage>. doi: <pub-id pub-id-type="doi">10.1109/ACCESS.2024.3443810</pub-id></citation></ref>
<ref id="ref40"><citation citation-type="other"><person-group person-group-type="author"><name><surname>Nisbet</surname> <given-names>R.</given-names></name> <name><surname>Elder</surname> <given-names>J.</given-names></name> <name><surname>Miner</surname> <given-names>G.</given-names></name></person-group> (<year>2009</year>). &#x201C;<article-title>Chapter 7 basic algorithms for data mining: a brief overview</article-title>&#x201D; in <source>Handbook of statistical analysis and data mining applications</source>, <fpage>121</fpage>&#x2013;<lpage>150</lpage>.</citation></ref>
<ref id="ref41"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Obster</surname> <given-names>F.</given-names></name> <name><surname>Brand</surname> <given-names>J.</given-names></name> <name><surname>Ciolacu</surname> <given-names>M.</given-names></name> <name><surname>Humpe</surname> <given-names>A</given-names></name></person-group>. (<year>2022</year>). <article-title>Improving boosted generalized additive models with random forests: a zoo visitor case study for smart tourism</article-title>. <source>Procedia Comput. Sci.</source> <volume>217</volume>, <fpage>187</fpage>&#x2013;<lpage>197</lpage>. doi: <pub-id pub-id-type="doi">10.1016/j.procs.2022.12.214</pub-id>, PMID: <pub-id pub-id-type="pmid">40690924</pub-id></citation></ref>
<ref id="ref42"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ortega-Fernandez</surname> <given-names>I.</given-names></name> <name><surname>Sestelo</surname> <given-names>M.</given-names></name> <name><surname>Villanueva</surname> <given-names>N. M.</given-names></name></person-group> (<year>2024</year>). <article-title>Explainable generalized additive neural networks with independent neural network training</article-title>. <source>Stat. Comput.</source> <volume>34</volume>:<fpage>6</fpage>. doi: <pub-id pub-id-type="doi">10.1007/s11222-023-10320-5</pub-id>, PMID: <pub-id pub-id-type="pmid">40689350</pub-id></citation></ref>
<ref id="ref43"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ravindra</surname> <given-names>K.</given-names></name> <name><surname>Rattan</surname> <given-names>P.</given-names></name> <name><surname>Mor</surname> <given-names>S.</given-names></name> <name><surname>Aggarwal</surname> <given-names>A. N.</given-names></name></person-group> (<year>2019</year>). <article-title>Generalized additive models: building evidence of air pollution, climate change and human health</article-title>. <source>Environ. Int.</source> <volume>132</volume>:<fpage>104987</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.envint.2019.104987</pub-id>, PMID: <pub-id pub-id-type="pmid">31398655</pub-id></citation></ref>
<ref id="ref44"><citation citation-type="other"><person-group person-group-type="author"><name><surname>Setianingrum</surname> <given-names>A. H.</given-names></name> <name><surname>Anggraini</surname> <given-names>N.</given-names></name> <name><surname>Ikram</surname> <given-names>M. F. D.</given-names></name></person-group> (<year>2022</year>). &#x201C;<article-title>Prophet model performance analysis for Jakarta air quality forecasting</article-title>&#x201D; in <source>2022 10th international conference on cyber and IT service management (CITSM)</source>. doi: <pub-id pub-id-type="doi">10.1109/CITSM56380.2022.9936037</pub-id></citation></ref>
<ref id="ref45"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sharma</surname> <given-names>G.</given-names></name> <name><surname>Khurana</surname> <given-names>S.</given-names></name> <name><surname>Saina</surname> <given-names>N.</given-names></name> <name><surname>Shivansh</surname></name> <name><surname>Gupta</surname> <given-names>G.</given-names></name></person-group> (<year>2024</year>). <article-title>Comparative analysis of machine learning techniques in air quality index (AQI) prediction in smart cities</article-title>. <source>Int. J. Syst. Assur. Eng. Manag.</source> <volume>15</volume>, <fpage>3060</fpage>&#x2013;<lpage>3075</lpage>. doi: <pub-id pub-id-type="doi">10.1007/s13198-024-02315-w</pub-id>, PMID: <pub-id pub-id-type="pmid">40689350</pub-id></citation></ref>
<ref id="ref46"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Srivastava</surname> <given-names>N.</given-names></name> <name><surname>Hinton</surname> <given-names>G.</given-names></name> <name><surname>Krizhevsky</surname> <given-names>A.</given-names></name> <name><surname>Sutskever</surname> <given-names>I.</given-names></name> <name><surname>Salakhutdinov</surname> <given-names>R</given-names></name></person-group>. (<year>2014</year>). <article-title>Dropout: a simple way to prevent neural networks from overfitting</article-title>. <source>J Mach Learn Res</source> <volume>15</volume>, <fpage>1929</fpage>&#x2013;<lpage>1958</lpage>. doi: <pub-id pub-id-type="doi">10.5555/2627435.2670313</pub-id></citation></ref>
<ref id="ref47"><citation citation-type="other"><person-group person-group-type="author"><name><surname>Talati</surname> <given-names>I.</given-names></name> <name><surname>Shanmugam</surname> <given-names>R.</given-names></name> <name><surname>Shah</surname> <given-names>K.</given-names></name> <name><surname>Chaudhary</surname> <given-names>N.</given-names></name> <name><surname>Parikh</surname> <given-names>K.</given-names></name> <name><surname>Khaitan</surname> <given-names>D</given-names></name></person-group>. (<year>2023</year>). &#x201C;<article-title>Air pollution monitoring &#x0026; prediction system for Ahmedabad region using IOT and ML</article-title>&#x201D; in <source>2023 14th International Conference on Computing Communication and Networking Technologies (ICCCNT)</source>.</citation></ref>
<ref id="ref48"><citation citation-type="other"><person-group person-group-type="author"><name><surname>Taormina</surname> <given-names>R.</given-names></name> <name><surname>Mesin</surname> <given-names>L.</given-names></name> <name><surname>Orione</surname> <given-names>F.</given-names></name> <name><surname>Pasero</surname> <given-names>E</given-names></name></person-group>. (<year>2011</year>). &#x201C;<article-title>Forecasting tropospheric ozone concentrations with adaptive neural networks</article-title>&#x201D; in <source>The 2011 International Joint Conference on Neural Networks</source>.</citation></ref>
<ref id="ref49"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Tejada-Lapuerta</surname> <given-names>A.</given-names></name> <name><surname>Bertin</surname> <given-names>P.</given-names></name> <name><surname>Bauer</surname> <given-names>S.</given-names></name> <name><surname>Aliee</surname> <given-names>H.</given-names></name> <name><surname>Bengio</surname> <given-names>Y.</given-names></name> <name><surname>Theis</surname> <given-names>F. J.</given-names></name></person-group> (<year>2025</year>). <article-title>Causal machine learning for single-cell genomics</article-title>. <source>Nat. Genet.</source> <volume>57</volume>, <fpage>797</fpage>&#x2013;<lpage>808</lpage>. doi: <pub-id pub-id-type="doi">10.1038/s41588-025-02124-2</pub-id>, PMID: <pub-id pub-id-type="pmid">40164735</pub-id></citation></ref>
<ref id="ref50"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Tian</surname> <given-names>R.</given-names></name> <name><surname>Li</surname> <given-names>X.</given-names></name> <name><surname>Ma</surname> <given-names>Z.</given-names></name> <name><surname>Liu</surname> <given-names>Y.</given-names></name> <name><surname>Wang</surname> <given-names>J.</given-names></name> <name><surname>Wang</surname> <given-names>C.</given-names></name></person-group> (<year>2023</year>). <article-title>LDformer: a parallel neural network model for long-term power forecasting</article-title>. <source>Front Inform Technol Electron Eng.</source> <volume>24</volume>, <fpage>1287</fpage>&#x2013;<lpage>1301</lpage>. doi: <pub-id pub-id-type="doi">10.1631/FITEE.2200540</pub-id></citation></ref>
<ref id="ref51"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Tu</surname> <given-names>Q.</given-names></name> <name><surname>Hase</surname> <given-names>F.</given-names></name> <name><surname>Chen</surname> <given-names>Z.</given-names></name> <name><surname>Schneider</surname> <given-names>M.</given-names></name> <name><surname>Garc&#x00ED;a</surname> <given-names>O.</given-names></name> <name><surname>Khosrawi</surname> <given-names>F.</given-names></name> <etal/></person-group>. (<year>2023</year>). <article-title>Estimation of NO2 emission strengths over Riyadh and Madrid from space from a combination of wind-assigned anomalies and a machine learning technique</article-title>. <source>Atmos. Meas. Tech.</source> <volume>16</volume>, <fpage>2237</fpage>&#x2013;<lpage>2262</lpage>. doi: <pub-id pub-id-type="doi">10.5194/amt-16-2237-2023</pub-id>, PMID: <pub-id pub-id-type="pmid">38859159</pub-id></citation></ref>
<ref id="ref52"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Tyralis</surname> <given-names>H.</given-names></name> <name><surname>Papacharalampous</surname> <given-names>G.</given-names></name></person-group> (<year>2024</year>). <article-title>A review of predictive uncertainty estimation with machine learning</article-title>. <source>Artif. Intell. Rev.</source> <volume>57</volume>:<fpage>94</fpage>. doi: <pub-id pub-id-type="doi">10.1007/s10462-023-10698-8</pub-id></citation></ref>
<ref id="ref53"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wahiduzzaman</surname> <given-names>M.</given-names></name> <name><surname>Yeasmin</surname> <given-names>A.</given-names></name></person-group> (<year>2024</year>). <article-title>A generalised additive model and deep learning method for cross-validating the North Atlantic oscillation index</article-title>. <source>Atmos.</source> <volume>15</volume>:<fpage>987</fpage>. doi: <pub-id pub-id-type="doi">10.3390/atmos15080987</pub-id></citation></ref>
<ref id="ref54"><citation citation-type="other"><person-group person-group-type="author"><name><surname>Wattal</surname> <given-names>K.</given-names></name> <name><surname>Singh</surname> <given-names>S. K.</given-names></name></person-group> (<year>2021</year>). &#x201C;<article-title>Multivariate air pollution levels forecasting</article-title>&#x201D; in <source>2021 2nd International Conference on Advances in Computing, Communication, Embedded and Secure Systems (ACCESS)</source>. doi: <pub-id pub-id-type="doi">10.1109/ACCESS51619.2021.9563281</pub-id></citation></ref>
<ref id="ref55"><citation citation-type="other"><person-group person-group-type="author"><name><surname>Widiputra</surname> <given-names>H.</given-names></name> <name><surname>Mailangkay</surname> <given-names>A.</given-names></name> <name><surname>Gautama</surname> <given-names>E.</given-names></name></person-group> (<year>2021</year>). <source>Multivariate CNN-LSTM model for multiple parallel financial time-series prediction</source>, vol. <volume>54</volume>. doi: <pub-id pub-id-type="doi">10.1155/2021/9903518Citations</pub-id></citation></ref>
<ref id="ref56"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Xiong</surname> <given-names>K.</given-names></name> <name><surname>Xie</surname> <given-names>X.</given-names></name> <name><surname>Huang</surname> <given-names>L.</given-names></name> <name><surname>Hu</surname> <given-names>J.</given-names></name></person-group> (<year>2024</year>). <article-title>Improved O3 predictions in China by combining chemical transport model and multi-source data with machine learning techniques</article-title>. <source>Atmos. Environ.</source> <volume>318</volume>:<fpage>120269</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.atmosenv.2023.120269</pub-id>, PMID: <pub-id pub-id-type="pmid">40689378</pub-id></citation></ref>
<ref id="ref57"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zang</surname> <given-names>Z.</given-names></name> <name><surname>Guo</surname> <given-names>Y.</given-names></name> <name><surname>Jiang</surname> <given-names>Y.</given-names></name> <name><surname>Zuo</surname> <given-names>C.</given-names></name> <name><surname>Li</surname> <given-names>D.</given-names></name> <name><surname>Shi</surname> <given-names>W.</given-names></name> <etal/></person-group>. (<year>2021</year>). <article-title>Tree-based ensemble deep learning model for spatiotemporal surface ozone (O3) prediction and interpretation</article-title>. <source>Int J Appl Earth Observat Geoinform</source> <volume>103</volume>:<fpage>102516</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.jag.2021.102516</pub-id>, PMID: <pub-id pub-id-type="pmid">40689378</pub-id></citation></ref>
<ref id="ref58"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhang</surname> <given-names>A.</given-names></name> <name><surname>Yang</surname> <given-names>J.</given-names></name> <name><surname>Wang</surname> <given-names>F.</given-names></name></person-group> (<year>2023</year>). <article-title>Application and enabling digital twin technologies in the operation and maintenance stage of the AEC industry: a literature review</article-title>. <source>J Build Eng</source> <volume>80</volume>:<fpage>107859</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.jobe.2023.107859</pub-id></citation></ref>
<ref id="ref59"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhu</surname> <given-names>Q.</given-names></name> <name><surname>Lee</surname> <given-names>D.</given-names></name> <name><surname>Stoner</surname> <given-names>O.</given-names></name></person-group> (<year>2024</year>). <article-title>A comparison of statistical and machine learning models for spatio-temporal prediction of ambient air pollutant concentrations in Scotland</article-title>. <source>Environ. Ecol. Stat.</source> <volume>31</volume>, <fpage>1085</fpage>&#x2013;<lpage>1108</lpage>. doi: <pub-id pub-id-type="doi">10.1007/s10651-024-00635-5</pub-id></citation></ref>
</ref-list>
<glossary>
<def-list>
<title>Glossary</title>
<def-item>
<term>xAI</term>
<def>
<p>explainable artificial intelligence</p>
</def>
</def-item>
<def-item>
<term>LIME</term>
<def>
<p>local interpretable model-agnostic explanation</p>
</def>
</def-item>
<def-item>
<term>NOx</term>
<def>
<p>nitrogen oxides</p>
</def>
</def-item>
<def-item>
<term>NO<sub>2</sub></term>
<def>
<p>nitrogen dioxide</p>
</def>
</def-item>
<def-item>
<term>NO</term>
<def>
<p>nitric oxide</p>
</def>
</def-item>
<def-item>
<term>CO</term>
<def>
<p>carbon monoxide</p>
</def>
</def-item>
<def-item>
<term>O<sub>3</sub></term>
<def>
<p>ozone</p>
</def>
</def-item>
<def-item>
<term>PM<sub>10</sub> &#x0026; PM<sub>2.5</sub></term>
<def>
<p>particulate matter</p>
</def>
</def-item>
<def-item>
<term>SO<sub>2</sub></term>
<def>
<p>sulfur dioxide</p>
</def>
</def-item>
<def-item>
<term>LSTM</term>
<def>
<p>long short-term memory model</p>
</def>
</def-item>
<def-item>
<term>GAM</term>
<def>
<p>generalized additive model</p>
</def>
</def-item>
<def-item>
<term>SHAP</term>
<def>
<p>Shapley additive explanations</p>
</def>
</def-item>
<def-item>
<term>1DCNN</term>
<def>
<p>one-dimensional convolutional neural network</p>
</def>
</def-item>
<def-item>
<term>BiLSTM</term>
<def>
<p>Bi-directional long short-term memory</p>
</def>
</def-item>
<def-item>
<term>GRU</term>
<def>
<p>gated recurrent unit</p>
</def>
</def-item>
<def-item>
<term>ARIMA</term>
<def>
<p>autoregressive integrated moving average</p>
</def>
</def-item>
<def-item>
<term>CNN</term>
<def>
<p>convolutional neural network</p>
</def>
</def-item>
<def-item>
<term>LightGBM</term>
<def>
<p>light gradient boosting machine</p>
</def>
</def-item>
<def-item>
<term>SAAQIS</term>
<def>
<p>South African Air Quality Information System</p>
</def>
</def-item>
<def-item>
<term>NAQI</term>
<def>
<p>Northern Cape National Air Quality Indicator</p>
</def>
</def-item>
</def-list>
</glossary>
</back>
</article>