예제 #1
0
        public void TestLinearMultipleTimeSeries()
        {
            double[,] tss =
            {
                {
                    0.24580423, 0.59642861, 0.35879163, 0.37891011, 0.02445137,
                    0.23830957, 0.38793433, 0.68054104, 0.83934083, 0.76073689
                },
                {
                    0.24580423, 0.59642861, 0.35879163, 0.37891011, 0.02445137,
                    0.23830957, 0.38793433, 0.68054104, 0.83934083, 0.76073689
                }
            };
            double[,] tss2 =
            {
                {
                    0.2217416, 0.06344161, 0.77944375, 0.72174137, 0.19413884,
                    0.51146167, 0.06880307, 0.39414268, 0.98172767, 0.30490851
                },
                {
                    0.2217416, 0.06344161, 0.77944375, 0.72174137, 0.19413884,
                    0.51146167, 0.06880307, 0.39414268, 0.98172767, 0.30490851
                }
            };
            using (KhivaArray arr = KhivaArray.Create(tss), arr2 = KhivaArray.Create(tss2))
            {
                var(slopeArr, interceptArr, rvalueArr, pvalueArr, stderrestArr) = Regression.Linear(arr, arr2);
                using (slopeArr)
                    using (interceptArr)
                        using (rvalueArr)
                            using (pvalueArr)
                                using (stderrestArr)
                                {
                                    var slope     = slopeArr.GetData2D <double>();
                                    var intercept = interceptArr.GetData2D <double>();
                                    var rvalue    = rvalueArr.GetData2D <double>();
                                    var pvalue    = pvalueArr.GetData2D <double>();
                                    var stderrest = stderrestArr.GetData2D <double>();

                                    for (var i = 0; i < slope.GetLength(0); i++)
                                    {
                                        for (var j = 0; j < slope.GetLength(1); j++)
                                        {
                                            Assert.AreEqual(0.344864266, slope[i, j], Delta);
                                            Assert.AreEqual(0.268578232, intercept[i, j], Delta);
                                            Assert.AreEqual(0.283552942, rvalue[i, j], Delta);
                                            Assert.AreEqual(0.427239418, pvalue[i, j], Delta);
                                            Assert.AreEqual(0.412351891, stderrest[i, j], Delta);
                                        }
                                    }
                                }
            }
        }