Consider the Gas Furnace Data (Box and Jenkins 1976, pages 532-533) where X
is the input gas reate in cubic feet/minute and Y
is the percent in the outlet gas. The
CrossCorrelation
methods GetCrossCovariance
and GetCrossCorrelation
are used to compute the cross-covariances and cross-correlations between time series X
and Y
with lags from -maximumLag
= -10 through lag maximumLag
= 10. In addition, the estimated standard errors of the estimated cross-correlations are computed. In the first invocation of method GetStandardErrors
stderrMethod = Bartletts
, the standard errors are based on the assumption that autocorrelations and cross-correlations for lags greater than maximumLag
or less than -maximumLag
are zero. In the second invocation of method GetStandardErrors
with stderrMethod
= BartlettsNoCC
, the standard errors are based on the additional assumption that all cross-correlations for X
and Y
are zero.
using System; using Imsl.Stat; using PrintMatrix = Imsl.Math.PrintMatrix; public class CrossCorrelationEx1 { public static void Main(String[] args) { double[] x2 = new double[]{100.8, 81.6, 66.5, 34.8, 30.6, 7, 19.8, 92.5, 154.4, 125.9, 84.8, 68.1, 38.5, 22.8, 10.2, 24.1, 82.9, 132, 130.9, 118.1, 89.9, 66.6, 60, 46.9, 41, 21.3, 16, 6.4, 4.1, 6.8, 14.5, 34, 45, 43.1, 47.5, 42.2, 28.1, 10.1, 8.1, 2.5, 0, 1.4, 5, 12.2, 13.9, 35.4, 45.8, 41.1, 30.4, 23.9, 15.7, 6.6, 4, 1.8, 8.5, 16.6, 36.3, 49.7, 62.5, 67, 71, 47.8, 27.5, 8.5, 13.2, 56.9, 121.5,138.3, 103.2, 85.8, 63.2, 36.8, 24.2, 10.7, 15, 40.1, 61.5, 98.5, 124.3, 95.9, 66.5, 64.5, 54.2, 39, 20.6, 6.7, 4.3, 22.8, 54.8, 93.8, 95.7, 77.2, 59.1, 44, 47, 30.5, 16.3, 7.3, 37.3, 73.9}; double[] x = new double[]{- 0.109, 0.0, 0.178, 0.339, 0.373, 0.441, 0.461, 0.348, 0.127, - 0.18, - 0.588, - 1.055, - 1.421, - 1.52, - 1.302, - 0.814, - 0.475, - 0.193, 0.088, 0.435, 0.771, 0.866, 0.875, 0.891, 0.987, 1.263, 1.775, 1.976, 1.934, 1.866, 1.832, 1.767, 1.608, 1.265, 0.79, 0.36, 0.115, 0.088, 0.331, 0.645, 0.96, 1.409, 2.67, 2.834, 2.812, 2.483, 1.929, 1.485, 1.214, 1.239, 1.608, 1.905, 2.023, 1.815, 0.535, 0.122, 0.009, 0.164, 0.671, 1.019, 1.146, 1.155, 1.112, 1.121, 1.223, 1.257, 1.157, 0.913, 0.62, 0.255, - 0.28, - 1.08, - 1.551, - 1.799, - 1.825, - 1.456, - 0.944, - 0.57, - 0.431, - 0.577, - 0.96, - 1.616, - 1.875, - 1.891, - 1.746, - 1.474, - 1.201, - 0.927, - 0.524, 0.04, 0.788, 0.943, 0.93, 1.006, 1.137, 1.198, 1.054, 0.595, - 0.08, - 0.314, - 0.288, - 0.153, - 0.109, - 0.187, - 0.255, - 0.229, - 0.007, 0.254, 0.33, 0.102, - 0.423, - 1.139, - 2.275, - 2.594, - 2.716, - 2.51, - 1.79, - 1.346, - 1.081, - 0.91, - 0.876, - 0.885, - 0.8, - 0.544, - 0.416, - 0.271, 0.0, 0.403, 0.841, 1.285, 1.607, 1.746, 1.683, 1.485, 0.993, 0.648, 0.577, 0.577, 0.632, 0.747, 0.9, 0.993, 0.968, 0.79, 0.399, - 0.161, - 0.553, - 0.603, - 0.424, - 0.194, - 0.049, 0.06, 0.161, 0.301, 0.517, 0.566, 0.56, 0.573, 0.592, 0.671, 0.933, 1.337, 1.46, 1.353, 0.772, 0.218, - 0.237, - 0.714, - 1.099, -1.269, - 1.175, - 0.676, 0.033, 0.556, 0.643, 0.484, 0.109, - 0.31, -0.697, - 1.047, - 1.218, - 1.183, -0.873, -0.336, 0.063, 0.084, 0.0, 0.001, 0.209, 0.556, 0.782, 0.858, 0.918, 0.862, 0.416, - 0.336, - 0.959, - 1.813, - 2.378, - 2.499, -2.473, - 2.33, - 2.053, - 1.739, - 1.261, - 0.569, - 0.137, - 0.024, - 0.05, - 0.135, - 0.276, - 0.534, -0.871, - 1.243, - 1.439, - 1.422, -1.175, - 0.813, - 0.634, - 0.582, -0.625, - 0.713, - 0.848, - 1.039, -1.346, - 1.628, - 1.619, - 1.149, -0.488, - 0.16, - 0.007, - 0.092, - 0.62, - 1.086, - 1.525, - 1.858, -2.029, - 2.024, - 1.961, - 1.952, -1.794, - 1.302, - 1.03, - 0.918, - 0.798, - 0.867, - 1.047,- 1.123, - 0.876, - 0.395, 0.185, 0.662, 0.709, 0.605, 0.501, 0.603, 0.943, 1.223, 1.249, 0.824, 0.102, 0.025, 0.382, 0.922, 1.032, 0.866, 0.527, 0.093, - 0.458, - 0.748, - 0.947, -1.029, - 0.928, - 0.645, - 0.424, -0.276, - 0.158, - 0.033, 0.102, 0.251, 0.28, 0.0, -0.493, -0.759, -0.824, - 0.74, - 0.528, - 0.204, 0.034, 0.204, 0.253, 0.195, 0.131, 0.017, - 0.182, - 0.262}; double[] y = new double[]{53.8, 53.6, 53.5, 53.5, 53.4, 53.1, 52.7, 52.4, 52.2, 52.0, 52.0, 52.4, 53.0, 54.0, 54.9, 56.0, 56.8, 56.8, 56.4, 55.7, 55.0, 54.3, 53.2, 52.3, 51.6, 51.2, 50.8, 50.5, 50.0, 49.2, 48.4, 47.9, 47.6, 47.5, 47.5, 47.6, 48.1, 49.0, 50.0, 51.1, 51.8, 51.9, 51.7, 51.2, 50.0, 48.3, 47.0, 45.8, 45.6, 46.0, 46.9, 47.8, 48.2, 48.3, 47.9, 47.2, 47.2, 48.1, 49.4, 50.6, 51.5, 51.6, 51.2, 50.5, 50.1, 49.8, 49.6, 49.4, 49.3, 49.2, 49.3, 49.7, 50.3, 51.3, 52.8, 54.4, 56.0, 56.9, 57.5, 57.3, 56.6, 56.0, 55.4, 55.4, 56.4, 57.2, 58.0, 58.4, 58.4, 58.1, 57.7, 57.0, 56.0, 54.7, 53.2, 52.1, 51.6, 51.0, 50.5, 50.4, 51.0, 51.8, 52.4, 53.0, 53.4, 53.6, 53.7, 53.8, 53.8, 53.8, 53.3, 53.0, 52.9, 53.4, 54.6, 56.4, 58.0, 59.4, 60.2, 60.0, 59.4, 58.4, 57.6, 56.9, 56.4, 56.0, 55.7, 55.3, 55.0, 54.4, 53.7, 52.8, 51.6, 50.6, 49.4, 48.8, 48.5, 48.7, 49.2, 49.8, 50.4, 50.7, 50.9, 50.7, 50.5, 50.4, 50.2, 50.4, 51.2, 52.3, 53.2, 53.9, 54.1, 54.0, 53.6, 53.2, 53.0, 52.8, 52.3, 51.9, 51.6, 51.6, 51.4, 51.2, 50.7, 50.0, 49.4, 49.3, 49.7, 50.6, 51.8, 53.0, 54.0, 55.3, 55.9, 55.9, 54.6, 53.5, 52.4, 52.1, 52.3, 53.0, 53.8, 54.6, 55.4, 55.9, 55.9, 55.2, 54.4, 53.7, 53.6, 53.6, 53.2, 52.5, 52.0, 51.4, 51.0, 50.9, 52.4, 53.5, 55.6, 58.0, 59.5, 60.0, 60.4, 60.5, 60.2, 59.7, 59.0, 57.6, 56.4, 55.2, 54.5, 54.1, 54.1, 54.4, 55.5, 56.2, 57.0, 57.3, 57.4, 57.0, 56.4, 55.9, 55.5, 55.3, 55.2, 55.4, 56.0, 56.5, 57.1, 57.3, 56.8, 55.6, 55.0, 54.1, 54.3, 55.3, 56.4, 57.2, 57.8, 58.3, 58.6, 58.8, 58.8, 58.6, 58.0, 57.4, 57.0, 56.4, 56.3, 56.4, 56.4, 56.0, 55.2, 54.0, 53.0, 52.0, 51.6, 51.6, 51.1, 50.4, 50.0, 50.0, 52.0, 54.0, 55.1, 54.5, 52.8, 51.4, 50.8, 51.2, 52.0, 52.8, 53.8, 54.5, 54.9, 54.9, 54.8, 54.4, 53.7, 53.3, 52.8, 52.6, 52.6, 53.0, 54.3, 56.0, 57.0, 58.0, 58.6, 58.5, 58.3, 57.8, 57.3, 57.0}; CrossCorrelation cc = new CrossCorrelation(x, y, 10); Console.Out.WriteLine("Mean = " + cc.MeanX); Console.Out.WriteLine("Mean = " + cc.MeanY); Console.Out.WriteLine("Xvariance = " + cc.VarianceX); Console.Out.WriteLine("Yvariance = " + cc.VarianceY); new PrintMatrix ("CrossCovariances are: ").Print(cc.GetCrossCovariances()); new PrintMatrix ("CrossCorrelations are: ").Print(cc.GetCrossCorrelations()); double[] stdErrors = cc.GetStandardErrors(CrossCorrelation.StdErr.Bartletts); new PrintMatrix ("Standard Errors using Bartlett are: ").Print(stdErrors); stdErrors = cc.GetStandardErrors(CrossCorrelation.StdErr.BartlettsNoCC); new PrintMatrix("Standard Errors using Bartlett #2 are: ").Print (stdErrors); new PrintMatrix("AutoCovariances of X are: ").Print (cc.GetAutoCovarianceX()); new PrintMatrix("AutoCovariances of Y are: ").Print (cc.GetAutoCovarianceY()); new PrintMatrix("AutoCorrelations of X are: ").Print (cc.GetAutoCorrelationX()); new PrintMatrix("AutoCorrelations of Y are: ").Print (cc.GetAutoCorrelationY()); } }
Mean = -0.0568344594594595 Mean = 53.5091216216216 Xvariance = 1.14693790165038 Yvariance = 10.2189370662893 CrossCovariances are: 0 0 -0.404501563294314 1 -0.508490782763824 2 -0.614369467627782 3 -0.705476130258359 4 -0.776166564117932 5 -0.831473609098764 6 -0.891315326970392 7 -0.980605209560792 8 -1.12477059434257 9 -1.34704305203341 10 -1.65852650999817 11 -2.04865124574232 12 -2.48216585776478 13 -2.88541054192018 14 -3.16536049680239 15 -3.25343758942199 16 -3.13112860301494 17 -2.83919398544463 18 -2.45302186901565 19 -2.05268794195849 20 -1.6946546517713 CrossCorrelations are: 0 0 -0.118153717307789 1 -0.148528662561878 2 -0.179455515102209 3 -0.206067503381416 4 -0.226715971265165 5 -0.242870996488244 6 -0.260350586329711 7 -0.286431898500946 8 -0.3285421835153 9 -0.39346731487308 10 -0.484450717109386 11 -0.598405005361053 12 -0.725033348897091 13 -0.842819935503927 14 -0.924592494205792 15 -0.950319553992448 16 -0.914593458680361 17 -0.829320215245049 18 -0.716520475473708 19 -0.599584112456951 20 -0.495003641096017 Standard Errors using Bartlett are: 0 0 0.158147783754555 1 0.155750271182418 2 0.152735096430409 3 0.149086745416716 4 0.145054998300008 5 0.141300099196058 6 0.138420534019813 7 0.136074039397204 8 0.132158917844376 9 0.123531347020305 10 0.107879045104545 11 0.0873410658167485 12 0.0641407975847026 13 0.0469456102701398 14 0.0440970262220149 15 0.0482335854893665 16 0.0491545707033738 17 0.0475621871011123 18 0.0534780426550682 19 0.0715660938138719 20 0.0939330263600716 Standard Errors using Bartlett #2 are: 0 0 0.162753654681801 1 0.162469864309526 2 0.162187553298139 3 0.161906708839297 4 0.161627318279375 5 0.161349369117073 6 0.16107284900106 7 0.160797745727675 8 0.160524047238664 9 0.160251741618955 10 0.159980817094486 11 0.160251741618955 12 0.160524047238664 13 0.160797745727675 14 0.16107284900106 15 0.161349369117073 16 0.161627318279375 17 0.161906708839297 18 0.162187553298139 19 0.162469864309526 20 0.162753654681801 AutoCovariances of X are: 0 0 1.14693790165038 1 1.09242958215267 2 0.956651878489968 3 0.782050821478561 4 0.609290776371371 5 0.467379623909361 6 0.36495658921123 7 0.298426970727032 8 0.260942845999682 9 0.244377603086156 10 0.238942463361545 AutoCovariances of Y are: 0 0 10.2189370662893 1 9.92010118439122 2 9.15657243817617 3 8.09900196442277 4 6.94850770962479 5 5.87055032023953 6 4.96076244327211 7 4.25188969596136 8 3.73611877936647 9 3.37615547781905 10 3.13231605775447 AutoCorrelations of X are: 0 0 1 1 0.952474916541448 2 0.834092130980584 3 0.681859776674248 4 0.531232576318765 5 0.407502117801518 6 0.31820082733867 7 0.26019453215175 8 0.227512619143721 9 0.213069602752258 10 0.208330776250152 AutoCorrelations of Y are: 0 0 1 1 0.970756656983059 2 0.896039615351222 3 0.79254837483442 4 0.67996384208558 5 0.574477588242088 6 0.485447988483746 7 0.416079448222429 8 0.365607377277169 9 0.330382255602345 10 0.306520730819207Link to C# source.