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 java.text.*; import com.imsl.stat.*; import com.imsl.math.PrintMatrix; import com.imsl.math.Matrix; 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 = new double[21][2][1]; double[][][] cc = new double[21][2][1]; 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]); } 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.