开发者学堂课程【场景实践 - 基于机器学习进行收入预测分析:预测算法介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/526/detail/7089
预测算法介绍
内容介绍:
一、预测算法及分类
二、回归分析算法
三、时间序列算法
一、预测算法及分类
1.概念
预测算法指的是发现能够区分后预测目标变量的规则或者函数。可以理解为通过某种计算公式或者函数,或者根据某种事物发展规律来进行预测。
2.分类
预测算法一般情况下有三种分类。
第一种,根据预测期限分为长期预测、中期预测、短期预测。一般情况下,长期测试10到15年的时间期,中期预测就是5到10年,短期预测是1到5年或者是更短的一年之内。
第二种,根据预测内容一般可以分为资金预测成本和费用预测、销售预测、利润预测。注意预测的场景和目的。
第三种,最普遍的根据预测性质来划分,可以分为定性预测和定量预测。
定性预测方法指的是预测者依靠熟悉的业务知识,具有丰富经验或者综合能力的人员或专家,根据已经掌握的历史资料、直观材料,运用个人经验,对事物未来发展做性质和程度上的判断,然后再通过一定形式综合各方面的建议作为预测未来主要的依据。
定性预测方法一般包括特尔菲法、专家会议法、岗位分析法等等。
优点在于比较注重于事物发展性质方面的预测,具有较大的灵活性,以充分发挥人的主观能动性。简单迅速,省时省力。
定量预测方法是指使用历史数据来预测需求的数学模型。根据掌握的比较完备的历史数据,运用一定的数学方法进行科学的加工,既揭示有关变量间的规律联系,来预测和推测未来发展变化情况的预测方法。
定量预测方法包括回归预测法。时间序列预测法。优点是运用数学方法进行处理分析,受主观因素的影响少。可以利用现代化的计算方法来进行大量的计算工作、数据处理,求出适应整个工程进展的最佳数据曲线。
注意定性预测和定量预测并不是相互排斥,而是可以互补的。
在实际的预测过程中,应该把两者结合起来使用。
二、回归分析算法
下面来看一下定量分析法中的回归分析算法。
1.定义
回归是指用于分析研究一个变量与一个或者是几个其他变量之间的依存关系,即研究因变量和自变量之间的异常关系。
目的在于根据一种已知的自变量数据来估计和预测因变量的总体均值。即分析自变量因变量基础上建立变量之间的回归方程,并将回归方程做预测模型,根据自变量在预测期的数据变化来预测因变量或者其它变化。
2.分类
根据相互关系中自变量的个数不同,可以分成一元回归分析和多元回归分析。
按照因变量个数的多少,分为简单的回归分析和多重回归分析。
按照自变量和因变量之间的关系类型,分为线性回归分析和非线性回归分析。
3.回归分析算法公式
(1)一元线性回归
一元线性回归是根据两个变量之间的数据关系来构建方程式:Y=a+bx
公式里面的 Y 是因变量,x 就是自变量, b 是回归系数。自变量 x 的变化会直接影响因变量 Y 的变化。
一元线性回归方程的回归系数,可以根据给定的数据表通过最小二乘法来求取。
(2)多元线性回归
多元线性回归是一元线性回归的扩展,涉及到多个预测变量: Y=a+b1x1+b2x2
多元线性回归,也可以用最小二乘法法求解
(3)非线性回归
非线性回归相对于线性回归来讲,如果回归模型的因变量不是自变量的一次函数,回归规律在图形上表现可能不是一个形状,而是一个形态各异的曲线,称它为
非线性回归。
在实际过程中,回归函数往往是比较复杂的一种非线性函数。
非线性回归函数的求解方式一般可以分为非线性变换成线性和非线性不能变换成线性。
可线性化处理的非线性回归的基本方法是通过变量变换,把非线性回归化为线性回归,然后用线性回归方法处理。对于一些不可线性回归的非线性回归问题,有一种解决方案叫做单纯形法。
单纯形法基于回归问题的最小乘法。在求误差平方和最小的极值问题上,运用最优方法中无约束极值问题的一种数学方法。
这种非线性回归的方法比较简单,结果和速度比较理想。
4.回归分析算法步骤
回归分析算法首先就是确定因变量和自变量,找到预测目标,然后分析出影响着预算目标涉及到的因素。
然后建立回归预测模型。依据自变量因变量的历史统计资料进行计算,在此基础上建立回归分析方程。
第三步,进行相关分析。
回归分析是对因果关系的自变量和因变量进行数理统计分析处理。当因变量和自变量确实存在某种关系,建立的回归方程才有意义。
因此,作为自变量的因素与作为因变量的预测对象是否有关,相关程度如何,以及判断这种相关程度,成为回归分析解决的问题。
进行相关分析一般要求给出相关关系,以相关系数的大小来判断自变量和因变量的相关程度,然后再计算预测误差。
回归预测模型是否用于实际预测取决于对回归预测模型的检验和对预测误差的计算。回归方程只有通过各种检验且预测误差比较小,才能将回归方程做预测模型进行预测。
最后利用回归预测模型进行预测并对预测值综合分析,确定最后的预测。
5.回归预测算法注意事项
应用回归预测算法首先要确定变量之间是否存在相互关系。如果变量之间不存在相互关系,对变量应用回归预测法就是错误值。
如果存在关系小,那么分析的结果偏差大。而且在运用回归预测的时候,应该选择因变量关系比较大的自变量。如果影响因变量的自变量很多,挑选大的自变量来进行分析。
另外,在应用回归分析预测时,可以用定性分析判断现象之间的依存关系。即定性分析和定量分析共存的概念。
还有避免回归预测的任意外推,以及选择应用合适的数据。
三、时间序列算法
1.概念
时间序列是指将同一统计指标的数值按照其发生的时间先后顺序排列而成的数列。时间序列分析根据已有的历史数据对未来进行预测。时间序列分析是根据系统观测得到的时间序列数据,通过曲线拟合参数估计来建立数学模型的理论,一般采用曲线模拟和参数估计的方法。比如非线性最小二乘法来进行计算。时间序列预测算法不考虑事物发展的原因,只是根据实际变化的方向和程度进行类推,用于预测下一个或者某个时期可能达到的水平。
时间序列数据变动存在着规律性与不规律性。
时间序列中每个观察值的大小,影响变化的各种不同因素在同一时间内发生作用的综合结果。而这些影响因素发生作用的大小方向变化,从时间特性来看。具体分为四大类。这也是时间序列的四个构成要素。
2.时间序列的构成要素
长期趋势,季节变化、循环变动、随意变动。
(1)长期趋势是时间序列随时间的变化而逐渐增加或减少的长期变化趋势,因变量随着时间的变化或者自变量变化呈现比较缓慢或者长期的上升或者下降趋势。
(2)季节变动是指时间序列在一年中固定的时间内呈现出固定规则或者较为有规律的增减变化。原因有自然原因,也有社会原因。
(3)循环变动。时间序列以若干年为周期的变动,这种因素的影响现象呈现出以若干年为一个周期不停的涨落,扩张或者缩减波峰或者波谷相互交替的波动。比如经济危机就是循环变动,每一次循环周期都要经历一个危机,萧条复苏、高涨四阶段。
循环变动与季节不同。循环变动进行周期不同,周期长度不同,模型识别的难易度不同,形成原因也不同。
(4)随机变动也叫不规则变动。时间序列中,由于随机因素影响的变动比如随机变动突然变动。一般情况下,不规则变动与实现无关,是一种没有规律的变动,很难预测,一般作为误差来处理。
3.分类
时间序列算法一般可以分为平稳时间序列模型和非平稳时间序列关系。
而平稳时间序列模型可以分为平滑模型、 ARMA 模型和非平稳时间序列的 ARIMA 模型。
(1)平滑预测法包括移动平均法和指数平滑法两种。具体是把时间序列做随机变量,运用算术平均和加权平衡的方法做未来预测的趋势,这样得到的趋势线比实际数据点的连线要平滑一点,所以称为平滑预测法。
(2)所谓时间序列平滑预测法只用平均的方法把时间序列中的随机波动剔除。然后是序列变得比较平滑,反映出基本轨迹,结合一定的模型来进行预测。
所求范围可以是序列或者序列中的某一部分,所用的平均数可以是简单平均数,也可以是加权平均数。
对于一组数据的观察值,数据的平均数的种类有很多,常见的有算术平均数、几何平均数、移动平均数、加权平均数。
(3) ARMA 预测模型,也叫自回归滑动平均模型,是由 AR 模型与 MA 模型为基础合成的模型。 AR 模型简称为自回归模型。 MA 模型是滑动平均模型,也叫做移动平均模型。
ARMA 预测模型公式,ARMA 的两个参数 pq ,特殊情况下如果 Q 等于0,模型是 AR 模型。
如果P等于0,模型是 MA 模型,这也就是所谓的 ARMA 预测模型是由 AR 模和 MA 模型构成。
(4) ARIMA 预测模型是博克斯詹金斯在70年代初提出的著名时间序列算法。自回归积分滑动平均模型是指预测对象随时间推移而形成的数据是一个随机数列,用一定的数学模型来近似扫描这个数据。通过对数据模型的分析研究,可以从本质上了解时间序列的结构特征,达到最小方差意义下的最优预算。
ARIMA 模型是三个参数 p d q 。 ARIMAPDQ 模型称为差分自回归移动平均模型, AR 是自回归, P 为自回归项, MA 为移动平均, Q 为移动平均项数, D 为时间序列成为平稳所做的差分次数。
在使用 ARIMA 模型的时候,主要就是在调整 p d q 的参数值来对具体的数值进行预测。下面是 ARIMA 的一般表达方式。
4.时间序列算法基本特征
第一点,时间序列分析法是根据过去的变化趋势预测未来的发展。前提是假定事物的过去延续到未来。时间序列根据客观事物发展的连续规律性,用过去历史数据,通过统计分析进一步推测未来的发展趋势。
事物的过去会延续到未来这个假设前提包括两方面的含义。第一,不会出现突然的跳跃的变化,相对平稳地前进。第二,获取当前的现象,可能表现现在将来活动的一个发展趋势。决定了一般情况下时间序列分析法对于短期比较适用,如果延伸到远的将来,会出现局限性,偏差会较大。
第二点。时间序列数据变动存在着规律性与部位对象。时间序列中每个观察值的大小是影响变化的各种不同因素在同一时刻发生的作用的综合结果。
影响因素发生的大小,方向变化的时间特征来看,这些因素造成一些数据的变动分为四个类型:趋势性、周期性、随机性、综合性。
所说的趋势性就是某个变量随着时间进展或者自变量变化呈现一种比较缓慢而长期的持续上涨或者持续下降。
周期性就是某个因素因为外部原因影响,随着自然季节的交替出现一个高峰和低谷的一种规律。
随机性是个别为随机变动,整体呈现一种统计规律。
综合性是把所说的各种情况交叠组合。
5.时间序列( ARIMA 算法)预测步骤
首先是季节调整,就是从一个时间序列中估计要删除季节影响的过程。目的就是更好的就是季节和月度序列的特征,或者是一个基本趋势。
然后是平稳性检验。这里的时间序列模型之后,前提假设要求时间序列是平稳的。检查时间序列平稳性的常用方法是 adm 。如果序列不存在平稳序列,需要用数据进行差分处理。在此可以确定序列达到平稳所做的差分次数 D 。
再次就是模型识别。建模前需要先确定模型的形式个数,通常用序列样本的自相关数和偏自相关系数来识别。通过检查拖尾性及周期性判断模式形式。
模型识别之后需要再进行参数估计检验。参数估计后需要对模型的合理性检验。可以通过检验模型的残差序列来实现。
一般情况下,如果模型的残差序列是白噪声序列,一般模型就合理,就可以用于预测。否则要重新去调整计算模型。
最后预测结果的分析,通过检验后可以带入参数,写成正规模型,得到最终的数据预测值。这样可以对预测模型的预测效果进行分析。