Arima, Arma 및 AICS?
-
12-09-2019 - |
문제
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);
그러나 이들 데이터에 대한 최소 AIC 추정치의 보유자는 Auto.arima 뒤의 알고리즘에 의해 고려되지 않은 것으로 보인다. 따라서 첫 번째 차이점에 작용하는 ARMA (5,4) 대신 ARMA (3,0)의 차선책 선택. 관련 질문은 두 AIC 추정치가 하나의 모델을 다른 모델보다 더 잘 고려하기 전에 두 AIC 추정치가 다른 방법으로 Wuth 프로그래밍을 수행 할 것이 거의 없다는 것입니다. 가장 작은 AIC 보유자는 적어도 9 계수가 너무 많을지라도 최소한 고려/보고해야합니다. 100 개의 관찰에서 예측.
내 질문은 다음과 같습니다.
1) 이중 루프의 벡터 버전이므로 더 빠르나요?
2) 왜 arima(5,1,4)
데이터에 대한 행동은 다릅니다 arma(5,4)
데이터의 첫 번째 차이점에 대해 행동합니까? 어느 것이보고되어야합니까?
3) 작은 출력을 먼저 정렬하면 먼저 AICS 출력을 어떻게 정렬합니까?
감사.
해결책
여기에 제기 된 많은 질문과 문제가 있습니다. 나는 그들 각각에 응답하려고 노력할 것이다.
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
그러한 대형 모델을 고려하고 싶다면 (권장하지는 않지만).
각 반복에서 비선형 최적화와 관련된 루프를 벡터화 할 수 없습니다.
출력을 정렬하려면 데이터를 데이터를 저장 한 다음 관련 열에 정렬해야합니다. 코드는 현재 결과가 나오면서 결과를 뱉어 내며 가장 최근의 모델을 제외하고는 저장되지 않습니다.