Генерация прогнозного значения в C# с помощью Excel Interop

Я хочу создать прогнозное значение, используя функцию прогнозирования Excel Introp. Мне нужно использовать линейную функцию прогнозирования Excel, но я хочу сохранить прогнозное значение в базе данных.

Я не знаю, как начать Пожалуйста, помогите мне в этом.

1 ответ

Решение

Если все, что вам нужно, это функция линейного прогнозирования, я думаю, что Excel Interop, вероятно, излишне. Вы можете добавить ссылки на библиотеки Office COM из вашего проекта C# и вызвать WorksheetFunction.Forecast функции, или вы можете просто добавить метод, чтобы сделать то же самое в вашем коде C# напрямую. Я думаю, что логика линейного прогноза, по сути, следующая:

static double Forecast(double[] xValues, double[] yValues, double forecastPoint)
{
    var xAverage = xValues.Average();
    var yAverage = yValues.Average();

    var bounds = yValues
        .Select((y, i) => new { Value = y, Index = i })
        .Aggregate(new { Top = 0.0, Bottom = 0.0 }, (acc, cur) =>
            new
            {
                Top = acc.Top + (xValues[cur.Index] - xAverage) * (yValues[cur.Index] - yAverage),
                Bottom = acc.Bottom + Math.Pow(xValues[cur.Index] - xAverage, 2.0)
            });

    var level = bounds.Top / bounds.Bottom;

    return (yAverage - level * xAverage) + level * forecastPoint;
}
Другие вопросы по тегам