# Normalizing the Turbulence index to match other indices

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?

• 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. Apr 9, 2016 at 20:18
• @gung - Thank you for your comment. The answer below (by Gilbert) was able to resolve the issue. Apr 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)