## 3 Materials and Methods
### Hyperparameter Tuning Procedure  
In this research, we utilized a combination of hyperparameter tuning, taking advantage of the grid search approach [50], along with cross-validation (CV) strategies. The grid search methodology essentially provides an ideal setting for parameters through arranging all variable grids within the space of the parameters. Each grid's axis corresponds to a parameter of the algorithm, with a unique set of parameters at each grid point that requires optimization. The primary benefit of combining grid search with CV is to pinpoint the most suitable hyperparameters for the model based on the selected evaluation metric. Furthermore, this integration guarantees that the model's performance is evaluated across various data subsets, resulting in a more robust and dependable assessment of its efficacy. A potential drawback of this methodology is that it is computationally intensive. The model needs to be trained '\(k\)' times, which can be time-consuming for large datasets or complex models. However, since our data only has 226 points, the computational demand in our specific case is considerably reduced, making the method more manageable and feasible for our dataset size. To ensure the unbiased selection of data, we employed a prevalent validation method known as k-fold CV [51; 52; 53; 54; 55] during the tuning process of hyperparameters for MARS models. K-fold CV, a standard type of CV, is extensively used in machine learning. Although there is no definitive rule for choosing the value of K, in practical machine learning scenarios, K is commonly set at 5 or 10. According to [PERSON] [56], the bias in an accurate estimation is likely to be reduced when the fold count is either 5 or 10. Based on this and the suggestions of [PERSON] [57] and [PERSON] [58], we chose 5 for K. This decision also took into consideration the trade-off between computational efficiency and bias. As a result, five different sets of training and validation runs were performed, with the outcomes being averaged to depict the overall performance of the MARS models on the training dataset. All the data-related operations in this study were handled using R software 4.1.3 (R Core Team, Vienna, Austria) [47]. The approach for hyperparameter tuning used in this research for training the model and selecting hyperparameters is depicted in Figure 3, as illustrated in reference [59]. Figure 2: Graph representing two splines associated with the variable \(x\): the left spline, represented by a dashed line (for \(x\) less than \(t\), the formula is \(-(x-t)\)), and the right spline, represented by a solid black line (for \(x\) greater than \(t\), the formula is \(+(x-t)\)). Our research made use of the R package \"earth\" to perform MARS modeling. This implementation called for the user's careful consideration of two particular tuning parameters: \"degree\" and \"nprune\". The \"degree\" parameter indicates the highest degree of interaction allowed in the model. By default, this value is set to 1, leading to the creation of a MARS model that is additive and lacks interaction terms. However, it is noteworthy that MARS is capable of building models that encompass interactions of a degree of two or even higher. Despite this capability, a guideline suggested by [PERSON] et al. [60] recommends maintaining an upper limit on the degree of interaction. The benefit of keeping a lower degree of interaction lies in its ability to assist in interpreting the final model in a more straightforward manner. On the other hand, a higher degree of interaction could potentially cause occasional volatility in the model's predictive capabilities, possibly causing predictions to deviate significantly from actual values. Hence, to evaluate the impact of varying degrees of interaction, we experimented with three different values: 1, 2, and 3. The second parameter, \"nprune\", signifies the maximum number of terms (inclusive of the intercept) that can be present in the model. The \"nprune\" value should be equal to or greater than 2 and less than \"\(nk\)\".