电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

ARIMA时间序列建模过程——原理及python实现VIP免费

ARIMA时间序列建模过程——原理及python实现_第1页
1/7
ARIMA时间序列建模过程——原理及python实现_第2页
2/7
ARIMA时间序列建模过程——原理及python实现_第3页
3/7
ARIMA时间序列建模过程——原理及python实现ARIMA模型的全称叫做自回归查分移动平均模型,全称是(ARIMA,AutoregressiveIntegratedMovingAverageModel),是统计模型(statisticmodel)中最常见的一种用来进行时间序列预测的模型,AR、MA、ARMA模型都可以看作它的特殊形式。1.ARIMA的优缺点优点:模型十分简单,只需要内生变量而不需要借助其他外生变量。缺点:要求时序数据是稳定的(stationary),或者是通过差分化(differencing)后是稳定的;本质上只能捕捉线性关系,而不能捕捉非线性关系。2.ARIMA的参数与数学形式ARIMA模型有三个参数:p,d,q。p--代表预测模型中采用的时序数据本身的滞后数(lags),也叫做AR/Auto-Regressive项;d--代表时序数据需要进行几阶差分化,才是稳定的,也叫Integrated项;q--代表预测模型中采用的预测误差的滞后数(lags),也叫做MA/MovingAverage项。差分:假设y表示t时刻的Y的差分。ifd=0,yt=Yt,ifd=1,yt=Yt−Yt−1,ifd=2,yt=(Yt−Yt−1)−(Yt−1−Yt−2)=Yt−2Yt−1+Yt−2ARIMA的预测模型可以表示为:Y的预测值=白噪音+1个或多个时刻的加权+一个或多个时刻的预测误差。假设p,q,d已知,ARIMA用数学形式表示为:ytˆ=μ+ϕ1∗yt−1+...+ϕp∗yt−p+θ1∗et−1+...+θq∗et−q其中,ϕ表示AR的系数,θ表示MA的系数3.Python建模##构建初始序列importnumpyasnpimportmatplotlib.pyplotaspltimportstatsmodels.apiassmfromstatsmodels.graphics.tsaplotsimportacf,pacf,plot_acf,plot_pacffromstatsmodels.tsa.arima_modelimportARMAfromstatsmodels.tsa.arima_modelimportARIMA#序列化time_series_=pd.Series([151.0,188.46,199.38,219.75,241.55,262.58,328.22,396.26,442.04,517.77,626.52,717.08,824.38,913.38,1088.39,1325.83,1700.92,2109.38,2499.77,2856.47,3114.02,3229.29,3545.39,3880.53,4212.82,4757.45,5633.24,6590.19,7617.47,9333.4,11328.92,12961.1,15967.61])time_series_.index=pd.Index(sm.tsa.datetools.dates_from_range('1978','2010'))time_series_.plot(figsize=(12,8))plt.show()3.1异常值及缺失值处理异常值一般采用移动中位数方法:frompandasimportrolling_medianthreshold=3#指的是判定一个点为异常的阈值df['pandas']=rolling_median(df['u'],window=3,center=True).fillna(method='bfill').fillna(method='ffill')#df['u']是原始数据,df['pandas']是求移动中位数后的结果,window指的是移动平均的窗口宽度difference=np.abs(df['u']-df['pandas'])outlier_idx=difference>threshold缺失值一般是用均值代替(若连续缺失,且序列不平稳,求查分时可能出现nan)或直接删除。3.2判断是时序数据是稳定的方法一般是观察时序图(稳定的数据是没有趋势(trend),没有周期性(seasonality)的;即它的均值,在时间轴上拥有常量的振幅,并且它的方差,在时间轴上是趋于同一个稳定的值的。该方式并不严谨)或单位跟检测(ADF是一种常用的单位根检验方法,他的原假设为序列具有单位根,即非平稳,对于一个平稳的时序数据,就需要在给定的置信水平上显著,拒绝原假设。如果ADF统计量比临界值的值小,则可在该显著性水平下,拒绝原序列存在单位根的原假设,即原序列是平稳的。反之,则接受原假设,是非平稳序列)确定。ADF检验:t=sm.tsa.stattools.adfuller(time_series_log,)#ADF检测output=pd.DataFrame(index=['TestStatisticValue',"p-value","LagsUsed","NumberofObservationsUsed","CriticalValue(1%)","CriticalValue(5%)","CriticalValue(10%)"],columns=['value'])output['value']['TestStatisticValue']=t[0]output['value']['p-value']=t[1]output['value']['LagsUsed']=t[2]output['value']['NumberofObservationsUsed']=t[3]output['value']['CriticalValue(1%)']=t[4]['1%']output['value']['CriticalValue(5%)']=t[4]['5%']output['value']['CriticalValue(10%)']=t[4]['10%']print(output)###————————————————-——result—————————————————--———#####valueTestStatisticValue0.807369p...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

ARIMA时间序列建模过程——原理及python实现

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部