public void CouldCalculateOnlineMovingRegression() { var rng = new Random(); var y = new SortedMap <DateTime, double>(); var xx = new SortedMap <DateTime, double[]>(); var dt = DateTime.Today; for (int i = 0; i < 10000; i++) { var xrow = new double[3]; xrow[0] = 1; xrow[1] = rng.NextDouble() * 5 * i; xrow[2] = rng.NextDouble() * 10 * i; var yrow = 0.33 + 0.25 * xrow[1] + 1.5 * xrow[2] + (rng.NextDouble() - 0.5); y.Add(dt, yrow); xx.Add(dt, xrow); dt = dt.AddSeconds(1); } var movingRegression = y.MovingRegression(xx, 1000, 100); foreach (var kvp in movingRegression) { Console.WriteLine($"{kvp.Value[0, 0]} - {kvp.Value[1, 0]} - {kvp.Value[2, 0]}"); } }