시계열 용어 정리
우연변동 : 일정한 수준에서 머물며 random한 노이즈를 가지는 경우를 의미
$$\hat{Y_t} \alpha +e_t$$
계절변동 : 주기적으로 변화를 나타내는 경우를 의미하며, 이 주기는 f에 의해 조절 됨
$$\hat{Y_t}=\alpha +\beta_1 \sin \frac{2\pi t}{f}+\beta_2 \cos \frac{2\pi t}{f}+e_t [ f는 주기]$$
추세변동 : 시간에 따라 증가하거나 감소하는 경향을 보이는 시계열 자료의 형태
$$\hat{Y_t}=T_t+e_t$$
$$\hat{Y_t}=\alpha+\beta t+e_t$$
$$\hat{Y_t}=\alpha+\beta_1 t+\beta_2 t +e_t$$
순환변동 : 1년 이상의 장기적인 계절성을 띄는 시계열 자료의 형태
$$\hat{Y_t}=C_t+e_t$$
1차 차분
$$ \nabla Y_t=Y_t -Y_{t-1}$$
2차 차분
$$ \nabla^2 Y_t= \nabla y_t - \nabla y_{t-1}$$
계절변동차분
$$\nabla_{12} Y_t=\nabla Y_t - \nabla Y_{t-12}$$
Box Cox 변환 : 독립성과 등분산성을 동시에 만족시키기 위해 고안된 방법. 시계열 자료의 변환에 자주 사용됨.
$$f(x:\lambda) = \frac{x^\lambda -1}{\lambda} [ \lambda \ne 0]$$
$$f(x:0)=log(x) [\lambda=0]$$
'통계 > time series' 카테고리의 다른 글
조금 더 빠른 시계열 예측 (0) | 2020.06.08 |
---|
조금 더 빠른 시계열 예측
시계열 예측 관련 공부를 하며 walking forward validation을 사용하는 경우가 발생하게 되었는데, 기존 데이터가 너무 커서 시간이 너무 오래걸리는 문제를 느꼈다.
그래서 과연 어떻게 하면 빨리 모델링을 할 수있을까? 확인해보고자 했다.
forecast 패키지를 활용하여 성능 비교를 해보자.
먼저 사용된 패키지는 data.table, zoo, forecast를 활용하였다.
time3=system.time({
ls=list()
for(i in 1:25){
message(i)
ls[[i]]=data.frame(forecast(auto.arima(AirPassengers[1:(120+i-1)],ic='aicc',stepwise=F),12))[,1]
temp3=t(bind_cols(ls))
}
})

먼저 for문을 통해 시간을 계산 한 결과 11초 정도가 나타났다.
다음은 lapply문을 활용한 결과 큰 차이는 나지 않으나 조금 빨라진 모습을 볼 수 있다.
time4=system.time({
ls2=list()
for(i in 1:25){
ls2[[i]]=AirPassengers[1:(120+i-1)]
}
temp4=lapply(ls2,function(x){data.frame(forecast(auto.arima(x,ic='aicc',stepwise=F),12))[,1]})
})

다음은 zoo 패키지의 rollapply를 사용한 결과이다. 조금 더 빨라진 모습을 볼 수 있다.
library(forecast)
time1=system.time({
dt=data.frame(temp=AirPassengers)
setDT(dt)
temp1=dt[,rollapply(temp,120,function(x){data.frame(forecast(auto.arima(x,ic='aicc',stepwise=F),12))[,1]})]
})

다음은 data.table 패키지를 활용한 결과이다.
time1=system.time({
dt=data.frame(temp=AirPassengers)
setDT(dt)
temp1=dt[,rollapply(temp,120,function(x){data.frame(forecast(auto.arima(x,ic='aicc',stepwise=F),12))[,1]})]
})

끝으로 아래 포스팅에서 본 여러개의 시계열 모델을 빠르게 예측하는 방법을 올리고 포스팅을 마치겠다.
https://statkclee.github.io/statistics/stat-time-series-forecast.html
Software Carpentry: 데이터 과학 – 기초 통계
데이터 과학 – 기초 통계 시계열 데이터 예측(forecast) 학습 목표 시계열 데이터의 백미 예측을 살펴본다. 다양한 시계열 데이터 모형의 장단점을 비교한다. 자동 시계열 예측의 필요성을 이해한
statkclee.github.io
'통계 > time series' 카테고리의 다른 글
시계열 용어 정리 (0) | 2020.07.15 |
---|