当地小企业主给我一个问题,我需要一些帮助。他希望我记录他过去的销售/收入数据,并创建一个模型来帮助预测未来的数据。
我知道我需要做一些回归曲线拟合。我知道我不希望它是一个简单的线性方程。增长率往往更具指数性(即每年增长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#库可以帮助我解决这个问题?
我在哪里可以学习如何开始使用这些库?
非常感谢任何帮助。
谢谢!
答案 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。