# How to compute sliding or running window correlation coefficient?

83 Ansichten (letzte 30 Tage)
Kathleen am 3 Apr. 2015
Beantwortet: David J. Mack am 21 Dez. 2017
Dear colleagues,
I want to compute the sliding or running window correlation coefficient. I have read related papers, the formula is as following:  t=n,n+1,n+2,n+3，......。 n means the length of silding or running window.
Could you translate this formula into Matlad codes? Any help is very much appreciated! Many many thanks!
##### 2 Kommentare1 älteren Kommentar anzeigen1 älteren Kommentar ausblenden
Roger Stafford am 3 Apr. 2015

Melden Sie sich an, um zu kommentieren.

### Antworten (2)

Victor am 6 Sep. 2016
Bearbeitet: Victor am 6 Sep. 2016
For a fast computation you can implement moving sums of X and X^2 for both signals, then obtain moving averages and variances as
M = sum(X)/windowLen;
V = ( sum(X^2) - sum(X)^2 )/windowLen;
Then find sum
V12 = sum( (X1-M1)*(X2-M2) );
And then sliding correlation itself:
C = V12 / sqrt(V1*V2);
It can be done efficiently within one for loop by adding one new value and substacting the old one.
*The same way we can find statistical moments, by adding moving sums of higher powers - X^3, X^4 etc.
##### 0 Kommentare-1 ältere Kommentare anzeigen-1 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

David J. Mack am 21 Dez. 2017
If someone encounters this problem, I have written a function in analogy to the MOVSUM function, which compute the moving Pearson correlation:
Greetings, David
##### 0 Kommentare-1 ältere Kommentare anzeigen-1 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Kategorien

Find more on Correlation and Convolution in Help Center and File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!