Пример #1
0
 private RegressionWithOutliers(IList<double> originalTimes, IList<double> targetTimes, ISet<int> outlierIndexes)
 {
     if (originalTimes.Count != targetTimes.Count)
     {
         throw new ArgumentException("Value lists must have same length");
     }
     OriginalTimes = originalTimes;
     TargetTimes = targetTimes;
     OutlierIndexes = outlierIndexes;
     var statsTarget = new Statistics(TargetTimes.Where((value, index) => !outlierIndexes.Contains(index)).ToArray());
     var statsOriginal =
         new Statistics(OriginalTimes.Where((value, index) => !outlierIndexes.Contains(index)).ToArray());
     Debug.Assert(statsTarget.Length == statsOriginal.Length);
     Debug.Assert(statsTarget.Length == TotalCount - outlierIndexes.Count);
     Slope = statsTarget.Slope(statsOriginal);
     Intercept = statsTarget.Intercept(statsOriginal);
     R = statsTarget.R(statsOriginal);
     if (double.IsNaN(R))
     {
         R = 0;
     }
 }