A New Algorithm for Computing Disjoint Orthogonal Components in the Three-Way Tucker Model

One of the main drawbacks of the traditional methods for computing components in the three-way Tucker model is the complex structure of the final loading matrices preventing an easy interpretation of the obtained results. In this paper, we propose a heuristic algorithm for computing disjoint orthogonal components facilitating the analysis of three-way data and the interpretation of results. We observe in the computational experiments carried out that our novel algorithm ameliorates this drawback, generating final loading matrices with a simple structure and then easier to interpret. Illustrations with real data are provided to show potential applications of the algorithm.


Introduction
The multivariate methods offer a simplified and descriptive look at a set of multidimensional data, where individuals and variables are numerous. These data are often organized in a matrix or two-way table and, for their analysis, there is a wide theoretical background. In addition, in this context, three-way (or three-mode) tables or three-order tensors can be obtained when a new way, such as time or location, is introduced into the two-way table; see more details in [1].
Tensor decomposition emerged during the 20th century [2] and, as mentioned in [3], Tucker [4] was responsible for its use within a multivariate context in the sixties, whereas, later on, in the seventies, Harshman [5] and Carroll and Chang [6] continued the use of tensor decomposition in multivariate methods.
The analysis of three-way tables attempts to identify patterns in the space of individuals, of variables, and of times (or situations in general), searching for robust and easy-to-interpret models in order to discover how individuals and variables are related to entities in the third mode [7].
The three-way Tucker model (or Tucker3 from hereafter as Tucker) is a tensor decomposition that allows for the generalization of a principal component analysis (PCA) [8,9] to three-way tables. This multivariate method represents the original data in lower dimensional spaces, enabling pattern recognition. Furthermore, it is possible to quantify the interactions between entities in three-modes.
Similar to what occurs with a PCA, each mode of a three-way table can be represented in spaces of lower dimension than the original spaces [10]. These spaces are featured by the principal axes (components), which maximizes the total variance and they are linear combinations of the original entities [11]. Within the space of each mode, the interpretation of these axes is done in accordance with the values of their components (loadings). Therefore, interpretation can sometimes be difficult, leading to inaccurate characterization of these new axes. Thus, it is desirable that each principal component or axis has few entities that contribute to the variability of the component in a relevant manner.
There are several theoretical approaches to yield tensor decomposition that have components with some of their loadings being equal to zero. This is useful for facilitating the analysis, and the interpretation of the three-way tables, such as the sparse parallelizable tensor decomposition used in scattered components works [12]. The sparse hierarchical Tucker model focuses on factoring high order tensors [13]. In addition, the tensor truncated power searches for a sparse decomposition by choosing variables [14]. An algorithm for the sparse Tucker decomposition that sets an orthogonality condition for loading matrices and sparse conditions in the core matrix was proposed by [15].
Unlike sparse methods, disjoint methods in two-way tables search for a decomposition with a loading matrix that has a single column (latent variable) with non-zero input for each row (original variable). Furthermore, there is at least one row with a non-zero entry for each column of the loading matrix. Hence, it is possible to obtain loading matrices of simple structure that facilitate the interpretation. A method that allows for disjoint orthogonal components in a two-way table to be calculated was presented in [16]. Recently, an algorithm that is based on particle swarm optimization was proposed by [17], which consists of a disjoint PCA with constraints for the case of two-way tables. To the best of our knowledge, there are no methods for computing disjoint orthogonal components in three-way tables.
The objective of this work is to propose a heuristic algorithm that extends the existing methods of two-way tables to three-way tables. This proposal computes disjoint orthogonal components in loading matrices of a Tucker model. We introduce a procedure that suggests routes in which the proposed algorithm can be used. We call this new algorithm as DisjointTuckerALS, because this is based on the alternating least squares (ALS) method.
The remainder of the paper is organized as follows. Section 2 defines what a disjoint orthogonal matrix is and presents an optimization mathematical problem that must be solved in order to calculate disjoint orthogonal components in the Tucker model. In Section 3, we introduce the DisjointTuckerALS algorithm. Section 4 carries out the numerical applications of the present work regarding computational experiments in order to evaluate the performance of our algorithm, as well as illustrations with real data to show its potential applications. Finally, in Section 5, the conclusions of this study are provided, together with some final remarks, limitations, a wide spectrum of additional applications that are different from those presented in the illustration with real data, and ideas for future research.

