首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提取ARIMA特性

提取ARIMA特性
EN

Stack Overflow用户
提问于 2014-05-12 19:52:28
回答 2查看 2K关注 0票数 3

从auto.arima()打印合适的模型对象包括一行,如

有漂移的ARIMA(2,1,0)

这将是一个很好的项目,包括在横幅(或其他)输出,说明拟合的模式。有可能把这条线作为块提取出来吗?在这一点上,我所做的最好是从arma分量中提取适当的顺序(可能从拟合模型的系数的名称(例如,“具有漂移”或“具有非零均值”)中提取适当的阶次。

代码语言:javascript
复制
# R 3.0.2 x64 on Windows, forecast 5.3 
library(forecast)  
y <- ts(data = c(-4.389, -3.891, -4.435, -5.403, -2.501, -1.858, -4.735, -1.085, -2.701, -3.908, -2.520, -2.009, -6.961, -2.891, -0.6791, -1.459, -3.210, -2.178, -1.972, -1.207, -1.376, -1.355, -1.950, -2.862, -3.475, -1.027, -2.673, -3.116, -1.290, -1.510, -1.736, -2.565, -1.932, -0.8247, -2.067, -2.148, -1.236, -2.207, -1.120, -0.6152), start = 1971, end = 2010)  
fm <- auto.arima(y)  
fm  

# what I want is the line: "ARIMA(2,1,0) with drift`"  

str(fm)  
paste("ARIMA(", fm$arma[1], ",", fm$arma[length(fm$arma)-1], ",", fm$arma[2], ") with ",intersect("drift", names(fm$coef)), sep = "")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-12 21:20:29

检查auto.arima函数时,我注意到它内部调用了另一个函数,名为arima.string

然后我做了:

代码语言:javascript
复制
getAnywhere(arima.string)

产出如下:

代码语言:javascript
复制
A single object matching ‘arima.string’ was found
It was found in the following places
namespace:forecast
with value

function (object) 
{
order <- object$arma[c(1, 6, 2, 3, 7, 4, 5)]
result <- paste("ARIMA(", order[1], ",", order[2], ",", order[3], 
    ")", sep = "")
if (order[7] > 1 & sum(order[4:6]) > 0) 
    result <- paste(result, "(", order[4], ",", order[5], 
        ",", order[6], ")[", order[7], "]", sep = "")
if (is.element("constant", names(object$coef)) | is.element("intercept", 
    names(object$coef))) 
    result <- paste(result, "with non-zero mean")
else if (is.element("drift", names(object$coef))) 
    result <- paste(result, "with drift        ")
else if (order[2] == 0 & order[5] == 0) 
    result <- paste(result, "with zero mean    ")
else result <- paste(result, "                  ")
return(result)

}

然后,我复制了函数代码并将其粘贴到一个新函数中,我将其命名为arima.string1

代码语言:javascript
复制
arima.string1(fm)

# [1] "ARIMA(2,1,0) with drift        "
票数 9
EN

Stack Overflow用户

发布于 2014-05-13 19:27:19

今天,我发现我寻找的文本块也存储在拟合模型对象的预测中:

代码语言:javascript
复制
forecast(fm)$method  

感谢费尔南多恰当地标记了我的问题,感谢Davide提供了一对有用的见解-- getAnywhere()和arima.string(),可以修改了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23617662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档