Генерация прогнозного значения в 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;
}