R의 ARIMA 시계열에서 예측 된 값 플로팅


10

이 질문에는 하나 이상의 심각한 오해가있을 수 있지만 계산을 올바르게하는 것이 아니라 시계열을 배우는 데 중점을 둡니다.

시계열의 적용을 이해하려고 할 때, 데이터의 비추 세화로 미래의 가치를 예측할 수없는 것처럼 보입니다. 예를 들어 패키지의 gtemp시계열은 astsa다음과 같습니다.

여기에 이미지 설명을 입력하십시오

예측 된 미래 가치를 표시 할 때 지난 수십 년간 상승 추세를 고려해야합니다.

그러나 시계열 변동을 평가하려면 데이터를 고정 시계열로 변환해야합니다. 나는 (I이 때문에 중간의 수행 추측 차이점과 ARIMA 과정으로 모델링하는 경우 1에서 order = c(-, 1, -)와 같이) :

require(tseries); require(astsa)
fit = arima(gtemp, order = c(4, 1, 1))

50

pred = predict(fit, n.ahead = 50)
ts.plot(gtemp, pred$pred, lty = c(1,3), col=c(5,2))

여기에 이미지 설명을 입력하십시오

특정 ARIMA 매개 변수의 실제 최적화를 다루지 않아도 플롯의 예측 부분에서 상승 추세를 어떻게 복구 할 수 있습니까?

나는 어딘가에 OLS "숨겨진"것이 있다고 생각하는데, 이것은 비정규 성을 설명합니까?

나는 패키지 driftArima()기능에 통합되어 forecast그럴듯한 음모 를 표현할 수있는 개념을 만났다.

par(mfrow = c(1,2))
fit1 = Arima(gtemp, order = c(4,1,1), 
             include.drift = T)
future = forecast(fit1, h = 50)
plot(future)
fit2 = Arima(gtemp, order = c(4,1,1), 
             include.drift = F)
future2 = forecast(fit2, h = 50)
plot(future2)

여기에 이미지 설명을 입력하십시오

계산 과정에서 더 불투명합니다. 트렌드가 플롯 계산에 어떻게 통합되는지에 대한 이해를 목표로하고 있습니다. 문제 중 하나입니다 거기 어떤 drift에서 arima()(소문자)?


이와 비교하여 dataset을 사용하면 데이터 집합 AirPassengers의 끝점을 넘어 예측 된 승객 수는 다음과 같은 상승 추세를 설명합니다.

여기에 이미지 설명을 입력하십시오

코드 입니다 :

fit = arima(log(AirPassengers), c(0, 1, 1), seasonal = list(order = c(0, 1, 1), period = 12))
pred <- predict(fit, n.ahead = 10*12)
ts.plot(AirPassengers,exp(pred$pred), log = "y", lty = c(1,3))

말이되는 플롯을 렌더링합니다.


1
시간이 지남에 따라 추세가 바뀌는 시리즈가 있다고 생각하면 ARIMA 모델이 예측에 접근하는 가장 좋은 방법이 아닐 수도 있습니다. 주제 지식이 없으면 (더 나은 모델로 이어질 수 있음) 상태 공간 모델을 살펴 보는 경향이 있습니다. 기본 구조 모델의 특정 변형이 있습니다. 스테이트 스페이스 모델에 대한 많은 논의는 따르기가 어려울 수 있지만 Andrew Harvey의 저서와 논문은 상당히 읽을 수 있습니다 (예 : 예측, 구조 시계열 모델 및 칼만 필터 는 꽤 좋습니다). ... ctd
Glen_b-복지국 Monica

ctd ... 합리적으로 잘 수행하는 다른 저자들이 몇 개 있지만, 더 나은 저자 일지라도 초보자에게 필요한 것보다 조금 더 복잡합니다.
Glen_b-복지 주 모니카

감사합니다, @Glen_b. 시계열에 대한 감각을 얻으려고 노력하고 많은 수학 주제에서와 같이 동기 부여 프리앰블의 부족은 킬러입니다. 우리가 정말로 염려 할 모든 시계열은 인구, GOP, 주식 시장, 지구 온도와 같은 추세를 보이고 있습니다. 그리고 나는 당신이주기적이고 계절적인 패턴을보기 위해 추세를 제거하고 싶다고 생각합니다. 그러나 결과를 예측하기위한 전반적인 추세와 함께 발견 한 결과를 암시하거나 목표로 다루지 않았습니다.
Antoni Parellada

롭 Hyndman의 의견 여기에 해당합니다. 나는 돌아와서 조금 확장 할 수 있습니다.
Glen_b-복지국 모니카

Rob J. Hyndman의 블로그 게시물 "R의 상수 및 ARIMA 모델" 만 있으면됩니다. 블로그 게시물을 탐색 한 후에 의견을 듣고 싶습니다.
Richard Hardy

답변:


1

따라서 ARIMA 또는 고정되지 않은 데이터에 대해 어떤 작업도 수행해서는 안됩니다.

ARIMA 예측이 평평 해지는 이유에 대한 대답은 ARIMA 방정식과 가정 중 하나를 살펴보면 매우 분명합니다. 이것은 간단한 설명이므로 수학 증명으로 취급하지 마십시오.



yt=βyt1+α+ϵ
β|β|1βyt1=0yt=const=α

new.data=ytyt1new.data=yt/yt11

 require(tseries)
 require(forecast)
 require(astsa)
 dif<-diff(gtemp)
 fit = auto.arima(dif)
 pred = predict(fit, n.ahead = 50)
 ts.plot(dif, pred$pred, lty = c(1,3), col=c(5,2))
 gtemp_pred<-gtemp[length(gtemp)]
 for(i in 1:length(pred$pred)){
   gtemp_pred[i+1]<-gtemp_pred[i]+pred$pred[i]
 }
 plot(c(gtemp,gtemp_pred),type="l")

여기에 이미지 설명을 입력하십시오


α

ααα

확인. ts 방정식과 관련하여 설명하려는 내용을 코드와 함께 조금 연주해야합니다. 나는 ts와 함께 일하지 않았으며 질문을 게시 한 지 오래되었습니다.
Antoni Parellada

코드로 조금 연주 한 후 무슨 일이 일어나고 있는지 알 수 있습니다. AR1 = 0.257; MA = - 0.7854플롯의 끝에서 투영되거나 예측 된 꼬리 기울기 선의 생성 프로세스를 완전히 이해하기 위해 ARIMA 모델 방정식 에 맞는 계수를 포함시킬 수 있습니까 ?
Antoni Parellada 2016 년

y^t=ipβiyti+jqγjϵtj+α+ϵt
y^t=βyt1+γϵt1+α+ϵt
β=0.257γ=0.7854α=0.0064
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.