## 1 Introduction  
Supervised learning in the R programming language has been facilitated with built-in packages dedicated to processing data and building different types of models. Three types of logistic regression that are commonly used to build models in R include binary (binomial), multinomial, and ordinal regression. Binomial regression produces its prediction in a form of two types of outcomes, such as true or false, while multinomial regression has three or more types of outcome. Ordinal regression, on the other hand, deals with three or more ordered values [1]. GLM (generalized linear model) is a statistical model that allows the linear regression model to be extended to accommodate a wide range of responses and error distributions. The main idea of GLM is to use a link function as a way to relate the linear model to the response variable. GLM has many \"families\" (link functions) that can perform different types of regression, such as linear regression, logistic regression, and Poisson regression [2, 3]. The evaluation of the glm R package remains inconclusive in terms of its performance, specifically, its Precision, Recall, F1-Score, Area Under the Curve (AUC), and Runtime [4, 5, 6, 7]. Current studies evaluate generalized linear models in general but not in the R package itself [8, 9]. Also, evaluating the performance of the glm R package using single-cell RNA-sequencing data helps to understand its applicability, strengths, and limitations in this very specific domain. In this paper, we choose to evaluate the glm package performance, since it is the most common R package for creating linear models, and we use \"binomial\" (nonlinear) regression because our data can only be classified into two types of outcomes: zeroes and ones. _Precision_[10, 11] is defined as the number of correctly predicted true values (_TP_) over the total number of falsely predicted true values (_FP_) and the number of correctly predicted true values. That is: _Precision_\(=\frac{TP}{FP+TP}\). _Recall_[11; 12] is defined as the number of correctly predicted true values (_TP_) over the total number of values that are classified as false (_FN_) and the total number of correctly predicted true values. That is: \(Recall=\frac{TP}{FN+TP}\). The _F1-Score_[13; 14; 15], consequently, is derived as _F1-Score_ = 2 \(\times\) (\(\frac{Precision\times Recall}{Precision+Recall}\)). AUC [12; 16] measures the ability of a specific model to distinguish between positive signals and negative signals. Models with higher AUC have better prediction. AUC can be calculated directly from the subject model's ROC (receiver operating characteristic) curve, which includes the scores of both the true positive rate (represented, in the ROC plot, as the y-axis) and the false positive rate (represented as the x-axis) at different variations of thresholds. When testing a dataset, similarities in input values often cause misclassification errors. Thus, we choose to run a cross-validation test where the datasets are randomly split into different folds (usually 10 folds). In each testing iteration, one fold is set as a testing set, and the rest of the remaining folds are set as a training set. The adjacent fold, then, in the next iteration, is set as the testing set, and the remaining folds are set as the training, set and so on. A correlation between two variables means that a change in one variable will have an immediate effect on the other. The Pearson correlation coefficient, which is measured by dividing the covariance of two variables by the multiplication of the standard deviations of the first and second variables, is commonly used for this specific purpose. A linear correlation, either positive or negative, indicates a strong correlation. Single-cell RNA-sequencing (scRNA-seq) is a technology used to express gene profiles at the level of the individual cell. It provides a better view of cellular heterogeneity within a complex biological system by measuring the RNA transcripts of individual cells.