## 3 Methodology
### QUEST Algorithm for Data Mining  
The applied QUEST algorithm was selected over other classification algorithms for several reasons:  
* Its accuracy is not compromised by its increased speed;
* It uses imputations instead of surrogate splits for missing values, making it better than the CART algorithm;
* It can handle categorical predictor variables with multiple categories;
* It does not have a bias toward variable selection before splitting [68];
* Its lack of bias is controlled through variation levels in the observed predictor variables [69]. * It can be applied for nominal, ordinal, and continuous values (ANOVA for ordinal and continuous values, and Pearson's \(\chi 2\) for categorical values);
* Cross-validation is used for pruning;
* It can be used with variate splits as well as for a combination of linear splits [66]. The QUEST algorithm first selects the primary variable and determines its split point, making it unbiased towards categorical variables. A quadratic discriminant analysis (QDA) is used to merge multiple variable classes into two super-classes, and then binary split is performed [70; 71; 72]. If there are two binary split points, the QUEST algorithm chooses the one closer to the sample mean. The algorithm is constructed by selecting a split independent variable, and after selecting a split point for the selected independent variable, it stops. A pseudocode is presented in Algorithm 1. to provide a clear overview of the QUEST algorithm. The pseudocode is presented in the same form as in similar studies in this domain. The pseudocode is further explained in more detail on how to apply the QUEST algorithm to the dataset. The steps are as follows:  
Step 1: Set the level of significance \(\alpha\), where \(\alpha\in\) (0,1). \(\alpha\) = 0.05. Step 2: Determine the number of independent variables, M. In the survey data, we have 8 independent variables, which are Manager Age, Manager Gender, Manager Education, Enterprise Size, Business Performance, Awareness of ICT Importance, Intellectual Capital, and Market Assessment. We also have 1 dependent variable, which is Intentions to Implement ICTs. Among the 8 independent variables, 5 are categorical (Manager Gender, Manager Education, Enterprise Size, Awareness of ICT Importance, and Market Assessment), and 3 are continuous (Manager Age, Business Performance, and Intellectual Capital). Step 3: For each continuous independent variable X, compute the smallest \(p\)-value using the ANOVA F-test to test if all categories of the dependent variable have the same mean as X, and compute the smallest \(p\)-value using [PERSON]'s chi-squared (\(\chi^{2}\)) statistic to test if all categories of X have the same distribution across the dependent variable. For each categorical independent variable X, perform [PERSON]'s \(\chi^{2}\) test for independence between Y and X, and find the \(p\)-value using the \(\chi^{2}\) statistic. We can use the scipy.stats module in Python to perform these statistical tests and compute the \(p\)-values. Step 4: Identify the independent variable with the smallest \(p\)-value and denote it as X*. If the smallest \(p\)-value is less than \(\alpha\)/M, where M is the total number of independent variables, then SELECT X* as the predictor for splitting the node. Otherwise, go to step 5. Step 5: If all independent variables have been tested and none have a \(p\)-value less than \(\alpha\)/M, stop the splitting process and form a leaf node with the majority class label of the samples in the node. Otherwise, repeat steps 3 to 5 for each child node. ```
1. Specify the level of significance \(\alpha\), where \(\alpha\in\) (0,1)
2. alpha = 0.05
3. Set M as the total number of independent variables. Let M1 be the number of continuous and ordinal variables. 4. M = total_num_independent_vars
5. M1 = num_continuous_ordinal_vars
6.