## 2 Materials and Methods
### Principal Component Analysis  
A well-established method for transforming a high-dimensional set of features into a low-dimensional set is principal component analysis [20]. PCA seeks the lowest dimensional representation of the data, while preserving as much information/variance as possible. In order to capture as much variability as possible, PCA converts the original space, produced from the original dataset, into a new space that is a linear combination of the dataset dimensions. Each dimension that is created is referred to as a principal component (PC). The new coordinates of the data are referred to as \"scores.\" Each PC accounts for a part of the variation in the original data set. The first principal component's direction is the direction in which the data varies the most. The contribution of each original dimension to the new dimension is expressed by the \"loadings\". The closer the loading value is to +1 (or \(-1\)), the greater the feature's positive (or negative) impact on this PC.  
The \"biplot\" is the usual approach to examine the loadings and scores combined. The biplot is a two-dimensional scatter plot in which the two axes reflect the two most important PCs in terms of explained variance. The loadings of the first two PCs of each characteristic are shown over the data points in this two-dimensional coordinate system, utilizing the scores as coordinates. Scree plots are used to identify the fewest number of primary components required to reflect the original data adequately. A scree plot main aim is to display the findings of the component analysis and to locate the apparent change in slope (elbow). The eigenvalue is shown against the major components in a scree plot. The proportion of variance explained by a component is its eigenvalue divided by the sum of its eigenvalues. The first component typically explains a substantial proportion of the variability, the subsequent components explain a moderate proportion, and the final components explain just a small proportion of the total variability.  
The data linear dimensionality was reduced using singular value decomposition (SVD). The latter was employed in order to project data into a lower dimensional space. Before applying the SVD, the input data were centered and scaled for each feature. Since the features (i.e., PK parameters) used in the PCA differed in scale (e.g., Tmax vs. AUC), feature scaling was required prior to conducting the PCA. Using the _StandardScaler_ of \"Scikit-learn\" from the preprocessing submodule, z-score standardization was used to get all features into the same scale. Because the dataset was constrained, the actual full SVD was computed and then reduced [21]. Because we are interested in finding relationships among all PK parameters, PCA was implemented using the original number of dimensions. As a result, the number of components hyperparameter was set to \"none\" in order to keep all components. A one-dimensional \"numpy\" array was used to calculate the percentage of variance explained by each of the selected components. Then, the principal components were ordered by decreasing explained variance and the two first principal components were kept. The entire PCA analysis was implemented in Python v. 3.10.8.