The Tucker Model and the Disjoint Approach
In this section, we present the structure of three-way tables and define the Tucker model, as well as a disjoint approach for this model. Tables   A three-way table represents a data set with three-modes as individuals, variable, and situations, which is a three-dimensional array or a third-order tensor. Note that tensors have three variation modes: A-mode (with I individuals); B-mode (with J variables); and, C-mode (with K situations).
The tensor X can be converted into a two-way table while using a process of matricization. In this work, we use three types of supermatrices: A-mode that yields a matrix X A of order I × JK, B-mode that yields a matrix a X B of order J × IK, and C-mode that yields a matrix X C of order K × I J. These supermatrices are defined as in [3], where X A , X B , and X C are known as frontal, horizontal, and vertical slices matrices, respectively.

The Tucker Model
Tucker is a multilinear model that approximates the three-way table X while using a dimensional reduction on its three-modes. The Tucker tensor decomposition of X = (x ijk ) is given by wherex ijk = ∑ P p=1 ∑ Q q=1 ∑ R r=1 a ip b jq c kr g pqr , with a ip , b jq , and c kr being the corresponding elements of the matrices A = (a ip ) of order I × P, B = (b jq ) of order J × Q, and C = (c kr ) of order K × R, which are called component or loading matrices. In addition, g pqr that is defined in (1) is the pqr-th element of the tensor G = (g pqr ) of order P × Q × R, which is called core and it is considered a reduced version of the tensor X. Integers P < I, Q < J, and R < K represent the number of components required on each mode, respectively. Thus, for instance, the matrix A contains P columns that represent the new referential system of the individuals. Note that E = (e ijk ) of order I × J × K is a tensor of model errors.
The Tucker model can be represented by matrix equations that are based on all modes [3], which are stated as where ⊗ is the Kronecker product. Furthermore, G A of order P × QR, G B of order Q × PR, and G C of order R × PQ, defined in (2), (3), and (4), are the frontal, horizontal, and vertical slices matrices from the core G, respectively. Observe that E A , E B and E C are the corresponding error matrices. An algorithm that is based on the ALS method and singular value decomposition (SVD) is used in order to compute the orthogonal components in the Tucker model, called the TuckerALS algorithm [10]. Note that the ALS method partitions the way of computing the three loading matrices by fixing two of them and identifying the third matrix. This is done iteratively until the matrices do not differ significantly (for example, ||A − A −1 || < 10 −5 ; ||B − B −1 || < 10 −5 ; ||C − C −1 || < 10 −5 ), or if a maximum number of iterations (for example, 100) is attained, which are called TuckerALS stopping criteria.
The goodness-of-fit tells us how good an approximation between the original tensor and the solution that was obtained by the algorithm is. This goodness-of-fit is computed by the expression defined as Algorithm 1 summarizes the TuckerALS method. The loading matrices A, B, C, and the supermatrix G A are the output of the TuckerALS algorithm. The DisjointTuckerALS algorithm that we propose in this paper uses an adapted version of Algorithm 1. The notation B ← svd(X B , Q) means that B is a matrix whose columns are the first Q left singular vectors of X B .

Disjoint Approach for the Tucker Model
Let X = (x ij ) be a matrix of order I × J. Afterwards, we say that X is disjoint if and only if: • For all i ∃! j, such that x ij = 0.
• For all j ∃ i, such that x ij = 0.

