2013-11-26 4 views
5

2012 년 1 월 16 일부터 10 월 10 일까지 일일 데이터로 일부 수요 예측을 시도하고 있습니다. 그러나 예측을하면 엄청난 결과가 반환됩니다. 어떤 단서?R, Times Series, Arima Model, Forecasting, Daily data

이것은 데이터가 플롯에서와 같은 방식입니다. 주간 및 월간 계절성이 있습니다. 즉 : 평일에는 수요가 많고 주말에는 수요가 적습니다. 검은 선은 실제 데이터이며, 청색 선은 예측 데이터이다 : 여기

는 예측 플롯의 모습이다.

x = ts(data, freq=7, start=c(3,2)) 
fit <- auto.arima(x) 
pred <- forecast(fit, h=300) 

나는 아리마 모델 매일 데이터를 맞게하는 방법에 대한 연구를 많이했다. 그리고 주간 계절성이 있으므로 freq = 7을 선택했습니다.

그러나 예측이 나쁘기 때문에. 그리고 누군가는 Hyndman 교수가 여러 계절에 맞는 모델을 공유하는 방법 중 하나를 지적하기에 충분했습니다.

https://stats.stackexchange.com/questions/74418/frequency-of-time-series-in-r/74426#74426

그래서 나는 좋은 사람의 충고를 따랐다 및 위의 링크에서 주어진 두 방법과 모델을 맞습니다.

방법 1 : tbats() 함수 사용.

x_new <- msts(x, seasonal.periods=c(7,7*52)) 
fit <- tbats(x_new) 
fc <- forecast(fit, h=7*52) 

는 I 7 연간 계절 52 * 7 주간 계절성 사용. 월별 계절성을 쉽게 얻을 수있는 방법을 찾아 내지 못했기 때문입니다. 결과를 바탕으로 예측도 좋지 않습니다. 참고 : 매월 두 번째 계절 기간으로 7 * 4를 사용하면 더 나쁜 예측이됩니다.

방법 2 : freg를 xreg로 사용.

seas1 <- fourier(x, K=1) 
seas2 <- fourier(ts(x,freq=7*52), K=1) 
fit <- auto.arima(x, xreg=cbind(seas1,seas2)) 
seas1.f <- fourierf(x, K=1, h=7*52) 
seas2.f <- fourierf(ts(x,freq=7*52), K=1, h=7*52) 
fc1 <- forecast(fit, xreg=cbind(seas1.f, seas2.f)) 

나는 다른 K와 그것을 시도, 그것은 예측이 향상되지 않습니다.

따라서 저는 붙어 있습니다! 예측이 끝나기 때문입니다. 아무도 내 실수가 어디 있는지 지적 해 주시겠습니까? 또는 모델을 어떻게 개선해야합니까?

감사합니다.

+2

이 질문은 R 코드보다 통계 모델링에 관한 내용이므로 주제가 아닌 것으로 보입니다. –

답변

1

휴일 및 외계인의 영향 (펄스 이상 치, 레벨 변화, 추세 변화, 요일 영향의 변화 (예 : 계절성 맥박))이 누락되었습니다. 이러한 것들을 다루는 경우에는 그 요일 패턴에 대해 좋은 읽을 거리를 얻을 수 없습니다. dropbox.com에 데이터를 게시 할 수 있습니까? 시작 날짜와 데이터가있는 국가를 지정하십시오.

+0

답장을 보내 주셔서 감사합니다. Autobox, SAS, SPSS와 같은 상업용 소프트웨어가 그 일을 할 수 있다는 것을 알고 있으며, R과 같은 소프트웨어를 요청하는 것은 너무 많습니다. 불행히도 데이터를 공개 할 수는 없습니다. : – user1489597

+0

Some might! :) 요소별로 모든 데이터를 확장 한 다음 예측을 다시 조정하는 방법은 어떻습니까? –