python中时间序列分析AR模型中最小二乘法估计

      时间序列分析中的AR模型是利用历史数据来预测未来数据的一种模型,也叫做自回归模型auto-regressive。在滤波器中也有应用,原理跟FIR滤波一样,如果是用matlab的话使用相同AR系数预测的序列和FIR滤波器函数得到的结果是一样的。AR模型重要的部分在于AR系数的估计,以最小二乘法为例,原理如下:

1.自回归模型的定义

自回归模型(AutoregressiveModel)是用自身做回归变量的过程,即利用前期若干时刻的随机变量的线性组合来描述以后某时刻随机变量的线性回归模型[1],它是时间序列中的一种常见形式[2]。(文献名字忘了,但是标注出这段来自文献)


上式中是指序列t时刻的值,是AR模型的系数,是白噪声序列,p为AR模型的阶次。如果知道系数的前提下,只要将系数对原时间序列卷积就可以得到预测数据,即FIR滤波器。

2.基于最小二乘法求解AR模型系数

设序列的值分别为{t=0,1,...N},设



AR(p)模型可以表示为:

由最小二乘法原理计算,AR模型系数的估计为:


最小二乘法估计系数的python 代码实现如下:

#最小二乘法估计

import numpy as np

def ar_least_square(sample,p):  
    matrix_x=np.zeros((sample.size-p,p))  
    matrix_x=np.matrix(matrix_x)  
    array=sample.reshape(sample.size)  
    j=0
    for i in range(0,sample.size-p):
        matrix_x[i,0:p]=array[j:j+p]  
        j=j+1  
    matrix_y=np.array(array[p:sample.size])
    matrix_y=matrix_y.reshape(sample.size-p,1)
    matrix_y=np.matrix(matrix_y)
    #cofe为AR系数 
    cofe=np.dot(np.dot((np.dot(matrix_x.T,matrix_x)).I,matrix_x.T),matrix_y)
    return cofe



  • 5
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值