Algorithm 1: TuckerALS begin
Input: X, P, Q, R; From X, compute X A , X B and X C ; If X also satisfies X X = I J , where I J is the identity matrix of order J × J, we say that X is a disjoint orthogonal matrix. The following is an example of a disjoint orthogonal matrix: The optimization mathematical problem to be solved with the DisjointTuckerALS algorithm, when the three loading matrices A, B, and C are required to be disjoint orthogonal, is stated as Subject to: where · is the Frobenius norm, and I P , I Q , I R are identity matrices of order P × P, Q × Q, and R × R, respectively. Note that the number of decision variables of this model is IP + JQ + KR + PQR. The constraints that are given in (7)-(9) are needed in order for columns of each loading matrix to form an orthonormal set. In the previous mathematical problem, the objective function that is defined in (6) is minimized, but, in practice, the fit is calculated according to (5). In order to obtain a simple structure in a loading matrix for three-way tables, there are some known techniques called: scaling, rotation, and sparse. We propose a disjoint technique by the design and implementation of the DisjointTuckerALS algorithm. This requires a reduction of the three-modes and can be obtained up to three disjoint orthogonal loading matrices. Several methods for obtaining disjoint orthogonal components for two-way tables have been derived; see [16,18,19]. If A, B, C are disjoint matrices, the mathematical model defined in (6) can be solved while using the TuckerALS method stated in Algorithm 1 and then the orthogonal components may be obtained for the Tucker model.

Illustrative Example
We show the benefit of using the DisjointTuckerALS algorithm through a computational experiment for a three-way table that was taken from [7] and adapted by [20]. This small data set is provided in Tables 1-4, which show three-way tables with I = 6 individuals, J = 4 variables, and K = 4 situations, where the behavioral levels are measured. Table 1. Matrix of situation 1: "applying for an examen" for behavioral level data.   Table 3. Matrix of situation 3: "family picnic" for behavioral level data.  The four matrices of order 6 × 4 that are presented in Tables 1-4 correspond to the different scenarios or situations in which the levels of behavior are evaluated. Components are chosen and the TuckerALS algorithm is executed to obtain orthogonal components, with a model fit of 99.84%, as in [7], and P = Q = R = 2. When the DisjointTuckerALS algorithm is executed, the model fit is 98.10%.

Sensitive Caring Thorough
Loading matrices A, B, and C that were obtained with both the TuckerALS and DisjointTuckerALS algorithms are reported in Tables 5-10. Disjoint orthogonal components were calculated for the loading matrices A, B, C, and reported in Tables 6, 8, and 10, respectively. The first component of the loading matrix A represents femininity and the second component masculinity; see Tables 5 and 6. These tables allow us to affirm that the DisjointTuckerALS algorithm can identify the disjoint structure that lies in the individuals. For the loading matrix B, the first component represents the emotional state and the second component is awareness; see Tables 7 and 8. From these tables, note that the DisjointTuckerALS algorithm is able to identify the disjoint structure in the variables. For the loading matrix C, the algorithm is able to group the four situations into two clusters; see Tables 9 and 10. From Table 10, note that the first component is related to social situations and the second component to performance situations. Table 5. Loading matrix A with the TuckerALS algorithm for behavioral level data. Table 6. Loading matrix A with the DisjointTuckerALS algorithm for behavioral level data.  Table 9. Loading matrix C with the TuckerALS algorithm for behavioral level data.

Social Situations Performance Situations
Applying for an examen −0.  Table 10. Loading matrix C with the DisjointTuckerALS algorithm for behavioral level data.

