数据挖掘——时间序列算法之趋势拟合法
前言
趋势拟合法就是把时间作为自变量,相应的序列观察值作为因变量,建立序列值随时间变化的回归模型的方法。包括线性拟合和非线性拟合。至于要选择哪个拟合函数,最关键的还是要画出已有数据的曲线分布,然后选择和其耦合度最好的模型。
其他关于时间序列的预测算法,参见我的其他博文:
(1)、平滑法
(2)、趋势拟合法
(3)、组合模型
(4)、AR模型
(5)、MA模型
(6)、ARMA模型
(7)、ARIMA模型
(8)、ARCH模型
(9)、GARCH模型及其衍生模型
线性拟合
线性拟合的使用场合为长期趋势呈现出线形特征的场合(需要画图看出)。参数估计方法为最小二乘估计。可以使用线性回归来处理。
曲线拟合
如果长期趋势呈现出非线性特征,那么我们可以用曲线典线模型来拟合它。对曲线模型进行参数估计时,能转换成线性模型的都转化成线性模型,用线性最小二乘法进行参数估计,实在不能转化成线性模型的,就用迭代法进行参数估计。
可使用如下6个来选择最适合自己数据的曲线:
1、二次型
数学表达:
T
t
=
a
+
b
t
+
c
t
2
(1)
T_{t}=a+bt+ct^{2}\tag{1}
Tt=a+bt+ct2(1)
参数a、b、c的求解方法:
令 t 2 = t 2 , 原 模 型 变 换 为 T t = a + b t + c t 2 , 那 么 就 可 以 用 最 小 二 乘 法 求 解 了 。 令t_{2}=t^{2},原模型变换为T_{t}=a+bt+ct_{2},那么就可以用最小二乘法求解了。 令t2=t2,原模型变换为Tt=a+bt+ct2,那么就可以用最小二乘法求解了。
2、指数型
数学表达:
T
t
=
a
b
t
(2)
T_{t}=ab^{t}\tag{2}
Tt=abt(2)
参数a、b的求解方法:
对原模型求对数:
T
T
‘
=
l
n
T
t
T^{`}_{T}=lnT_{t}
TT‘=lnTt,则
a
‘
=
l
n
a
,
b
‘
=
l
n
b
a^{`}=lna,b^{`}=lnb
a‘=lna,b‘=lnb,则原模型可写为:
T
t
,
=
a
,
+
b
,
t
T_{t}^{,}= a^{,}+b^{,}t
Tt,=a,+b,t
那么用线性最小二乘法求出 a , , b , a^{,},b^{,} a,,b,,再做变换: a = e a , a=e^{a^{,}} a=ea,, b = e b , b=e^{b^{,}} b=eb,
3、修正指数型
数学表达:
T
t
=
a
+
b
c
t
(3)
T_{t}=a +bc^{t}\tag{3}
Tt=a+bct(3)
参数a、b的求解方法:
没办法,只能用用迭代法。
4、Gompertz型
数学表达:
T
t
=
e
a
+
b
c
t
(4)
T_{t}=e^{a+bc^{t}}\tag{4}
Tt=ea+bct(4)
参数a、b的求解方法:
没办法,只能用用迭代法。
5、Logistic型
数学表达:
T
t
=
1
a
+
b
c
t
(5)
T_{t}=\frac{1}{a + bc^{t}}\tag{5}
Tt=a+bct1(5)
参数a、b的求解方法:
没办法,只能用用迭代法。