This is an entry-level question for multiway matrix decompositions. I have a set/population $k$ of entities (here biological cells) for each of which I also have a number ($l$) of flavours of length $N$ vectors (genetic-like measurements for which $N \gg k$) which characterise them. Now if I take just one type of vector, and look at its values across all of the entities (cells), I do a PCA since I effectively have a $k \times N$ (depending on convention) array which I can explore in the conventional. If I repeat this analysis $l$ times for each flavour of the vector, I get $l$ very similar analyses but I would like to take an overall view. My question is this:

  • is it possible (or reasonable) to approach this as a multiway analysis on an $l \times k \times N$ data source says using a Tucker factorisation/tensor decomposition?

  • is this the most appropriate approach?

  • are there any available resources, papers or books that I should read to understand this?

The aim is to understand how the different vector flavours (types of genetic-like information) differ in the characterisation of the cells.

I'm currently working with the rTensor package in R which I think may be based upon a similar one in MATLAB. I have a maths background and am in principle not afraid of tensors although this would be the first time I have used them for data analysis.

  • $\begingroup$ Silly question, but why not try it? Do the results match up with your expectations? Do they match up with the PCA results to an extent (they ought to, to a degree...) $\endgroup$ – dr.blochwave May 17 '16 at 20:27
  • $\begingroup$ No, not a silly question. You're right, that is often the only way to give you a feel. I'm just wondering if there is anything more formal out there that can also help or if there is not a better method I should be using instead. $\endgroup$ – drw May 18 '16 at 15:43
  • $\begingroup$ Well there are things you can do if for example the data is "count data", or is non-negative. e.g. look here: bsp.brain.riken.jp/~zhougx/tensor.html for MATLAB code $\endgroup$ – dr.blochwave May 18 '16 at 16:01
  • 1
    $\begingroup$ The Tucker decomposition expresses a big "cube" of data as the projection of a smaller "cube" of data, but we are left with the confusing task of trying to interpret that smaller "cube". Based on your description, it appears that you are really after the canonical tensor decomposition. Although it is formally NP-hard to compute, many heuristics do exist. The MATLAB toolbox tensorlab is great, and its documentation gives a nice tutorial on some of these ideas. $\endgroup$ – Richard Zhang May 18 '16 at 17:05
  • $\begingroup$ See e.g. arxiv.org/abs/1410.2386 for Bayesian CP factorization. $\endgroup$ – dr.blochwave May 18 '16 at 17:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.