I calculated the index of complexity, longitudinal entropy, and turbulence for my data. The first two indicators vary from 0 to 1, whereas turbulence varies between 1 and 16 for one dataset and between 1 and 11 for the other. Is it possible to "normalize" the turbulence somehow, so that it will fit the same scale as the other indicators?
-
$\begingroup$ Can you say more about your situation, your data, your models & your goals here? It may well be possible to advise you, but this seems rather sparse to me. $\endgroup$– gung - Reinstate MonicaApr 9, 2016 at 20:18
-
$\begingroup$ @gung - Thank you for your comment. The answer below (by Gilbert) was able to resolve the issue. $\endgroup$– Thomas H. EspyApr 11, 2016 at 18:22
1 Answer
The turbulence takes values between 1 and a maximum that is reached for a sequence with a different state at each position or, when the sequence length exceeds the size of the alphabet, for a sequence made by repeating the alphabet up to the sequence length. (See Elzinga (2006) ).
So we can normalize the Turbulence by first subtracting 1 and then divide by the maximum value that we would obtain by computing the Turbulence for a sequence as described above. I illustrate below using the mvad
data that ships with TraMineR
.
library(TraMineR)
data(mvad)
mvad.seq <- seqdef(mvad[, 17:86])
alph <- alphabet(mvad.seq)
maxlength <- max(seqlength(mvad.seq))
nrep <- ceiling(maxlength/length(alph))
turb.seq <- seqdef(t(rep(alph,nrep)[1:maxlength]))
(maxT <- seqST(turb.seq))
normturb <- (seqST(mvad.seq)-1)/as.numeric(maxT-1)
summary(normturb)
Hope this helps.
=============== edited Feb 2018
Since version TraMineR v 1.8-12, the seqST
function has an argument norm
that allows to ask for the normalized index:
normturb <- seqST(mvad.seq, norm=TRUE)