【发布时间】:2011-12-23 14:52:18
【问题描述】:
使用 arima 函数,我发现了一些不错的结果,但是现在我无法解释它们以在 R 之外使用。 我目前正在与 MA 术语作斗争,这是一个简短的例子:
ser=c(1, 14, 3, 9) #Example series
mod=arima(ser,c(0,0,1)) #From {stats} library
mod
#Series: ser
#ARIMA(0,0,1) with non-zero mean
#
#Coefficients:
# ma1 intercept
# -0.9999 7.1000
#s.e. 0.5982 0.8762
#
#sigma^2 estimated as 7.676: log likelihood = -10.56
#AIC = 27.11 AICc = Inf BIC = 25.27
mod$resid
#Time Series:
#Start = 1
#End = 4
#Frequency = 1
#[1] -4.3136670 3.1436951 -1.3280435 0.6708065
predict(mod,n.ahead=5)
#$pred
#Time Series:
#Start = 5
#End = 9
#Frequency = 1
#[1] 6.500081 7.100027 7.100027 7.100027 7.100027
#
#$se
#Time Series:
#Start = 5
#End = 9
#Frequency = 1
#[1] 3.034798 3.917908 3.917908 3.917908 3.917908
?arima
查看规范时,会出现以下公式:
X[t] = a[1]X[t-1] + … + a[p]X[t-p] + e[t] + b[1]e[t-1] + … + b[q]e[t-q]
鉴于我选择的 AR 和 MA 术语,并考虑到我已经包含了一个常数,这应该减少为:
X[t] = e[t] + b[1]e[t-1] + constant
但是,当我将 R 的结果与手动计算进行比较时,这并不成立:
6.500081 != 6.429261 == -0.9999 * 0.6708065 + 7.1000
此外,假设我知道第一个错误,我也无法成功重现 insample 错误,这应该是可能的:
-4.3136670 * -0.9999 +7.1000 != 14 - 3.1436951
3.1436951 * -0.9999 +7.1000 != 3 + 1.3280435
-1.3280435 * -0.9999 +7.1000 != 9 - 0.6708065
我希望有人能对这件事有所了解,这样我才能真正使用我获得的好结果。
【问题讨论】:
-
由于这不是一个编程问题,您可能会在stats.stackexchange.com 上得到更多/更好的答案。
-
感谢您的建议,我现在已将其交叉发布http://stats.stackexchange.com/questions/20254/ma-terms-in-arima
标签: r time-series