# Simulating Correlation (but sample correlation is always too low)

I am trying to simulate correlation in order to price a correlation swap (via Monte-Carlo). For simplicity, let's assume we have 2 assets, and everything is correlated with $$\rho$$, and there is no drift or anything. Say, the swap has $$M$$ observation periods, and we simulate $$N$$ paths per asset.

So we start by using a multivariate normal distribution with $$\mu=\begin{bmatrix}0\\0\end{bmatrix}$$ and $$\Sigma=\begin{bmatrix}1&\rho\\\rho&1\end{bmatrix}$$. Now we generate $$M$$ correlated pairs of normal variables $$R = \begin{bmatrix}r_{11}&\ldots & r_{1M}\\r_{21}&\ldots&r_{2M}\end{bmatrix} \in \mathbb{R}^{2\times M}$$. We do this $$N$$ times, such that we obtain $$R_1,\ldots,R_N$$. For each sample $$R_i$$ we now compute the realised sample correlation $$\bar{\rho}_i$$ between its 2 assets.

Finally, we can compute the average of all realised sample correlations: $$\bar{\rho} = \frac1N \cdot\sum_{i=1}^N \bar{\rho}_i$$

What I have noticed is, the average realised sample correlation is disproportionally often lower than the target correlation, i.e. $$\bar{\rho} < \rho$$ I would have expected $$\bar{\rho} \approx \rho$$.

Below are a few sample plots, which highlight this effect (with 3 out of 4 paths lower than 50%, and 1 path around 50%):

Source Code to generate graph: zerobin

Question: Does anybody know why this is the case? Or am I generating random variables incorrectly?