2017-10-22 1 views
8

Hyndman의 forecast 패키지를 사용하여 주간 단위로 다소 정확한 tbats 예측치를 산출하지만 휴일에는 심각한 오류가 있습니다. 모델에 휴일을 포함하려면 어떻게해야합니까? 또한 아리마는 나의 주간 데이터에 잘 맞지 않는 것으로 나타났습니다. 그래서 휴일은 아리마가 아닌 방식으로 추가되어야합니다.휴일이있는 주간 예보

나는 두 가지 해결책을 보았습니다. 하나는 https://robjhyndman.com/hyndsight/dailydata/으로 공휴일을 푸리에 (fourier) 항으로 더미 변수로 추가하는 방법을 보여줍니다. 문제는 더미 변수가 1 또는 0의 형태를 취하는 것입니다. 다른 휴일에는 1 또는 0이 포착하지 않는 다른 효과가 있음을 알고 있습니다. 예를 들어, 블랙 프라이데이는 구정과 매우 다릅니다.

또 다른 해결책은 여기에 있습니다. 여기서 공변량 nnetr 변경이 계절 더미 변수가있는 auto.arima의 대안으로 사용되는 경우 https://robjhyndman.com/hyndsight/forecast7-part-2/입니다. 문제는 내 휴일을 입력하는 R 코드를 작성하는 방법을 볼 수 없다는 것입니다. 예가 유용 할 것입니다.

답변

2

다음은 내가해야 할 모든 것을했습니다.

k=23 
#forecast holidays 
#bool list of future holidays 
holidayf <- c(0,0,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0) 
h <- length(holidayf) 

#given holidays 
holiday <- df[,2] 
y <- ts(df[,1],start = 2011,frequency = 52) 
z <- fourier(y, K=k) 
zf <- fourier(y, K=k, h=h) 
fit <- auto.arima(y, xreg=cbind(z,holiday), seasonal=FALSE) 
fc <- forecast(fit, xreg=cbind(zf,holidayf), h=h) 
fc %>% autoplot() 
summary(fit) 

다른 효과가있는 다른 휴일의 문제를 해결하기 위해 간단히 휴일 더미 변수를 추가했습니다. 예를 들어, 좋은 휴일 벡터와 나쁜 휴일 벡터를 벡터로 만들면 cbindxreg에 넣을 수 있습니다. 나는 위의 코드에서 이것을 보여주지 않았지만 곧바로 앞으로 나아갈 것입니다.

7

공식 통계 기관가 사용하는 시계열 모델링에 대한 벤치 마크는 미국 센서스 국에 의해 x13-arima-seats입니다. 계절 효과뿐만 아니라 부활절, 새해를 포함하여 "파라 메 트릭"공휴일을 다룹니다.

이 기능은 기본 x13-arima-seats 바이너리를 설치하고 사용하는 seasonal 패키지를 통해 R로 제공됩니다.

대부분 기능이 아닌 모든 기능에 액세스 할 수있는 완전한 기능 interactive website도 있습니다.

+0

이것은 흥미로운 정보입니다. R에서 사용 된 코드 예제가 있습니까? – DataTx

+0

예, Christoph와 나 자신이 만든 확장 된 비 네트와 초안, 패키지의 예제가 있습니다. 그리고 크리스토프는 다른 곳에서 더 많은 것을했습니다. 이것은 아마도 당신이 원하는 것입니다. 여전히 까다 롭지 만 AFAIK는 가장 완벽하고 복잡한 도구입니다. –

+0

주간 데이터를 처리합니까? 나는 그렇지 않다고 생각했다. –

6

Facebook의 prophet 패키지에 대해 읽었습니까?

그것을 사용하지 않은하지만 설명서를 읽고, 또한 휴일을 차지하는 빠른 구현처럼 보인다 :

https://cran.r-project.org/web/packages/prophet/prophet.pdf

가 온을 기반으로 예측 시계열 데이터에 대한 절차를 구현 첨가제 비선형 추세가 연간 및 주간 계절에 맞는 모델, 플러스 공휴일 [...]

https://cran.r-project.org/web/packages/prophet/vignettes/quick_start.html

+0

나는 이것도 사용하지 않았지만 나는 누군가가 예언자에게 예측 패키지를 사용하지 말고 이야기를 나누었으며 더 친근한 방식으로 지어 졌기 때문에 휴일을 프로그램하기가 훨씬 쉬웠다. – DataJack

+0

사용 해보세요. 뭔가를 빠르게 조립해야하고 반짝 반짝 빛나고 통합 할 때 매우 편리합니다. – amrrs