public static AccuracyResult CalcAccuracy(PlotData data, IEnumerable <StatisticMethods> methods) { var realSource = (RealDataSource)data.Values.Keys.Where(s => s is RealDataSource).First(); var answers = new Dictionary <ForecastDataSource, Dictionary <StatisticMethods, double> >(); var result = new AccuracyResult(data.ParameterType, realSource, answers); var realSourceSeries = data.Values[realSource].First(); var forecastSources = data.Values.Keys.Where(s => s is ForecastDataSource).Cast <ForecastDataSource>(); foreach (var source in forecastSources.DistinctBy(s => s.Id, null)) { foreach (var series in data.Values[source]) { var filteredRealSeries = FitTimes(realSourceSeries, series); answers.Add(source, Statistic.CalculateMany(methods, series, filteredRealSeries)); } } return(result); }
public static AccuracyResult CalcAccuracy(PlotData data, StatisticMethods method) { return(CalcAccuracy(data, method.ToIEnumerable())); }