## 4 Results and Analysis
### Data-Driven Correction Model  
As established in the earlier section, the performance of a low-cost GPS receiver like Ublox is highly unstable and has higher clock-bias errors which can be translated into and not limited to longitudinal and latitudinal errors, vertical height errors, and errors in tropospheric delays. This section explores a way to correct the performance of such low-cost GPS receivers.  
The GPS receivers have the advantage that they are connected to different receivers remotely via satellites. At a given instant, time differences between different GPS receivers can be compared based on the satellites in view. As explained in Section 3.2, this can be achieved by either the common view method or the all-in-view method. For this paper, the common view method is implemented.  
At any given instant, all the Refsys values from two receivers, Septentrio (\(Refsys_{Sept}\)) and Ublox (\(Refsys_{Ubx}\)), are recorded. A machine-learning model is implemented that takes the differences between (\(Refsys_{Sept}\)) and (\(Refsys_{Ubx}\)) and predicts the correction factor for the Ublox receivers. The same procedure is repeated for the data from two Ublox locations (at NTU and at Stirling Road).  
Figure 6: Boxplot to compare the data from Septentrio and Ublox receivers for **(a)** NTU, **(b)** Stirling Rd, and **(c)** Septentrio receiver. The x-axes for all plots are the number of days, as shown by Table 1 and the y-axes for all the plots are the respective Refsys values.  
Linear regression is used in this context because it can provide a quick and relatively efficient solution to correct \(Refsys_{ubx}\) with the \(Refsys_{sept}\) values. The model works well when there is a linear relationship between the variables, and it converges quickly. Given that the data have a lot of outlier values, a more robust model like ridge regression or Huber regression could have been considered as well. However, in this case, linear regression seems to provide satisfactory results with a lower training time and is able to handle the linear relationship between the two datasets effectively.  
Figure 7 shows the flowchart of the program that has been implemented for the paper. Python programming language has been used for this implementation. The data are pre-processed and any outliers are removed. The algorithm then calculates the differences between the \(Refsys_{ubx}\) and \(Refsys_{sept}\). These differences are the features for this machine-learning algorithm. In the next step, the model is trained with the difference values to predict the correction factor. A total of 80% of the data is split into the training set, and 20% is allocated for the validation (test) set. The linear regression model is then initialized and trained with the training dataset. The trained regressor will then be used to predict the differences for the test data. The predicted data will then be used to correct the test data. In this case, the Ublov receiver's timings will be corrected by adding these predicted differences.  
Figure 7: Flowchart of the proposed machine-learning-based correction model.  
Here, the hyperparameters for the linear regression model are adjusted primarily through the selection of data splits and reproducibility settings. Specifically, the test size parameter defines the split between training and test data, while random state ensures consistent results across runs. Along with these, grid search and regularization are employed to optimize these parameters, enhancing the model's ability to correct \(Refsys_{ubx}\) values and improve alignment with \(Refsys_{sept}\) values.