# Singular Value Decomposition (SVD) of a three dimensional Array

The Singular Value Decomposition (SVD) of a matrix is $$A_{m\times n} = U_{m\times m}\Lambda_{m\times n} V_{n\times n}'$$ where $U$ and $V$ are orthogonal matrices and $\Lambda$ has (i, i) entry $\lambda_i \geq 0$ for $i = 1, 2, \cdots , min(m, n)$ and the other entries are zero. Then the left singular vectors $U$ for rows of matrix and right singular vectors $V$ for columns of matrix can be plotted on the same graph called bi-plot.

I'm wondering how to do the SVD of a three dimensional array and plot the singular vectors on the same graph like bi-plot.

Thanks

• The singular value decomposition is a decomposition because it decomposes $A$ into a product. Thus, to define something similar for three-dimensional arrays, you'd need to define a product of three-dimensional arrays. It's not clear what this could be, since the product of matrices is intimately related to their role in describing linear transformations between two vector spaces, and there is no similar role for three-dimensional arrays. If you really want to do this, you should think about how to define a product first. But why do you? Apr 13, 2011 at 6:04
• please do not cross-post. Apr 13, 2011 at 7:10
• I am interested in this as well. Previously I found some papers on "Higher-order singular value decomposition) and "PARAFAC-CANDECOMP" but I haven't taken a detailed look at them. Apr 13, 2011 at 10:33
• I believe what you are after is the Higher order singular value decomposition, which for a 3D array is known as the Tucker3 model. In R you can calculate it using function tucker in the multiway package. No idea if the concept of biplots could be extended to the multiway case though... Feb 27, 2017 at 16:37