请教一个统计趋势的算法
现在假设给出一个数组:
$year=array(
'Jan'=>100,
'Feb'=>98,
'Mar'=>95,
'Apr'=>94,
'May'=>92,
'Jun'=>93,
'Jul'=>87,
);
计算机如何根据目前给出的前7个数组的值,来大致推断后8月、9月、10月的值?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
除了线性回归,还可以用时间序列的一些模型。比如:简单平均,移动平均,二次移动平均,加权平均,指数平滑法,ARIMA,等等。线性回归是在尽量拟合已有的历史数据,而时间序列基本上是纯预测。
这是一个比较普通的统计学的问题了,解决方法其实很简单,通过这几个散点拟合一条曲线方程并求出未知的值,这个在统计学上叫做回归分析。回归分析的话又分为一元线性回归和多元线性回归,散点越多的话拟合出来的曲线越好,拟合优度R的值越高(最大值为1)。(拼了老命在回忆多元统计课上的东西啊OAQ)
关于PHP线性回归的实现可以看看这篇文章:http://wenku.baidu.com/view/12fa40697e21af45b307a8ba.html
说到回归分析的话就不得不提到最小二乘法。通俗点来讲,最小二乘法就是通过制定一个函数方程(即模型,其中包括N个位置函数的系数和一个常数项,例如简单的一元模型为
Y = aX + b
),然后使用这种方法计算出这些未知数。根据你定义的模型和散点的数量的不同,得到的最终曲线方程也会有差异。关于最小二乘法的公式和原理什么的可以详细Google,实在是回忆不起来了OAQ。以上都是回忆内容,如有错误还请指正。
趋势无非两种思路:
用什么模型做回归分析恐怕也很难用计算机做决策,还得自己看数据的形态而定。
你这个数据的趋势,也许做一元线性回归也就够了。
回归问题。。推荐你看NG的机器学习公开课,一开始就是说的这个。
大家都已经说了,这是个线性回归的问题。
其实没那么复杂,excel就可以处理,详细可以参考下面的一个例子:
http://wenku.baidu.com/view/635437ff910ef12d2af9e7dd.html