How Kernel Smoothing Changes Correlation Estimates
Summary
The document asks whether smoothing each return series’ empirical cumulative distribution function (CDF), then mapping the CDF values through the inverse normal distribution, gives a better correlation estimate than calculating correlation from standardized returns. The proposed procedure fits a Gaussian copula to the transformed observations, with the aim of representing longer-term dependence rather than very short-horizon correlation.
It compares correlation matrices before and after smoothing for five series. The reported entries change substantially, including changes in the sign of some pairwise estimates and shifts in the strength of others. These examples show that the transformation can materially affect a fitted dependence matrix, but they do not establish that the smoothed result is more accurate. The document offers no sample details, validation, or out-of-sample evidence, and leaves open how smoothing bandwidth and serial dependence should be handled. Its central lesson is to treat the choice of marginal transformation and time horizon as modeling decisions and validate the resulting correlations for the intended use.
Key ideas
- Kernel smoothing a return CDF before applying the inverse normal transform changes the inputs to a Gaussian copula fit.
- The reported correlation matrix differs substantially between the raw standardized-return approach and the smoothed approach.
- A changed estimate is not evidence that it is more accurate or captures longer-term dependence better.
- Bandwidth choice and validation against the intended horizon are important unresolved considerations.
Tags
Full text
# Effect of kernel smoothing on correlation
# Effect of kernel smoothing on correlation
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
```Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.