arima

R时间序列分析实例

杀马特。学长 韩版系。学妹 提交于 2020-02-17 09:22:05
一、作业要求 自选时间序列完成时间序列的建模过程,要求序列的长度>=100。 报告要求以下几部分内容: 数据的描述:数据来源、期间、数据的定义、数据长度。 作时间序列图并进行简单评价。 进行时间序列的平稳性检验,得出结论,不平稳时间序列要进行转化,最终平稳。 进行自相关、偏自相关图,得出模型的阶数。 对时间序列模型进行拟合,得出参数的估计值。 检验模型的残差项,判断模型是否合格,给出模型最终的估计结果。 应用建立的时间序列模型进行预测。 二、数据描述 数据来源 :国家统计局——统计数据——月度数据——交通运输——旅客运输量 时间范围选择“2005-”,表示2005年至今 点击“下载”,格式选择CSV,并重命名为“旅客运输量.csv” http://data.stats.gov.cn/easyquery.htm?cn=A01 本次使用的数据为表中的第8行——铁路客运量当期值(万人) 期间 :2005年1月至2019年10月 其中2005年至2017年的数据用来建立模型 2018年和2019年的数据用于和预测结果比较 数据的定义: 数据类型为时间序列(ts) #载入必要的R程序包 library(fUnitRoots) ## Warning: package 'fUnitRoots' was built under R version 3.5.3 ## Loading required

ARIMA模型(Autoregressive Integrated Moving Average model)