Social Situations Performance Situations
Applying for an examen 0 −0.827376571 Giving a speech 0 −0.561647585 Family picnic −0.633810357 0 Meeting a new date −0.773488482 0 Tables 11 and 12 show the core G that was obtained with both of the algorithms. When observing both cores, it can be interpreted that women in social situations are mainly emotional and less aware. Conversely, men in the same situations are less emotional and more aware. In addition, in performance situations, women are mostly aware, while men are more aware than emotional in the same situations. The TuckerALS and DisjointTuckerALS algorithms yield different G cores, but they are interpreted in the same manner. When a three-way table is analyzed while using the Tucker model, it is important to point out that the loading matrices A, B and C are not always easily interpreted [7]. In many situations, these matrices need to be rotated (where any rotation is compensated in core G) in order to identify a simple structure that allows for interpretation. However, rotating the matrices does not guarantee that a simple structure is achieved. Therefore, the use of a sparse technique would be an alternative option. Nevertheless, it is worth mentioning that we have a loss of fit when using a sparse technique, which does not happen with rotations.
It is possible to rotate only the matrix B or, alternatively, the matrices B and C can be simultaneously rotated in order to obtain a simple structure, thus improving the interpretation,. However, in some cases, the data analyst can opt to rotate the three loading matrices at the same time. Similarly, in the DisjointTuckerALS algorithm, disjoint orthogonal components can be chosen in a unique matrix, for example B; in two matrices, for example B and C; or even in the three loading matrices.
The DisjointTuckerALS algorithm was executed with the same three-way table considering all possible combinations of disjoint orthogonal components in the loading matrices A, B, and C. Table 13 reports the results of comparing different settings. From Table 13 and using the expression defined in (5), note that we lose fit when disjoint orthogonal components are required in the three loading matrices. It is important to consider that there is a loss of fit when using the disjoint technique, although interpretable loading matrices are achieved. Note that there is a tradeoff between interpretation and speed, because the DisjointTuckerALS algorithm takes longer than the TuckerALS algorithm. For details regarding the computational time (runtime) of the algorithms that are presented in Table 13, see Section 4.1.  (10) subject to B B = I Q , with B being a disjoint matrix, where X is the data matrix of order I × J, with I individuals and J variables, A is the scoring matrix of order I × Q, and B is the loading matrix of order J × Q. Note that Q < J is the number that is required for the components in the variable mode. Here, we use a greedy algorithm, known as the DisjointPCA algorithm proposed by [16], in order to find a solution to the minimization problem defined in (10). The DisjointPCA algorithm plays a fundamental role for the operation of the DisjointTuckerALS algorithm.
The notation B ← vs(X, Q, Tol) means that the DisjointPCA algorithm with a tolerance Tol is applied to the data matrix X, and then the disjoint orthogonal loading matrix B, with Q components, is obtained as a result. Recall that the DisjointPCA algorithm was proposed by Vichi and Saporta [16] reason why we use the acronym "vs" in the above notation. Note that Tol is a tolerance parameter that represents the maximum distance allowed in the model fit for two consecutive iterations of the DisjointPCA algorithm. The above notation is used in order to explain how the DisjointTuckerALS algorithm works; see [16,21] for more details on the DisjointPCA algorithm.

The DisjointTuckerALS Algorithm
In this section, we derive the DisjointTuckerALS algorithm in order to compute from one to three disjoint orthogonal loading matrices for the Tucker model. Next, we explain how the DisjointTuckerALS algorithm works.

The Stages of the Algorithm
The DisjointTuckerALS algorithm has three stages and its input parameters are: Input: X, P, Q, R; From X, compute X A , X B and X C ; This second stage is where the disjoint orthogonal loading matrices are computed. In order to obtain P, Q, and R disjoint orthogonal components in the loading matrices A, B, and C, the DisjointPCA algorithm is applied to the matrices Y A , Y B and Y C , respectively. If A is required to be disjoint orthogonal, then we have that: A ← vs(Y A , P, Tol). If B is required to be disjoint orthogonal, then we have that: B ← vs(Y B , Q, Tol). If C is required to be disjoint orthogonal, then we have that: C ← vs(Y C , R, Tol).

Stage 3 [Computation of non-disjoint orthogonal loading matrices and of the core]
This final stage is where the non-disjoint orthogonal loading matrices are computed. For instance, if it is required that only the matrix B has disjoint orthogonal components (see Figure 1), then an ALS algorithm must be applied in order to compute loading matrices A and C (with the B matrix being fixed). The same occurs in the TuckerALS algorithm, initializing A or C. In addition, if it is required that the matrices B and C have disjoint orthogonal components (see Figure 2), then the loading matrix A is calculated while using the following two steps (the matrices B and C are fixed), as in the TuckerALS algorithm: (1) Y A ← X A (C ⊗ B); and (2) A ← svd(Y A , P). If A, B and C are required to be disjoint orthogonal (see Figure 3), then no calculation is necessary in the loading matrices. Therefore, the DisjointTuckerALS algorithm must compute the core while using two steps. Thus, by using the frontal slices equation from G, we have that: (1) Y A ← X A (C ⊗ B); and (2) G A ← A Y A . The DisjointTuckerALS algorithm finishes by providing the matrices A, B and C, the core G, and the fit of the model.

