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.169Link to Java source.