1
$\begingroup$

Instead of deriving correlation matrix on standardized returns (z scores) would it not be more accurate to kernel smooth the cdf and then norminv the cdf values for the return z score and then calculate the correlation? I would prefer to capture long term correlation than the instantaneous correlation at infinitesimal time steps.

Correlation of linear returns before and after the kernel smoothing in Matlab seems to be quite different results. I am wondering what do you think is right or is there a better way?

[u1,x1,bw]=ksdensity(Z(:,1),Z(:,1),'function','cdf');
[u2,x2,bw]=ksdensity(Z(:,2),Z(:,2),'function','cdf');
[u3,x3,bw]=ksdensity(Z(:,3),Z(:,3),'function','cdf');
[u4,x4,bw]=ksdensity(Z(:,4),Z(:,4),'function','cdf');
[u5,x5,bw]=ksdensity(Z(:,5),Z(:,5),'function','cdf');


% gaussian copula   
[corr_gaussian]=copulafit('Gaussian',[u1 u2 u3 u4 u5]);

Before kernel smoothing

1   0.126   -0.0653 -0.1374 0.5652
0.126   1   0.5937  0.6417  0.5946
-0.0653 0.5937  1   0.8845  0.4278
-0.1374 0.6417  0.8845  1   0.4306
0.5652  0.5946  0.4278  0.4306  1

After kernel smoothing

1   0.3008  0.3631  0.3654  0.3653   
0.3008  1   0.2958  0.3259  0.3077
0.3631  0.2958  1   0.5962  0.5695
0.3654  0.3259  0.5962  1   0.6295
0.3653  0.3077  0.5695  0.6295  1
$\endgroup$

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.