廉价感情. 提交于 2020-02-06 18:00:00
ARIMA模型(Autoregressive Integrated Moving Average model) ,差分整合移动平均自回归模型,又称整合移动平均自回归模型(移动也可称作滑动)。 A R I M A ( p , d , q ) { A R ( p ) − p 阶 自 回 归 M A ( q ) − q 阶 滑 动 平 均 d 为 使 之 成 为 平 稳 序 列 所 做 的 差 分 次 数 ( 阶 数 ) ARIMA(p,d,q) \begin{cases} AR(p)-p阶自回归\\ MA(q)-q阶滑动平均\\ d为使之成为平稳序列所做的差分次数(阶数) \end{cases} A R I M A ( p , d , q ) ⎩ ⎪ ⎨ ⎪ ⎧ ​ A R ( p ) − p 阶 自 回 归 M A ( q ) − q 阶 滑 动 平 均 d 为 使 之 成 为 平 稳 序 列 所 做 的 差 分 次 数 ( 阶 数 ) ​ 模型可表示为: ( 1 − ∑ i = 1 p ϕ i L i ) ( 1 − L ) d X t = ( 1 + ∑ i = 1 p θ i L i ) ε t \left(1-\sum_{i=1}^p\phi_iL^i\right)(1-L)^dX_t=\left(1+\sum_{i=1}^p\theta_iL^i\right)

Extract p values in a list for Adfuller test(Test for stationarity) in ARIMA Time series modeling python pandas

你。 提交于 2020-02-04 05:29:05
问题 df Col1 Col2 Col3 12 10 3 3 5 2 100 12 10 and so on..... Code to write adfuller test for ARIMA modeling in Time series. (will calculate p value for all the columns of dataframe df) import statsmodels.tsa.stattools as tsa adf_results = {} for col in df.columns.values: adf_results[col] = tsa.adfuller(df[col]) Using this code I am getting outputs in below format: (output when I type adf_result) [IN] adf_result [OUT] {'Col1': (-4.236149193618492, 0.0005719678593039654, #This is the second value

How do I simulate 10 ARIMA time series data of specified orders using R

强颜欢笑 提交于 2020-01-25 02:47:33
问题 I want to simulate 10 ARIMA time-series data that will have the following order (1,0,1), (1,1,1) and (2,2,2) . such that if I test each series with auto.arima function of forecast package it will give me what I have specified. I have tried these set.seed(123) n <- 10 # white noise: wn <- ts(rnorm(n)) # initialise the first two values: arma11 <- arma22 <- wn[1:2] # loop through and create the 3:1000th values: for(i in 3:n){ arma11[i] <- arma11[i - 1] * 0.8 + wn[i - 1] * 0.3 + wn[i] arma22[i] <

如何预测股票分析--自动ARIMA

爱⌒轻易说出口 提交于 2020-01-24 15:55:14
在 上一篇 中,我们发现knn和线性回归一样,表现的不是特别好,来看看时间序列的表现 时间序列预测法其实是一种回归预测方法,属于定量预测,其基本原理是;一方面承认事物发展的延续性,运用过去时间序列的数据进行统计分析,推测出事物的发展趋势;另一方面充分考虑到偶然因素影响而产生的随机性,为了消除随机波动的影响,利用历史数据进行统计分析,并对数据进行适当处理,进行趋势预测。 自动ARIMA ARIMA是一种非常流行的时间序列预测统计方法。ARIMA模型使用过去的值来预测未来的值。ARIMA中有三个重要参数: p(用来预测下一个值的过去值) q(用来预测未来值的过去预测误差) d(差分的顺序) ARIMA的参数优化需要大量时间。因此我们将使用自动 ARIMA,自动选择误差最小的(p,q,d)最佳组合。 顺便插一句,如果不使用自动选择误差的话,你可以通过计算数据的差分,作图然后手动选择p d q的大小,如果你对这一个方向感兴趣,可以小窗我或者底下留言,在这里不多做介绍。 #导入库 from pyramid.arima import auto_arima #按照索引排序 data = df.sort_index(ascending=True, axis=0) #划分训练集、测试集 train = data[:987] valid = data[987:] # 取出两个集合中close这列的数据

Understanding Fourier for Seasonality

跟風遠走 提交于 2020-01-23 15:28:51
问题 I am using the auto.arima from the forecast package in R to determine the optimal K-terms for fourier series. After I do that, I want to then calculate the seasonality and plug that one seasonality variable into a multiple regression model. Using the dataset from the forecast package, I was able to extract the optimal amount of fourier terms: library(forecast) ##Public dataset from the forecast package head(gas) ##Choose Optimal Amount of K-Terms bestfit <- list(aicc=Inf) for(i in 1:6) { fit

Understanding Fourier for Seasonality

泄露秘密 提交于 2020-01-23 15:28:10
问题 I am using the auto.arima from the forecast package in R to determine the optimal K-terms for fourier series. After I do that, I want to then calculate the seasonality and plug that one seasonality variable into a multiple regression model. Using the dataset from the forecast package, I was able to extract the optimal amount of fourier terms: library(forecast) ##Public dataset from the forecast package head(gas) ##Choose Optimal Amount of K-Terms bestfit <- list(aicc=Inf) for(i in 1:6) { fit

R Arima works but Python statsmodels SARIMAX throws invertibility error

混江龙づ霸主 提交于 2020-01-14 09:02:46
问题 I am comparing SARIMAX fitting results between R (3.3.1) forecast package (7.3) and Python's (3.5.2) statsmodels (0.8). The R-code is: library(forecast) data("AirPassengers") Arima(AirPassengers, order=c(2,1,1), seasonal=list(order=c(0,1,0), period=12))$aic [1] 1017.848 The Python code is: from statsmodels.tsa.statespace import sarimax import pandas as pd AirlinePassengers = pd.Series([112,118,132,129,121,135,148,148,136,119,104,118,115,126, 141,135,125,149,170,170,158,133,114,140,145,150,178

时间序列ARIMA模型

旧街凉风 提交于 2020-01-07 13:15:37
时间序列 ARIMA模型 1、 数据的平稳性与差分法 让均值和方差不发生明显的变化(让数据变平稳),用差分法 2、 ARIMA 模型 -----差分自回归平均移动模型 求解回归的经典算法:最大似然估计、最小二乘法 在具体运用时,需要指定三个参数,即( p, d, q); 其中: p表示自回归的阶数,    d表示做几阶差分(一般做一阶差分),    q表示平均移动模型的阶数 3、 相关函数的评估方法 选择 p和 q 自相关函数 ACF( Autocorrelation Function) ( 1)有序的随机变量序列 与其自身进行比较 ( 2)自相关函数反映了同一序列在不同时序的取值之间的相关性。 其中:虚线表示置信区间 偏自相关函数 PACF( Partial Autocorrelation Function) 4、建立 ARIMA模型 注意:   通过 PACF函数的图可以得知 p的取值   通过 ACF函数的图得知 q的取值 截尾:可以允许有少部分的离群点 使用 ARIMA建模的流程: (1) 将序列平稳 ----通过差分法确定 d (2) P和 q阶数的确定 ----通过 ACF和 PACF (3) ARIMA( p, d, q) 5、 参数选择 AIC、 BIC的值都是越低越好 -----主要就是保证精度的准则下, k的值尽量小 QQ图:观察所绘制出的图是否是一条直线,若是

Same values for ARIMA forecasts in R

痴心易碎 提交于 2020-01-06 07:59:11
问题 I am trying to do forecasting of stock prices in R using ARIMA. I am using the auto.arima function to fit my model. Every time I'm trying to do that I get the same value for the forecasted values. I tried using different stocks but the same thing happens in every case. Here I tried forecasting apple prices: arimapple <- ts(appletrain, start = timedata[1]) fitappletrain <- auto.arima(arimapple) fitappletrain forecastapple <- forecast(fitappletrain, h=57) forecastapple and the output that I get