## 3 Preprocessing
### Factor Analysis  
Exploratory factor analysis (EFA) is a technique used to summarize a large set of features as linear combinations of smaller unobserved latent factors. EFA seeks to describe the unseen underlying relationships between features. The EFA model produces a matrix of factor loadings/weights (similar to the coefficients in a regression model). Each factor loading can be interpreted as explaining a particular feature's proportion of variation explained in the factor [22]. As a rule of thumb, only feature factor loadings greater than or equal to \(|0.4|\) should be used in the transformation of the _baseline gene feature dataset_ into the _factor dataset_. Additionally, each feature should ideally only load cleanly onto one factor [23]. An EFA was only performed on two preprocessed datasets: the _top_-250 _correlations per tumor dataset_ (4082 features) and the _random forest top features dataset_ (660 features). Computational limits prevented utilizing an EFA for larger feature datasets. To confirm that a factor analysis was indeed feasible for the given datasets, the Bartlett Sphericity Test and the Kaiser-Meyer-Olkin (KMO) Test were used. * _Bartlett Sphericity Test_: The Bartlett Sphericity Test [24] checks whether or not the features (observed variables) are intercorrelated by comparing the observed correlation matrix and the identity matrix. If the two are not the same, the test will be significant. For the test of our feature set, the p-value was 0, signifying that a factor analysis is feasible. * _Kaiser-Meyer-Olkin (KMO) Test_: The KMO test estimates the proportion of variance among all the observed variables [24]. KMO values range between 0 and 1, with a value of 0.6 or more indicating a factor analysis is feasible. For the test of our feature set, the KMO value was 1.0, again indicating a factor analysis is feasible. The last step before factor analysis modeling is to determine the number of factors to use in the model. One approach to determining the number of factors is the Kaiser criterion [24]. The Kaiser criterion is an analytical approach which is based on the selection of factors that explain a more significant proportion of variance. The eigenvalue is used as an index for the variance as a portion of the total variance and it reflects the quality of a component as a summary of the data. An eigenvalue of 1.0 indicates that the corresponding factor captures as much variation in the data as a single feature. Generally, an eigenvalue greater than 1 is considered a good selection criterion for a factor. However, with larger feature sets, the eigenvalue cutoff number is more subjective. An alternate approach to determining the number of factors graphically is using a scree plot, which is a plot of the eigenvalues and factor numbers (a graphical representation of the Kaiser criterion). The inflection point or \"elbow\" in the curve on the scree plot, just before the line flattens out, corresponds to the optimum number of factors to select. The _random forest top features dataset_ (660 features) was used as an illustration. The Kaiser criterion numerical analysis yielded 68 eigenvalues greater than 1.0, indicating 68 factors should be considered for the EFA. The scree plot for the same dataset is displayed in Figure 5. The \"elbow\" in the scree plot curve also indicates 68 factors as the optimum choice. Python's Factor Analyzer with a varimax orthogonal rotation was used to compute the factor loadings for these 68 factors. The factor loadings indicate how well a factor can explain a feature. A low factor loading indicates the feature does not belong to the factor. A high factor loading indicates the item belongs to the factor. A factor load of 0.40 was used as a cutoff for the pairing of features to factors. Not all of the features rated high enough to be included in a factor. New factor values were computed by summing the product of the feature values by its corresponding factor load for each instance (sample) in the dataset.