0
$\begingroup$

I have data in the form of a $n \times t$ matrix $X$ where $n$ is a number of variables and $t$ a (large) number of time points. At any given time point the elements of the matrix can be expressed as a proportion of the column sum of all elements at that time point. So, for example, summing all elements in the first column of $X$, $X_{.1}$, yields a sum $S_1$ so that we have $X_{.1}/S_1$ a vector of proportions of contributions of $X_{.1}$ to $S_1$. Across all columns $t$ there are $t$ vectors of proportions that form a new matrix $P$.

Here is an example:

(X <- matrix(1:15,5,3))
(S <- apply(X,2,sum))
(P <- t(t(X) / S))             # divide each column i by S[,i]

I need a learning algorithm, I guess unsupervised, that tells me for $X$ what are the dominant contributions to $S$. $X$ is too large to do this by inspection. A visual technique may be also an option.

An obvious choice may be for example to take apply(P, 1, mean) but it obscurs trends across time. I need a better understanding (low dimensional representation) of what is happening in $X$.

$\endgroup$
2
  • $\begingroup$ What's the problem with simply plotting, say, all variables that are ever among the five largest variables at any time step? What kind of information are you hoping to gain over that? $\endgroup$
    – Danica
    Commented Mar 22, 2017 at 19:58
  • $\begingroup$ @Dougal This is actually a very good idea and a good question. One thing I'd be missing is some measure of all variables' importance across time, but perhaps this is what `apply(P, 1, mean)´ gives. Also I'd be concerned this is still too much information for a single plot (if $n$ is large and there is lots of variance in the importance over time). I have to give your question some more thought and will try your suggestion in the meantime. $\endgroup$
    – tomka
    Commented Mar 22, 2017 at 20:08

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.