Using the DisjointTuckerALS Algorithm
We summarize our proposal in Algorithm 3 in order to explain the use of the Disjoint-TuckerALS algorithm when performing a component analysis for three-way tables with the Tucker model.
Computing the disjoint orthogonal components in Step 7 simultaneously in the three loading matrices is up to the analyst. However, it is not recommendable, due to the significant loss of fit that we have observed in the different computational experiments that were carried out. When more disjoint orthogonal loading matrices are computed, there is less fit in the model and more processing time is required. More than one technique can be used by combining Step 5, Step 6, and Step 7. Subsequently, the results can be compared in Step 8; see Figure 4.
Do the loading matrices A, B and C converge?
Do the loading matrices A and C converge?

Begin
Input: X, P, Q, R, ALSMaxIter, Tol Do the loading matrices A, B and C converge?

Algorithm 3: Procedure for using DisjointTuckerALS
Step 1. Collect the data in a three-way table X of order I × J × K, where I is the number of individuals, J is the number of variables, and K is the number of situations. Step 2. Preprocess X according to the analyst's criterion.
Step 3. Determine the number of components P, Q and R on each mode, A-mode, B-mode and C-mode, respectively. Step 4. Perform a usual PCA with the tensor X, that is, compute the loading matrices for example with the TuckerALS algorithm. If the loading matrices A, B and C have a simple structure (easy to interpret), go to Step 8.
Step 5. Apply either scaling or rotation techniques to keep the fit. If the loading matrices have a simple structure, go to Step 8. Step 6. Use a sparse technique. If the loading matrices are simple, go to Step 8.
Step 7. Employ a disjoint technique by computing disjoint orthogonal components using the DisjointTuckerALS algorithm, and continue to Step 8. Step 8. Report the results and obtain conclusions.

Begin
Input: X, P, Q, R, ALSMaxIter, Tol Do the loading matrices A, B and C converge?

Numerical Results
In this section, we carry out computational experiments in order to evaluate the performance of our algorithm. The first experiment corresponds to data that are simulated to generate a three-way table with a disjoint structure according to the Tucker model. The second one is an experiment using real data that correspond to a three-way table taken from [22]. In this section, we also provide details of some computational aspects, such as runtimes of the algorithm, characteristics of the hardware, and software used, among others.

Begin
Step 1: Collect the data in a three-way table Step 2: Preprocess the data Step 3: Determine P , Q and R on each A-mode, B-mode and C-mode Step 4: Perform a PCA with X. Do the loading matrices have a simple structure?
Step 5: Apply either scaling or rotation techniques. Do the loading matrices have a simple structure?
Step 6: Use a sparse technique. Do the loading matrices have a simple structure?
Step 7: Calculate the loading matrices with disjoint components Step 8: Analyze the results and conclusions

Computational Aspects
We must mention that the DisjointTuckerALS algorithm requires more computational time (runtime) than the TuckerALS algorithm. This is explained, because, as the number of loading matrices calculated as disjoint increases, the time that is required for their calculation also increases, consuming more computational resources of memory and processor.
The computational experiments were carried out on a computer with the following hardware characteristics: (i) OS: Windows 10 for 64 bits; (ii) RAM: 8 Gigabytes; and (iii) processor: Intel Core i7-4510U 2-2.60 GHZ. Regarding the software, the following tools and programming languages were used: (i) development tool-IDE-: Microsoft Visual Studio Express; (ii) programming language: C#.NET; and, (iii) statistical software: R.
The DisjointPCA, TuckerALS, and DisjointTuckerALS algorithms that are presented in this paper to perform all of the numerical applications were implemented in C#.NET as the programming language mainly for the graphical user interface (GUI) of data entry, control of calculations, and delivery of results. Data entry and presentation of results were carried out with Excel sheets. Communication between C#.NET and Excel was established through a connector known as COM+. Some parts of the codes developed were implemented while using the R programming language for random number generation and SVD. Communication between C#.NET and R was stated with R.NET as a connector, which can be installed in Visual Studio with a package named NuGet, whereas SVD was performed with an R package named irlba. This package quickly calculates the partial SVD, that is, those SVD which use the first singular values, but we must specify the number of singular values to be calculated. Therefore, the irlba package does not use nor compute the other singular values, accelerating the calculations for big matrices, such as frontal, horizontal, and vertical slices matrices of a three-way table.

