python实现向量自回归(VAR)模型

1、使用场景

 

以往预测模型大都采用有监督的方法进行建模,但是预测未来一段时间目标值的变化时,出现未来特征未知导致只能进行模型的训练和测试,不能用于未来结果预测,常用的办法就是采用当前自变量(求均值,单变量预测等办法)获取未来自变量,然后利用自变量预测未来目标值(缺点:预测自变量预测目标值结果肯定不是那么理想)。向量自回归模型(VAR)很好的解决了该类问题,VAR模型除了分析自身滞后项(目标值)的影响外,还分析了其他相关因素的滞后因素(因变量)的项对未来值产生的影响。

2、模型原理

y_{t}=\ss _{1}\bullet y_{t-1}+a_{1}\bullet x_{t-1}+\ss _{2}\bullet y_{t-2}+a_{2}\bullet x_{t-2}+...

其中,y为历史目标值,x为其他因子的滞后项。

向量自回归的有点是集合多元线性回归的优点(可以加入多个因子)以及时间序列模型的优点(可以分析滞后项的影响)的综合模型。

VAR其实是一类模型,以上是最基础的VAR模型形式,其他还有SVAR,CVAR,VECM,同统称为VAR类模型。

3、VAR模型的建模步骤

1)画N个因子的序列相关图:计算相关系数,查看一下线性相关性,其中相关系数的大小反应线性相关程度,不反应非线性,如果等于0,不能排除存在非线性先关的可能。

2)对N个因子的原始数据进行平稳性检验,也就是ADF检验:VAR模型要求所有因子数据同阶协整,也就是N个因子里面如果有一个因子数据不稳定,就要全体做差分,一直到平稳为止。

3)对应变量yt和影响因子xt做协整检验:一般就是EG协整关系检验了,为了看看Y和各个因子Xi之间是否存在长期平稳的关系,这个检验要放到所有数据都通过ADF检验以后才可以做。如果那个因子通不过协整检验,那基本也要剔除。

4)然后就通过AIC、BIC以及LR定阶:一般来说是综合判断三者,AIC,BIC要做小,

比如-10的AIC就优于-1AIC,LR反之要最大的。但是具体偏重那个,就看个人偏好,一般来说,博主的经验是看AIC和LR,因为BIC的惩罚力度大于AIC,大多数时间不太好用。

具体的实现步骤一般是,把滞后项的阶数列一个范围,比如1-5,然后直接建模,其他啥都不看,先看AIC,BIC,LR的值。一般符合条件的不会只有一个,可以挑2-3个最好的,继续进行。

5)定阶完成后,就是估计参数,看参数的显著性。

好的模型所有参数的要通过显著性检验。

6)对参数进行稳定性检验

VAR除了对原始数据要进行平稳处理,估计出来的参数还需要检验参数稳定性。

这是为了查看模型在拟合时,数据样本有没有发生结构性变化

おすすめ

転載: blog.csdn.net/zhangzhoubin666/article/details/117413603