Consider the Wolfer Sunspot Data (Y ) (Box and Jenkins 1976, page 530) along with data on northern light activity (X1) and earthquake activity (X2) (Robinson 1967, page 204) to be a three-channel time series. Methods getCrossCovariance
and getCrossCorrelation
are used to compute the cross-covariances and cross-correlations between
and Y and between
and Y with lags from -maximum_lag
= -10 through lag maximum_lag
= 10.
import com.imsl.stat.*;
import com.imsl.math.*;
public class MultiCrossCorrelationEx1 {
public static void main(String args[]) throws Exception {
int i;
double x[][] = {
{155.0, 66.0},
{113.0, 62.0},
{3.0, 66.0},
{10.0, 197.0},
{0.0, 63.0},
{0.0, 0.0},
{12.0, 121.0},
{86.0, 0.0},
{102.0, 113.0},
{20.0, 27.0},
{98.0, 107.0},
{116.0, 50.0},
{87.0, 122.0},
{131.0, 127.0},
{168.0, 152.0},
{173.0, 216.0},
{238.0, 171.0},
{146.0, 70.0},
{0.0, 141.0},
{0.0, 69.0},
{0.0, 160.0},
{0.0, 92.0},
{12.0, 70.0},
{0.0, 46.0},
{37.0, 96.0},
{14.0, 78.0},
{11.0, 110.0},
{28.0, 79.0},
{19.0, 85.0},
{30.0, 113.0},
{11.0, 59.0},
{26.0, 86.0},
{0.0, 199.0},
{29.0, 53.0},
{47.0, 81.0},
{36.0, 81.0},
{35.0, 156.0},
{17.0, 27.0},
{0.0, 81.0},
{3.0, 107.0},
{6.0, 152.0},
{18.0, 99.0},
{15.0, 177.0},
{0.0, 48.0},
{3.0, 70.0},
{9.0, 158.0},
{64.0, 22.0},
{126.0, 43.0},
{38.0, 102.0},
{33.0, 111.0},
{71.0, 90.0},
{24.0, 86.0},
{20.0, 119.0},
{22.0, 82.0},
{13.0, 79.0},
{35.0, 111.0},
{84.0, 60.0},
{119.0, 118.0},
{86.0, 206.0},
{71.0, 122.0},
{115.0, 134.0},
{91.0, 131.0},
{43.0, 84.0},
{67.0, 100.0},
{60.0, 99.0},
{49.0, 99.0},
{100.0, 69.0},
{150.0, 67.0},
{178.0, 26.0},
{187.0, 106.0},
{76.0, 108.0},
{75.0, 155.0},
{100.0, 40.0},
{68.0, 75.0},
{93.0, 99.0},
{20.0, 86.0},
{51.0, 127.0},
{72.0, 201.0},
{118.0, 76.0},
{146.0, 64.0},
{101.0, 31.0},
{61.0, 138.0},
{87.0, 163.0},
{53.0, 98.0},
{69.0, 70.0},
{46.0, 155.0},
{47.0, 97.0},
{35.0, 82.0},
{74.0, 90.0},
{104.0, 122.0},
{97.0, 70.0},
{106.0, 96.0},
{113.0, 111.0},
{103.0, 42.0},
{68.0, 97.0},
{67.0, 91.0},
{82.0, 64.0},
{89.0, 81.0},
{102.0, 162.0},
{110.0, 137.0}
};
double y[][] = {
{101.0},
{82.0},
{66.0},
{35.0},
{31.0},
{7.0},
{20.0},
{92.0},
{154.0},
{126.0},
{85.0},
{68.0},
{38.0},
{23.0},
{10.0},
{24.0},
{83.0},
{132.0},
{131.0},
{118.0},
{90.0},
{67.0},
{60.0},
{47.0},
{41.0},
{21.0},
{16.0},
{6.0},
{4.0},
{7.0},
{14.0},
{34.0},
{45.0},
{43.0},
{48.0},
{42.0},
{28.0},
{10.0},
{8.0},
{2.0},
{0.0},
{1.0},
{5.0},
{12.0},
{14.0},
{35.0},
{46.0},
{41.0},
{30.0},
{24.0},
{16.0},
{7.0},
{4.0},
{2.0},
{8.0},
{17.0},
{36.0},
{50.0},
{62.0},
{67.0},
{71.0},
{48.0},
{28.0},
{8.0},
{13.0},
{57.0},
{122.0},
{138.0},
{103.0},
{86.0},
{63.0},
{37.0},
{24.0},
{11.0},
{15.0},
{40.0},
{62.0},
{98.0},
{124.0},
{96.0},
{66.0},
{64.0},
{54.0},
{39.0},
{21.0},
{7.0},
{4.0},
{23.0},
{55.0},
{94.0},
{96.0},
{77.0},
{59.0},
{44.0},
{47.0},
{30.0},
{16.0},
{7.0},
{37.0},
{74.0}
};
MultiCrossCorrelation mcc = new MultiCrossCorrelation(x, y, 10);
new PrintMatrix("Mean of X : ").print(mcc.getMeanX());
new PrintMatrix("Variance of X : ").print(mcc.getVarianceX());
new PrintMatrix("Mean of Y : ").print(mcc.getMeanY());
new PrintMatrix("Variance of Y : ").print(mcc.getVarianceY());
double[][][] ccv = mcc.getCrossCovariance();
System.out.println("Multichannel cross-covariance between X and Y");
for (i = 0; i < 21; i++) {
System.out.println("Lag K = " + (i - 10));
new PrintMatrix("CrossCovariances : ").print(ccv[i]);
}
double[][][] cc = mcc.getCrossCorrelation();
System.out.println("Multichannel cross-correlation between X and Y");
for (i = 0; i < 21; i++) {
System.out.println("Lag K = " + (i - 10));
new PrintMatrix("CrossCorrelations : ").print(cc[i]);
}
}
}
Mean of X :
0
0 63.43
1 97.97
Variance of X :
0
0 2,643.685
1 1,978.429
Mean of Y :
0
0 46.94
Variance of Y :
0
0 1,383.756
Multichannel cross-covariance between X and Y
Lag K = -10
CrossCovariances :
0
0 -20.512
1 70.713
Lag K = -9
CrossCovariances :
0
0 65.024
1 38.136
Lag K = -8
CrossCovariances :
0
0 216.637
1 135.578
Lag K = -7
CrossCovariances :
0
0 246.794
1 100.362
Lag K = -6
CrossCovariances :
0
0 142.128
1 44.968
Lag K = -5
CrossCovariances :
0
0 50.697
1 -11.809
Lag K = -4
CrossCovariances :
0
0 72.685
1 32.693
Lag K = -3
CrossCovariances :
0
0 217.854
1 -40.119
Lag K = -2
CrossCovariances :
0
0 355.821
1 -152.649
Lag K = -1
CrossCovariances :
0
0 579.653
1 -212.95
Lag K = 0
CrossCovariances :
0
0 821.626
1 -104.752
Lag K = 1
CrossCovariances :
0
0 810.131
1 55.16
Lag K = 2
CrossCovariances :
0
0 628.385
1 84.775
Lag K = 3
CrossCovariances :
0
0 438.272
1 75.963
Lag K = 4
CrossCovariances :
0
0 238.793
1 200.383
Lag K = 5
CrossCovariances :
0
0 143.621
1 282.986
Lag K = 6
CrossCovariances :
0
0 252.974
1 234.393
Lag K = 7
CrossCovariances :
0
0 479.468
1 223.034
Lag K = 8
CrossCovariances :
0
0 724.912
1 124.457
Lag K = 9
CrossCovariances :
0
0 924.971
1 -79.517
Lag K = 10
CrossCovariances :
0
0 922.759
1 -279.286
Multichannel cross-correlation between X and Y
Lag K = -10
CrossCorrelations :
0
0 -0.011
1 0.043
Lag K = -9
CrossCorrelations :
0
0 0.034
1 0.023
Lag K = -8
CrossCorrelations :
0
0 0.113
1 0.082
Lag K = -7
CrossCorrelations :
0
0 0.129
1 0.061
Lag K = -6
CrossCorrelations :
0
0 0.074
1 0.027
Lag K = -5
CrossCorrelations :
0
0 0.027
1 -0.007
Lag K = -4
CrossCorrelations :
0
0 0.038
1 0.02
Lag K = -3
CrossCorrelations :
0
0 0.114
1 -0.024
Lag K = -2
CrossCorrelations :
0
0 0.186
1 -0.092
Lag K = -1
CrossCorrelations :
0
0 0.303
1 -0.129
Lag K = 0
CrossCorrelations :
0
0 0.43
1 -0.063
Lag K = 1
CrossCorrelations :
0
0 0.424
1 0.033
Lag K = 2
CrossCorrelations :
0
0 0.329
1 0.051
Lag K = 3
CrossCorrelations :
0
0 0.229
1 0.046
Lag K = 4
CrossCorrelations :
0
0 0.125
1 0.121
Lag K = 5
CrossCorrelations :
0
0 0.075
1 0.171
Lag K = 6
CrossCorrelations :
0
0 0.132
1 0.142
Lag K = 7
CrossCorrelations :
0
0 0.251
1 0.135
Lag K = 8
CrossCorrelations :
0
0 0.379
1 0.075
Lag K = 9
CrossCorrelations :
0
0 0.484
1 -0.048
Lag K = 10
CrossCorrelations :
0
0 0.482
1 -0.169
Link to Java source.