Generator of Disjoint Structure Tensors
We design and implement a simulation algorithm to randomly build a three-way table with a disjoint latent structure in its three-modes. Subsequently, the DisjointTuckerALS algorithm should be able to detect that structure, since it uses a Tucker model with disjoint orthogonal components.
Let X be a three-way table with I individuals, J variables, and K times or locations. Assume that: (i) the first mode, which is related to the loading matrix A, has P latent individuals (P < I); (ii) the second mode, which is related to the loading matrix B, has Q latent variables (Q < J); and, (iii) the third mode, which is related to the loading matrix C, has R latent locations (R < K). Suppose that sx 1 , . . . , sx I are the I original individuals. In addition, sy 1 , . . . , sy P are the P latent individuals. We consider the linear combination that is given by sy p = a 1,p sx 1 + · · · + a I,p sx I , p = 1, . . . , P.
If it is required that the m original consecutive individuals, sx n , sx n+1 , . . . , sx n+(m−1) , are represented by the latent individual sy p , then the scalars a n,p , a n+1,p , . . . , a n+(m−1),p are defined as independent random variables with discrete uniform distribution, whose support is the closed set of integer numbers from 70 to 100. The other scalars in the same linear combination are defined as independent random variables with discrete uniform distribution, whose support is the closed set of integer numbers from one to 30. This procedure must be performed for each p from 1 to P, since each original individual must have a strong presence in a unique latent individual. The Gram-Schmidt orthonormalization process is applied to the matrix of order I × P, which has the scalars from all the linear combinations. Hence, a disjoint dimensional reduction of the loading matrix A is achieved. Similarly with the loading matrix B, consider that vx 1 , . . . , vx J are the J original variables. In addition, vy 1 , . . . , vy Q are the Q latent variables. We consider the linear combination that is stated as If it is required that the m consecutive original variables vx n , vx n+1 , . . . , vx n+(m−1) are represented by the latent variable vy q , then the scalars b n,q , b n+1,q , . . . , b n+(m−1),q are defined as independent random variables with discrete uniform distribution, similarly as for the matrix A. In the same manner as before, this procedure must be performed for each q from 1 to Q and the Gram-Schmidt orthonormalization process is again applied, as in the case of A, and then a disjoint dimensional reduction of B is achieved.
Analogously with C, let tx 1 , . . . , tx K be the K times or original locations and ty 1 , . . . , ty R be the R latent times or latent locations. We consider the linear combination that is expressed by ty r = c 1,r tx 1 + . . . + c K,r tx K , r = 1, . . . , R.
If it is required that the m consecutive original locations tx n , tx n+1 , . . . , tx n+(m−1) are represented by the latent location ty r , then the scalars c n,r , c n+1,r , . . . , c n+(m−1),r are defined as with A and B, and the procedure is applied for each r from 1 to R. Once again, the Gram-Schmidt orthonormalization process is applied to the matrix of order K × R that has the scalars from all of the linear combinations. Thus, a disjoint dimensional reduction of the loading matrix C is achieved.
The Core G must be of order P × Q × R. With no loss of generality, suppose that the inputs of that three-way table are independent random variables with continuous uniform distribution in the interval [−50. 50]. In order to complete the creation of X, the matrix equation is defined as The matrix X A of order I × JK stated in (14) has the frontal slices of X, whereas the matrix G A of order P × QR has the frontal slices of G. Equations (11)- (13) are used in order to build the random loading matrices. The algorithm that builds the three-way random table X of order I × J × K must implement an application ϕ that is expressed as which is subject to P < I, Q < J and R < K, where T I×J×K is the set of all three-way tables with entries in the real numbers. Additionally, it must satisfy that where α p is the number of original individuals in the p-th latent individual; β q is the number of original variables in the q-th latent variable; and γ r is the number of original locations in the r-th latent location. The application ϕ that is defined in (15) must randomly provide a three-way table X of order I × J × K that has a simple structure, which is expected to be detected by the DisjointTuckerALS algorithm.

