python 时间序列分析

import os
import tensorflow as tf
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
import csv
import pandas as pd
取数据 增加时间序列
filename3=pd.read_csv(“D:/fpyjtjsr.csv”)
rng=pd.date_range(‘2018/1/1’,periods=12,freq=’M’)
zp3=filename3[“zp3”]
zp3=zp3.astype(np.float64)
ts1=pd.Series(zp3,index=rng)
注意 :此处应当:ts2=pd.Series(zp3.values,index=rng) 用.values
ts2.resample(‘3m’).sum() 重采样 3月=1季
插值:如果在数据重采样时,出现数据为空值,则需插入数据
1.ffill 前插,
2.bfill 后插
3.ts2.resample(‘d’).interpolate()
ts2.resample(‘d’).interpolate(‘linear’) 线性拟合

滑动窗口:类似卷积
ts3=ts2.resample(‘d’).interpolate(‘linear’)
ts3.head()
r=ts3.rolling(window=10) 十个数为一个窗口
r.mean() #r.max min std skew var
取平均值更好反应当时情况
plt.figure(figsize=(15,5))
ts3.plot(style=’r–’)
ts3.rolling(window=10).mean().plot(style=’b’)
plt.show()
画图,可以看出用窗口的点会平缓一些。
ARIMA:
平稳性:要求经由样本时间序列所得的拟合曲线,在未来的时间内,还能顺着现有的形态惯性延续,【要求序列的均值和方差不发生明显变化】
严平稳:表示分布不随时间的改变而改变,如白噪声(正态),无论怎么取,期望为0,方差为1
弱平稳:期望与相关系数(依赖性)不变,未来某时刻的t值X就要依赖于他的过去信息,所以需要依赖性。
采用差分法:时间序列在t与t-1时刻的差值
ts3[‘diff_1’]=ts3.diff(1)

自回归模型(AR)
描述当前值与历史值之间的关系,
p阶自回归过程的公式定义:Yt当前值=u常数项+E:(P~i)YiYt-i+et误差

p是阶数(与前几天的比对) Yi是自相关系数
限制:用自身数据预测+平稳性+自相关性小于0.5,适用于预测与自身前期相关的现象

移动平均模型(MA)
关注的是自回归模型中的误差项的累加
q阶自回归过程的公式定义:Yt=u+et+E(q~i)Qiet-i
能够有效消除预测中的随机波动

自回归移动平均模型(ARMA)
自回归与移动平均的结合
公式:Yt=u+E(P~i)YiYt-i+et+E(q~i)Qiet-i

ARIMA(p\d\q) 差分自回归移动平均模型
AR :自回归,P:自回归项;MA移动平均
q为移动平均项数,d为时间序列成为平稳时所作的查分次数
原理:将非平稳时间序列转化为平稳时间序列然后将因变量仅对它的滞后值以及随机误差项的现值和滞后值进行回归所建立的模型。

自相关函数ACF
有序的随机变量序列与其自身相比较,自相关函数反映了同一序列在不同时序的取值之间的相关性
公式:ACF(k)=pk=Cov(yt,yt-k)/Var(yt)
Pk的取值范围为【-1,1】
帮助选择p和q值

偏自相关函数PACF 严格这两个变量之间的相关性
对于一个平稳AR(p)模型,求出滞后k自相关字数p(k)时,实际上得到并不是x(t)与x(t-k)之间单纯的相关关系
x(t)同时还会受到中间k-1个随机变量x(t-1),x(t-2)……x(t-k+1)的影响

未完

猜你喜欢

转载自blog.csdn.net/CSDNJxxxx/article/details/82423898