当使用 auto.arima 时,我们得到最好的 pd 和 q 值。有没有办法将这些值动态发送到 arima() 函数中?
While using auto.arima, we get the best p d and q values. Is there a way to dynamically send those values into arima() function?
library(forecast)
fit_m <- auto.arima(dataset1, p=0, d=1, max.d =2, max.p=2, max.q=2,
max.P=2, max.Q=2, max.D=2, start.p =0, start.q=0,
start.P=0, start.Q=0, stepwise=TRUE, trace=TRUE)
fit_m_final <- arima(dataset1, c(0, 1, 0), seasonal=list(order=c(0, 1, 0),
period=12))
最佳值应进入 arima()
函数,而无需像上面那样明确输入。
你应该这样做:
下面是一个小例子。
library(forecast)
x<-auto.arima(gas)
print(x)
Series: gas
ARIMA(2,1,1)(0,1,1)[12]
Coefficients:
ar1 ar2 ma1 sma1
0.3756 0.1457 -0.8620 -0.6216
s.e. 0.0780 0.0621 0.0571 0.0376
sigma^2 estimated as 2587081: log likelihood=-4076.58
AIC=8163.16 AICc=8163.29 BIC=8183.85
有了这个你就可以从你的 auto.arima 中分离出 p q 和 d 的值。
x$arma
[1] 2 1 0 1 12 1 1
我建议您查看 Rob J Hyndman 教授和 George Athanasopoulos 教授(是预测包的作者)的免费 book。
这似乎有效。
library(forecast)
示例 1
auto.arima(wineind)
# Series: wineind
# ARIMA(1,1,2)(0,1,1)[12]
#
# Coefficients:
# ar1 ma1 ma2 sma1
# 0.4299 -1.4673 0.5339 -0.6600
# s.e. 0.2984 0.2658 0.2340 0.0799
#
# sigma^2 estimated as 5399312: log likelihood=-1497.05
# AIC=3004.1 AICc=3004.48 BIC=3019.57
arima(wineind,
order=auto.arima(wineind)$arma[c(1, 6, 2)],
seasonal=list(order=auto.arima(wineind)$arma[c(3, 7, 4)],
period=auto.arima(wineind)$arma[5]))
# Call:
# arima(x = wineind, order = auto.arima(wineind)$arma[c(1, 6, 2)],
# seasonal = list(order = auto.arima(wineind)$arma[c(3, 7, 4)],
# period = auto.arima(wineind)$arma[5]))
#
# Coefficients:
# ar1 ma1 ma2 sma1
# 0.4299 -1.4673 0.5339 -0.6600
# s.e. 0.2984 0.2658 0.2340 0.0799
#
# sigma^2 estimated as 5266773: log likelihood = -1497.05, aic = 3004.1
示例 2
auto.arima(woolyrnq)
# Series: woolyrnq
# ARIMA(1,0,0)(0,1,1)[4]
#
# Coefficients:
# ar1 sma1
# 0.8077 -0.6669
# s.e. 0.0629 0.0944
#
# sigma^2 estimated as 175880: log likelihood=-858
# AIC=1722 AICc=1722.21 BIC=1730.23
arima(woolyrnq,
order=auto.arima(woolyrnq)$arma[c(1, 6, 2)],
seasonal=list(order=auto.arima(woolyrnq)$arma[c(3, 7, 4)],
period=auto.arima(woolyrnq)$arma[5]))
# Call:
# arima(x = woolyrnq, order = auto.arima(woolyrnq)$arma[c(1, 6, 2)],
# seasonal = list(order = auto.arima(woolyrnq)$arma[c(3, 7, 4)],
# period = auto.arima(woolyrnq)$arma[5]))
#
# Coefficients:
# ar1 sma1
# 0.8077 -0.6669
# s.e. 0.0629 0.0944
#
# sigma^2 estimated as 172819: log likelihood = -858, aic = 1722
只需根据您的需要调整 auto.arima
部分中的特殊参数。
library(forecast)
fit_m <- auto.arima(dataset1, p=0, d=1, max.d =2, max.p=2, max.q=2,
max.P=2, max.Q=2, max.D=2, start.p =0, start.q=0,
start.P=0, start.Q=0, stepwise=TRUE, trace=TRUE)
fit_m_final <- arima(dataset1, c(0, 1, 0), seasonal=list(order=c(0, 1, 0),
period=12))
最佳值应进入 arima()
函数,而无需像上面那样明确输入。
你应该这样做:
下面是一个小例子。
library(forecast)
x<-auto.arima(gas)
print(x)
Series: gas
ARIMA(2,1,1)(0,1,1)[12]
Coefficients:
ar1 ar2 ma1 sma1
0.3756 0.1457 -0.8620 -0.6216
s.e. 0.0780 0.0621 0.0571 0.0376
sigma^2 estimated as 2587081: log likelihood=-4076.58
AIC=8163.16 AICc=8163.29 BIC=8183.85
有了这个你就可以从你的 auto.arima 中分离出 p q 和 d 的值。
x$arma
[1] 2 1 0 1 12 1 1
我建议您查看 Rob J Hyndman 教授和 George Athanasopoulos 教授(是预测包的作者)的免费 book。
这似乎有效。
library(forecast)
示例 1
auto.arima(wineind)
# Series: wineind
# ARIMA(1,1,2)(0,1,1)[12]
#
# Coefficients:
# ar1 ma1 ma2 sma1
# 0.4299 -1.4673 0.5339 -0.6600
# s.e. 0.2984 0.2658 0.2340 0.0799
#
# sigma^2 estimated as 5399312: log likelihood=-1497.05
# AIC=3004.1 AICc=3004.48 BIC=3019.57
arima(wineind,
order=auto.arima(wineind)$arma[c(1, 6, 2)],
seasonal=list(order=auto.arima(wineind)$arma[c(3, 7, 4)],
period=auto.arima(wineind)$arma[5]))
# Call:
# arima(x = wineind, order = auto.arima(wineind)$arma[c(1, 6, 2)],
# seasonal = list(order = auto.arima(wineind)$arma[c(3, 7, 4)],
# period = auto.arima(wineind)$arma[5]))
#
# Coefficients:
# ar1 ma1 ma2 sma1
# 0.4299 -1.4673 0.5339 -0.6600
# s.e. 0.2984 0.2658 0.2340 0.0799
#
# sigma^2 estimated as 5266773: log likelihood = -1497.05, aic = 3004.1
示例 2
auto.arima(woolyrnq)
# Series: woolyrnq
# ARIMA(1,0,0)(0,1,1)[4]
#
# Coefficients:
# ar1 sma1
# 0.8077 -0.6669
# s.e. 0.0629 0.0944
#
# sigma^2 estimated as 175880: log likelihood=-858
# AIC=1722 AICc=1722.21 BIC=1730.23
arima(woolyrnq,
order=auto.arima(woolyrnq)$arma[c(1, 6, 2)],
seasonal=list(order=auto.arima(woolyrnq)$arma[c(3, 7, 4)],
period=auto.arima(woolyrnq)$arma[5]))
# Call:
# arima(x = woolyrnq, order = auto.arima(woolyrnq)$arma[c(1, 6, 2)],
# seasonal = list(order = auto.arima(woolyrnq)$arma[c(3, 7, 4)],
# period = auto.arima(woolyrnq)$arma[5]))
#
# Coefficients:
# ar1 sma1
# 0.8077 -0.6669
# s.e. 0.0629 0.0944
#
# sigma^2 estimated as 172819: log likelihood = -858, aic = 1722
只需根据您的需要调整 auto.arima
部分中的特殊参数。