data analysis & visualization

우연변동 : 일정한 수준에서 머물며 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