- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
data <-c(88, 84, 85, 85, 84, 85, 83, 85, 88, 89, 91, 99, 104, 112, 126, 138, 146,151, 150, 148, 147, 149, 143, 132, 131, 139, 147, 150, 148, 145, 140, 134, 131, 131, 129, 126, 126, 132, 137, 140, 142, 150, 159, 167, 170, 171, 172, 172, 174, 175, 172, 172, 174, 174, 169, 165, 156, 142, 131, 121, 112, 104, 102, 99, 99, 95, 88, 84, 84, 87, 89, 88, 85, 86, 89, 91, 91, 94, 101, 110, 121, 135, 145, 149, 156, 165, 171, 175, 177, 182, 193, 204, 208, 210, 215, 222, 228, 226, 222, 220)
为什么作用于数据一阶差分的 ARMA 模型与对应的 ARIMA 模型不同?
for (p in 0:5)
{
for (q in 0:5)
{
#data.arma = arima(diff(data), order = c(p, 0, q));cat("p =", p, ", q =", q, "AIC =", data.arma$aic, "\n");
data.arma = arima(data, order = c(p, 1, q));cat("p =", p, ", q =", q, "AIC =", data.arma$aic, "\n");
}
}
与 Arima(data,c(5,1,4))
和 Arima(diff(data),c(5,0,4))
相同预测包。我可以通过
auto.arima(diff(data),max.p=5,max.q=5,d=0,approximation=FALSE, stepwise=FALSE, ic ="aic", trace=TRUE);
auto.arima(data,max.p=5,max.q=5,d=1,approximation=FALSE, stepwise=FALSE, ic ="aic", trace=TRUE);
但是 auto.arima 背后的算法似乎没有考虑这些数据的最小 AIC 估计值的持有者;因此,次优选择 ARMA(3,0) 而不是 ARMA(5,4) 作用于第一个差异。一个相关的问题是,在一个人认为一个模型比另一个模型更好之前,两个 AIC 估计值应该相差多少与编程无关 - 至少应该考虑/报告最小的 AIC 持有者,即使 9 个系数可能有点太多了根据 100 次观测进行预测。
我的 R 问题是:
1) 双循环的矢量化版本,所以它更快?
2) 为什么 arima(5,1,4)
作用于数据和 arma(5,4)
作用于数据的一阶差分?举报哪一个?
3) 如何对 AIC 输出进行排序,以便较小的优先?
谢谢。
最佳答案
这里提出了很多问题和问题。我会尽量一一回复。
Arima()
只是 arima()
的包装,所以它会给出相同的模型。
arima() 通过使用扩散先验来处理具有差异的模型。这与在拟合模型之前仅对数据进行差分不同。因此,您会从 arima(x,order=c(p,1,q))
和 arima(diff(x),order=c(p,0, q))
.
auto.arima()
直接处理差分,在拟合时不使用扩散先验。因此,您将从 auto.arima(x,d=1,...)
和 auto.arima(diff(x),d=0,...) 获得相同的结果
auto.arima()
有一个参数 max.order
指定 p+q 的最大值。默认情况下,max.order=5
,因此不会考虑您的 arima(5,1,4)
。如果你想考虑这么大的模型,增加 max.order
(虽然我不推荐它)。
您不能在每次迭代时对涉及非线性优化的循环进行矢量化。
如果您想对输出进行排序,您需要将其保存到 data.frame 中,然后对相关列进行排序。代码目前只是在运行时吐出结果,除了最新拟合的模型外,什么都没有保存。
关于r - ARIMA、ARMA 和 AIC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1664473/
我尝试手动编写 AIC 的公式。我想将它与 scikit learn 结合使用。为了测试我的编码是否正确,我比较了给定相同数据集的 statsmodels 的 AIC 值。但如果我比较模型 M1 和模
在跨数据框的一个响应变量和多个解释变量之间应用模型后,我想按 AIC 分数对每个模型进行排名。我遇到了一个非常相似的问题,它正是我想做的。 Using lapply on a list of mode
假设我有以下数据: array([[0.88574245, 0.3749999 , 0.39727183, 0.50534724], [0.22034441, 0.81442653,
我正在尝试评估 R 中多个回归的模型拟合,但我遇到了一个我现在遇到过多次的问题:我的泊松回归的对数似然是无限的。 我使用的是非整数因变量(注意:我知道我在这方面做了什么),我想知道这是否是问题所在。但
我对 R 和 Python 相当陌生。我喜欢使用 Akaike 信息准则执行多元回归来选择变量并评估我的准则。 我编写了一些代码来使用 F 统计 P 值选择变量。该数据集包含房价信息 我计划将变量(即
考虑这个代码示例,根据 Akaike 准则从不同拟合高斯数量的数据中获得最佳拟合 MU1 = [1]; SIGMA1 = [2]; MU2 = [-3]; SIGMA2 = [1 ]; X = [mv
这是来自 ?lm 的一个非常简单的 lm 模型 ctl 46.17468 (LL1 -20.08824 (df=3) 从第一性原理重构: n -20.08828 这有点不对劲,还没发现毛病。 参
data <-c(88, 84, 85, 85, 84, 85, 83, 85, 88, 89, 91, 99, 104, 112, 126, 138, 146,151, 150, 148, 14
我正在尝试从具有不同的 ARIMA 估计中提取 AIC 和 BIC p & q 的组合 (p=0,1,2,3 并且 q=0,1.2,3)。我曾尝试使用以下代码,但未成功。 code: storage1
如何从 lm_robust 对象(包 estimatr)获取 AIC?我使用 lm_robust 是因为我想使用稳健的估计器来计算 SE。与 lm 函数不同,当您运行汇总函数并在 lm_robust
我有: from scipy import stats data = stats.gamma.rvs(2, loc=1.5, scale=2, size=100000) 所以我做了一个合适的 fitt
据我所知,Python中没有AIC包。因此,我尝试手动计算它以找到我的数据集中的最佳聚类数(我使用 K-means 进行聚类) 我遵循 Wiki 上的等式: AIC = 2k - 2ln(最大似然)
我想计算线性模型的 AIC 以比较它们的复杂性。我是这样做的: regr = linear_model.LinearRegression() regr.fit(X, y) aic_intercept_
我使用 MICE 包估算了数据。现在,我想展示基于汇总数据的 GLM 结果。 这就是我得出数据的方式: data.imputed <- mice(data, m=5, maxit = 50, meth
所以这是我的数据头, thickness grains resistivity 1 25.1 14.9 0.0270 2 368.4 58.1 0.0
我一直在尝试使用 biglm 在大型数据集(约 60,000,000 行)上运行线性回归。我想使用 AIC 进行模型选择。但是我发现在较小的数据集上使用 biglm 时,biglm 返回的 AIC 变
我已经用谷歌搜索了这个并找不到解决方案。 R 似乎在 AIC/BIC 计算方面存在问题。它会产生错误的结果。一个简单的例子如下所示: link = 'https://gist.githubuserco
我想知道是否可以从 GLMNet 获取 AIC 和 BIC。我发现 glmnet.cr 似乎能够做到这一点,但我的 react 是时间,而不是序数。我可以根据可能性自己计算它,但 glmnet 也不会
指定相同 AR(或 MA)模型由 R 中的 forecast 包中的函数 arima() 进行估计的不同方法不同的 BIC(贝叶斯信息准则)值。 为什么会发生这种情况? 考虑两种模型: (1) AR(
我尝试使用 R 重现一些 SAS 输出。我想重现的方法是: 使用混合模型对因子时间进行重复测量的两种方差分析(协方差矩阵 = CS,估计方法 = REML) 一切看起来都很好,除了 AIC .....
我是一名优秀的程序员,十分优秀!