2014-12-17 4 views
1

У меня возникла проблема с владельцем местного малого бизнеса, с которым мне нужна помощь. Он хочет, чтобы я взял прошлые данные о продажах/доходах и создал модель для прогнозирования будущих данных.C# Регрессионная кривая для прогнозирования будущего роста

Я знаю, что мне нужно сделать какую-то регрессионную кривую. Я знаю, что я не хочу, чтобы это было простое линейное уравнение. Темпы роста, как правило, более экспоненциальны (т. Е. Растут на 10% в год). Тем не менее, я также знаю, что со временем темпы роста, естественно, замедлятся.

Я не уверен, какую регрессию мне нужно использовать (то есть экспоненциальный, логистический и т. Д.).

Так, например, если у меня есть следующие данные:

2005 - 41

2006 - 84

2007 - 149

2008 - 275

2009 - 353

2010 - 453

2011 - 712

2012 - 1001

2013 - 1370

2014 - 1591

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

Мне нужно использовать эту функцию, чтобы найти, насколько она подходит (значение R).

мне нужно, чтобы иметь возможность использовать эту функцию для прогнозирования будущих значений на 2015 год, 2016 год, 2017 год, 2018 и т.д.

Какой тип регрессии будет соответствовать этому лучшее (то есть экспоненциальный, logrithmic, что-то еще, и т.д.)?

Какие существуют библиотеки C#, которые помогли бы мне решить эту проблему?

Где я могу узнать, как начать работу с этими библиотеками?

Любая помощь была бы принята с благодарностью.

Спасибо!

ответ

1

Некоторые общие советы:

  • использование линейной регрессии только в качестве основного алгоритма регрессии.Регрессии более высокого порядка (полиномы, сплайны) имеют тенденцию создавать информацию, которая на самом деле не основана на данных, особенно если у вас есть только несколько точек данных.

  • Если вы хотите смоделировать экспоненциальные или логарифмические данные, возьмите журнал ваши точки данных (или ехр), выполняет линейную регрессию и сопоставить результаты обратно к оси журнала/ехра

  • есть много источников для простых алгоритмов линейной регрессии, которые возвращают коэффициент регрессии, а

Вы можете использовать эту библиотеку: Linear Regression With Math.NET Numerics

Или это просто рутина: Linear regression in C#

0

Это проблема моделирования в гораздо большей степени, чем проблемы программирования. Выбор модели эквивалентен созданию очень сильных предположений о том, как работает бизнес. Линейная модель подразумевает неограниченный рост. Это реально? Я сомневаюсь в этом. Я предполагаю, что логистическая кривая (т. Е. Что-то вроде a/(1 + exp(-b*t))) более реалистична, так как она достигает уровня насыщения. Когда вы решите модель, мой совет - использовать статистический пакет, такой как R или, может быть, даже таблицу, чтобы хруст числа. Не утруждайте себя написанием программы C#; нет необходимости изобретать велосипед.

Позвольте мне еще раз сказать, что большая часть этой проблемы, безусловно, выбирает модель. Возможно, вам стоит взять это на stats.stackexchange.com.

Смежные вопросы