gpt4 book ai didi

r - R 中具有限制系数的 ARIMA 的 AIC、BIC 值

转载 作者:行者123 更新时间:2023-12-02 00:31:36 24 4
gpt4 key购买 nike

指定相同 AR(或 MA)模型由 R 中的 forecast 包中的函数 arima() 进行估计的不同方法不同的 BIC(贝叶斯信息准则)值。

为什么会发生这种情况?

考虑两种模型:

(1) AR(1)
(2) AR(2),AR2 上的系数限制为零

从表面上看,这两个模型是相同的。然而,他们的估计可能会有所不同(?)。不知道为什么它们会产生相等的系数估计、相等的对数似然值和相等的 AIC 值,但 BIC 值不同。

由于 BIC 值不同,而似然性相等并且 AIC 值相等,因此两个模型之间用于估计的观测值数量必须不同。然而,观测值数量的隐含差异不是 1 或 2,而是更多。

这是合理的,还是一个错误???

我想知道情况(2)有什么区别以及 BIC 是如何计算的。我希望能够重现结果,因此我需要了解这里的工作原理。

下面我提供了一个可重现的示例。在 R 中执行后,查看打印的 BIC 和 AICc 值 - 它们在模型之间是不同的。

library(forecast)
T=1000; seed=1; set.seed(seed); x=rnorm(T)
model1=arima(x,order=c(1,0,0) ,method="CSS-ML",transform.pars=FALSE)
model2=arima(x,order=c(2,0,0),fixed=c(NA,0,NA),method="CSS-ML",transform.pars=FALSE)
print(model1)
print(model2)

这同样适用于 AR(p) 和 MA(q) 模型,为了简单起见,我没有明确讨论它们。

如果有人能解释为什么会发生这种情况,那就太好了。谢谢!

最佳答案

AICc 和 BIC 的计算在 forecast:::print.Arima 函数中完成,而 AIC 由 arima() 返回。如果您查看 forecast:::print.Arima 的代码,您将看到以下内容:

npar <- length(x$coef) + 1
nstar <- length(x$residuals) - x$arma[6] - x$arma[7] * x$arma[5]
bic <- x$aic + npar * (log(nstar) - 2)
aicc <- x$aic + 2 * npar * (nstar/(nstar - npar - 1) - 1)

请注意,npar 不考虑非估计系数(即仅限于指定值的系数)。它假设 x$coef 中的所有系数均已估计。可以使用

来纠正这个问题
npar <- length(x$coef[x$mask]) + 1

我已经修复了 github version of the package ,所以CRAN版本会在下一个版本更新。

关于r - R 中具有限制系数的 ARIMA 的 AIC、BIC 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25668101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com