Applying the DisjointTuckerALS Algorithm to Simulated Data
Next, we show how the DisjointTuckerALS algorithm works by using the application ϕ in order to generate a three-way table X of order 20 × 18 × 17. According to the definition of ϕ given in (15), the values of P, Q, R are 3, 4 and 5 respectively. Furthermore, constraints stated in (16) are satisfied. The other parameter setting is given by ALSMaxIter = 100 and Tol = 0.00001. The TuckerALS and DisjointTuckerALS algorithms were executed while using the data ϕ(20, 18, 17, 3, 4, 5, {5, 7, 8}, {3, 4, 5, 6}, {2, 3, 3, 4, 5}), obtaining a fit of 94.73% and 92.79%, respectively; see Table 14. As expected, we have a loss of fit valued at 1.94%. However, there is a gain in interpretation, because a simple structure in the three loading matrices is obtained. Table 15 reports the loading matrix A. Note that the DisjointTuckerALS algorithm is able to identify the disjoint structure in the first mode. Observe that five original individuals are represented by the first disjoint orthogonal component. The next seven original individuals are represented by the second disjoint orthogonal component. In addition, the last eight original individuals are represented by the third disjoint orthogonal component. Table 16 shows the loading matrix B. The fact that the DisjointTuckerALS algorithm is able to identify a disjoint structure in the second mode is highlighted. The algorithm is able to recognize the way in which the latent variables group the original variables. Table 17 presents the loading matrix C and, once again, note that the DisjointTuckerALS algorithm identifies the disjoint structure in the third mode.       The DisjointTuckerALS algorithm also recognizes the manner in which the latent locations group the original locations and the three loading matrices are easily interpreted. However, when running the TuckerALS algorithm, the three loading matrices do not allow for an easy interpretation. Note that the disjoint approach can be complemented with rotations and sparse techniques for better analysis.

Applying the DisjointTuckerALS Algorithm to Real Data
Next, the DisjointTuckerALS algorithm is executed with a three-way table X of order 24 × 20 × 38 with real data being taken from [22]. Note that K = 38 Japanese university students evaluate I = 24 Chopin's preludes while using J = 20 bipolar scales. The preprocessing of the data and the number of components in each mode have been chosen in the same manner, as in [22]. Table 18 reports the model fit in four different scenarios with P = 2, Q = 3, and R = 2. The full data set can be downloaded from http://three-mode.leidenuniv.nl.
For a comparative analysis, the loading matrix that is related to Chopin's preludes is chosen. Table 19 reports the loading matrix A obtained while using the TuckerALS algorithm. In [22], this matrix is not interpreted and they proceed to make rotations. Table 20 provides the final loading matrix A used for interpretation. The first component is named "fast+minor, slow+major" and the second component is named "fast+major, slow+minor". Table 21 presents the loading matrix A that was obtained with the Dis-jointTuckerALS algorithm. Note that, with the loading matrix A of Table 21, the same conclusions are reached as with the loading matrix A of Table 20.

