C#回归曲线拟合预测未来增长

时间:2014-12-17 14:06:08

标签: c# math regression logistic-regression exponential

当地小企业主给我一个问题,我需要一些帮助。他希望我记录他过去的销售/收入数据,并创建一个模型来帮助预测未来的数据。

我知道我需要做一些回归曲线拟合。我知道我不希望它是一个简单的线性方程。增长率往往更具指数性(即每年增长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年等的未来价值。

哪种回归类型最适合(即指数,对数,其他等)?

哪些C#库可以帮助我解决这个问题?

我在哪里可以学习如何开始使用这些库?

非常感谢任何帮助。

谢谢!

2 个答案:

答案 0 :(得分:1)

一些一般性建议:

  • 仅将线性回归用作基本回归算法。高阶回归(多项式,样条)倾向于产生实际上不是基于数据的信息,特别是如果您只有少量数据点

  • 如果要对指数或对数数据建模,请记录数据点(或exp),执行线性回归并将结果映射回log / exp轴

  • 简单线性回归算法有许多来源,它们也返回回归系数

您可以使用此库:Linear Regression With Math.NET Numerics

或者这个简单的例程:Linear regression in C#

答案 1 :(得分:0)

这是一个比编程问题更大程度上的建模问题。选择模型等同于对业务运作方式做出非常强烈的假设。线性模型意味着无限增长。这是现实的吗?我对此表示怀疑。我的猜测是逻辑曲线(即a/(1 + exp(-b*t))之类的东西)更加真实,因为它达到饱和水平。一旦你决定一个模型,我的建议是使用统计包,如R或甚至电子表格来处理数字。不要为此编写C#程序;没有必要重新发明轮子。

让我再次提到,到目前为止,这个问题的最大部分是选择模型。也许你应该把它带到stats.stackexchange.com。