# How to ensure data is normally distributed for the purpose of performing a continuous wavelet transform?

I have a vector which contains several values e.g.

a <- runif(8760)


I wish to perform continuous wavelet transform to the data but the data is required or preferred to be normally distributed. Can anyone provide any information regarding how I could transform the data to be normally distributed. With my own data set I have tried to standardise the data and perform a log transformation but these dont seem to help.

I have tried:

b <- log(a)
c <- scale(a)

-
Is the real data uniformly distributed or does it come from some unknown distribution? –  Macro Jun 25 '12 at 21:16
If you're trying to coerce a into normal, you could apply a CDF. If you need data from a normal distribution, why don't you use rnorm? –  Roman Luštrik Jun 26 '12 at 6:44

The Power Transformation is pretty good (try low values of $\lambda$)

-
+1 I've used the Box-Cox transformation with success. In R, stat.ethz.ch/R-manual/R-patched/library/MASS/html/boxcox.html –  baha-kev Jun 26 '12 at 6:02

normally, you have to apply normality test to the residual after transformation

-

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

Could you elaborate on why you think that the cwt requires your data to be normally distributed? Wavelet transforms get applied to all sorts of stuff which isn't even remotely normal (e.g., images, seismographs, electroencephalograms) and I've never heard anyone complain about that. I took a quick look in the references we have lying around, and none of them seem to mention anything about constraints on the data's distribution either.

-