I've generated a dataset of 100 elements from a 3-variate Gaussian distribution with parameters $\mu = 0$ and $\Sigma = \begin{pmatrix}1 & \rho_1 & \rho_2 \\ \rho_1 & 1 & \rho_1 \\ \rho_2 & \rho1 & 1\end{pmatrix}$. To generate such dataset, Cholesky factorization as been used on the covariance matrix $\Sigma$. I followed this for Python language.

The problem is related to adding noise to such dataset. I need to add noise $\eta_i \sim \mathbb{N}(0,1)$ to each $X_i \quad \forall i=1, \dots, 100$ in such a way its covariance matrix results to be $\Sigma* = \begin{pmatrix}1+noise & \rho_1 & \rho_2 \\ \rho_1 & 1+noise & \rho_1 \\ \rho_2 & \rho1 & 1+noise\end{pmatrix}$ that is noise does not alter (or it if does, for a very less amount) all the elements off-diagonal. Is it possible to do it? Or is the sample too small?

I just add the noise in such a way that $X_i + \eta_i$, should I multiply $\eta_i$ for $\mathbb{I}$ first?

Also $\eta$'s size is [100x3]: should it be smaller to have such $\Sigma*$?


My goal is to find such $X^*$, the dataset + noise, such that I can apply to it the whitening and colouring phases (here) and show that the only noise addition cannot preserve privacy of users in the dataset, but a recolouring (whitening + colouring) are mandatory.

Thus, Noise addition is in Chaper 4 of link says that

epsilon is the random variable (noise) added to X, whose distribution is $𝑁(0,\sigma^2)$. Note that additive noise also known as uncorrelated noise, preserves the mean and covariance of the original data but the correlation coefficients and variances are not sustained. Another variation of additive noise is correlated additive noisethat keeps the mean and allows the sustenance of correlation coefficients in the original data.

  • 1
    $\begingroup$ You can adjust the variances on the diagonal without affecting the off-diagonal elements of the covariance matrix, but you will change the correlations. Perhaps you do indeed care about the covariance matrix and not at all about the correlation matrix, but my suspicion is that you want to keep the correlations as $\rho_1$ and $\rho_2$, which you will not do if you change the variances. $\endgroup$ – Dave Jun 13 '19 at 14:06
  • $\begingroup$ Indeed I need to maintain those correlations between data. So is it actually possibile to add noise to a dataset in such a way to produce $\Sigma*$? @Dave $\endgroup$ – JackLametta Jun 13 '19 at 14:08
  • $\begingroup$ No, because the correlation coefficients determined by $\Sigma^{*}$ will not equal the $\rho_i$ unless "noise" is zero. $\endgroup$ – whuber Jun 13 '19 at 14:09
  • $\begingroup$ @whuber so what would be the best way to add noise to such dataset to minimize the differences between $\Sigma$ and $\Sigma*$? $\endgroup$ – JackLametta Jun 13 '19 at 14:11
  • $\begingroup$ That's an indeterminate question: it requires that you explain the purpose of adding noise. Without such context, one answer is "make the noise zero." $\endgroup$ – whuber Jun 13 '19 at 14:12

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.