Conclusions, Discussion, Limitations, and Future Research
The main techniques for dimensionality reduction, pattern extraction, and classification in data obtained through tensorial analysis have been based on the Tucker model. However, a big problem of the existing techniques is the interpretability of their results. In this work, we have proposed a heuristic algorithm for computing the disjoint orthogonal components in a three-way table with the Tucker model, which facilitates the mentioned interpretability. The DisjointTuckerALS algorithm is based on a combination of the Tuck-erALS and DisjointPCA algorithms. The results that were obtained in the computational experiments have shown that the main benefit of the proposed algorithm is its easiness of direct interpretation in the loading matrices without using rotational methods or sparse techniques. Computational experiments have suggested that the algorithm can detect and catch disjoint structures in a three-way table according to the Tucker model. In summary, this paper reported the following findings: (i) A new algorithm for computing disjoint orthogonal components in a three-way table with the Tucker model was proposed. (ii) A measure of goodness of fit to evaluate the algorithms presented was proposed. (iii) A optimization mathematical model was used. (iv) A numerical evaluation of the proposed methodology was considered by means of Monte Carlo simulations. (v) By using a case study with real-world data, we have illustrated the new algorithm.
Numerical experiments of the proposed algorithm with simulated and real data sets allowed us to show its good performance and its potential applications. We obtained a new algorithm that can be a useful knowledge addition to the multivariate tool-kit of diverse practitioners, applied statisticians, and data scientists.
Some limitations of our study, which could be improved in future works are the following: (i) There is no guarantee that the optimal solution is attained due to the heuristic nature of the DisjointTuckerALS algorithm.
(ii) In the absence of additional constraints to those inherent to the original problem, the space of feasible solutions contains the global optimum. However, by incorporating the constraints of the DisjointTuckerALS algorithm, the space of feasible solutions is compressed, which aims to find a solution that is as close as possible to the global optimum within this new set of feasible solutions. For this reason, the fit corresponding to the solution provided by the DisjointTuckerALS algorithm is less than the fit achieved by the TuckerALS algorithm. Nevertheless, the incorporated constraints allow us to put zeros in the positions of the variables with low contribution into a component of the loading matrix, which permits us to interpret the components more clearly. (iii) The proposed algorithm takes longer than the TuckerALS algorithm, so that a tradeoff between interpretation and speed exists.
In order to motivate readers and potential users, a wide spectrum of additional applications of the new algorithm with real three-way data in diverse areas is the following: (i) Functional magnetic resonance imaging (fMRI) has been successfully used by the neuroscientists for diagnosis of neurological and neurodevelopmental disorders. The fMRI has been analyzed by means of tensorial methods while using the Tucker model [23]. (ii) Component analysis in three-way tables also has application in environmental sciences. For example, in [24], through the multivariate study of a sample of blue crabs, a hypothesis is tested that environmental stress weakens some organisms, since the normal immune response is not able to protect them from a bacterial infection. A Tucker model was used for this analysis. (iii) The data of the price indexes in search of behavior patterns using the Tucker decomposition were analyzed in [25]. The DisjointTuckerALS algorithm can be used for detecting these patterns. (iv) An application in economy on the specialization indexes of the electronic industries of 23 European countries of the Organisation for Economic Co-operation and Development (OECD) based on three-way tables is presented in [1]; see also http: //three-mode.leidenuniv.nl. Applications in stock markets and breakpoint analysis for the COVID-19 pandemic can be also considered [26]. Some open problems that arose from this study are the following: (i) We believe that the disjoint approach can be used together with existing techniques.
(ii) A study that allows for obtaining a disjoint structure in the core of a Tucker model to facilitate their interpretation is of interest. (iii) A bootstrap analysis for the loading matrices can be performed. (iv) Regression modeling, errors-in-variables, functional data analysis, and PLS regression, based on the proposed methodology are also of interest [27][28][29][30]. (v) Other applications of the algorithm developed in the context of multivariate methods are: discriminant analysis, correspondence analysis, and cluster analysis, as well as the already mentioned functional data analysis and PLS. (vi) There is also a promising field of applications in the so-called statistical learning; for example, for image compression.
Therefore, the new methodology that was proposed in this study promotes new challenges and opens issues to be explored from the theoretical and numerical perspectives. Future articles reporting research on these and other issues are in progress and we hope to publish their findings. Institutional Review Board Statement: Not applicable.
Informed Consent Statement: Not applicable.

Data Availability Statement:
The data used to support the findings of this study are available in this paper, in the links there provided or from the corresponding author upon request.