Auto.arima() 函数不会产生白噪声。我还应该如何进行数据建模
Auto.arima() function does not result in white noise. How else should I go about modeling data
这是初始数据图(执行对数转换后)。
很明显,既有线性趋势也有季节性趋势。我可以通过第一个和第十二个(季节性)差异来解决这两个问题:diff(diff(data), 12)。这样做之后,这是结果数据的图
.
这个数据看起来不太好。虽然平均值不变,但随着时间的推移,我们会看到漏斗效应。这里是 ACF/PACF:。
任何可能适合尝试的建议。我使用了建议 ARIMA(2,0,2)xARIMA(1,0,2)(12) 模型的 auto.arima() 函数。然而,一旦我从拟合中取出残差,很明显它们中仍然存在某种结构。这是拟合的残差图以及残差的 ACF/PACF。
关于哪些滞后在 ACF/PACF 残差中出现峰值,似乎没有季节性模式。但是,这仍然是前面步骤未捕获的内容。你建议我做什么?我怎样才能着手构建具有更好模型诊断的更好模型(此时它只是一个更好看的 ACF 和 PACF)?
到目前为止,这是我的简化代码:
library(TSA)
library(forecast)
beer <- read.csv('beer.csv', header = TRUE)
beer <- ts(beer$Production, start = c(1956, 1), frequency = 12)
# transform data
boxcox <- BoxCox.ar(beer) # 0 in confidence interval
beer.log <- log(beer)
firstDifference <- diff(diff(beer.log), 12) # get rid of linear and
# seasonal trend
acf(firstDifference)
pacf(firstDifference)
eacf(firstDifference)
plot(armasubsets(firstDifference, nar=12, nma=12))
# fitting the model
auto.arima(firstDifference, ic = 'bic') # from forecasting package
modelFit <- arima(firstDifference, order=c(1,0,0),seasonal
=list(order=c(2, 0, 0), period = 12))
# assessing model
resid <- modelFit$residuals
acf(resid, lag.max = 15)
pacf(resid, lag.max = 15)
这是数据,如果有兴趣的话(我想你可以使用 html 到 csv 转换器,如果你愿意的话):https://docs.google.com/spreadsheets/d/1S8BbNBdQFpQAiCA4J18bf7PITb8kfThorMENW-FRvW4/pubhtml
简,
这里发生了一些事情。
我们使用 tsay 方差检验而不是对数检验,它显示方差在第 118 期后增加。加权最小二乘法处理它。
从第 111 期开始,3 月变得更高。ar12 或季节性差异的替代方法是识别季节性虚拟变量。我们发现 12 个月中有 7 个月不寻常,有几个水平变化,AR2 有 2 个异常值。
这是拟合和预测。
这是残差。
残差的 ACF
注:我是软件Autobox的开发者。所有模型都是错误的。有些有用。
这是Tsay的论文
http://onlinelibrary.wiley.com/doi/10.1002/for.3980070102/abstract
这是初始数据图(执行对数转换后)。
很明显,既有线性趋势也有季节性趋势。我可以通过第一个和第十二个(季节性)差异来解决这两个问题:diff(diff(data), 12)。这样做之后,这是结果数据的图
这个数据看起来不太好。虽然平均值不变,但随着时间的推移,我们会看到漏斗效应。这里是 ACF/PACF:
任何可能适合尝试的建议。我使用了建议 ARIMA(2,0,2)xARIMA(1,0,2)(12) 模型的 auto.arima() 函数。然而,一旦我从拟合中取出残差,很明显它们中仍然存在某种结构。这是拟合的残差图以及残差的 ACF/PACF。
关于哪些滞后在 ACF/PACF 残差中出现峰值,似乎没有季节性模式。但是,这仍然是前面步骤未捕获的内容。你建议我做什么?我怎样才能着手构建具有更好模型诊断的更好模型(此时它只是一个更好看的 ACF 和 PACF)?
到目前为止,这是我的简化代码:
library(TSA)
library(forecast)
beer <- read.csv('beer.csv', header = TRUE)
beer <- ts(beer$Production, start = c(1956, 1), frequency = 12)
# transform data
boxcox <- BoxCox.ar(beer) # 0 in confidence interval
beer.log <- log(beer)
firstDifference <- diff(diff(beer.log), 12) # get rid of linear and
# seasonal trend
acf(firstDifference)
pacf(firstDifference)
eacf(firstDifference)
plot(armasubsets(firstDifference, nar=12, nma=12))
# fitting the model
auto.arima(firstDifference, ic = 'bic') # from forecasting package
modelFit <- arima(firstDifference, order=c(1,0,0),seasonal
=list(order=c(2, 0, 0), period = 12))
# assessing model
resid <- modelFit$residuals
acf(resid, lag.max = 15)
pacf(resid, lag.max = 15)
这是数据,如果有兴趣的话(我想你可以使用 html 到 csv 转换器,如果你愿意的话):https://docs.google.com/spreadsheets/d/1S8BbNBdQFpQAiCA4J18bf7PITb8kfThorMENW-FRvW4/pubhtml
简,
这里发生了一些事情。
我们使用 tsay 方差检验而不是对数检验,它显示方差在第 118 期后增加。加权最小二乘法处理它。
从第 111 期开始,3 月变得更高。ar12 或季节性差异的替代方法是识别季节性虚拟变量。我们发现 12 个月中有 7 个月不寻常,有几个水平变化,AR2 有 2 个异常值。
这是拟合和预测。
这是残差。
残差的 ACF
注:我是软件Autobox的开发者。所有模型都是错误的。有些有用。
这是Tsay的论文 http://onlinelibrary.wiley.com/doi/10.1002/for.3980070102/abstract