빅 데이터 분석-시계열 분석

시계열은 날짜 또는 타임 스탬프로 인덱싱 된 범주 형 또는 숫자 변수의 관측 시퀀스입니다. 시계열 데이터의 명확한 예는 주가의 시계열입니다. 다음 표에서 시계열 데이터의 기본 구조를 볼 수 있습니다. 이 경우 관찰은 매시간 기록됩니다.

타임 스탬프 재고-가격
2015-10-11 09:00:00 100
2015-10-11 10:00:00 110
2015-10-11 11:00:00 105
2015-10-11 12:00:00 90
2015-10-11 13:00:00 120

일반적으로 시계열 분석의 첫 번째 단계는 시리즈를 그리는 것입니다. 이는 일반적으로 선 차트로 수행됩니다.

시계열 분석의 가장 일반적인 응용 프로그램은 데이터의 시간적 구조를 사용하여 숫자 값의 미래 값을 예측하는 것입니다. 즉, 사용 가능한 관측치는 미래의 값을 예측하는 데 사용됩니다.

데이터의 시간적 순서는 전통적인 회귀 방법이 유용하지 않음을 의미합니다. 강력한 예측을 구축하려면 데이터의 시간적 순서를 고려하는 모델이 필요합니다.

시계열 분석에 가장 널리 사용되는 모델은 Autoregressive Moving Average(ARMA). 모델은 두 부분으로 구성됩니다.autoregressive (AR) 부분과 moving average(MA) 부분. 그런 다음 모델은 일반적으로 ARMA (p, q) 모델이라고합니다. 여기서 p 는 자기 회귀 부분 의 차수 이고 q 는 이동 평균 부분의 차수입니다.

자기 회귀 모형

AR (p)의 차 (P)의 자기 회귀 모델로 판독된다. 수학적으로 다음과 같이 작성됩니다.

$$X_t = c + \sum_{i = 1}^{P} \phi_i X_{t - i} + \varepsilon_{t}$$

여기서 {φ 1 ,…, φ p }는 추정 할 매개 변수이고, c는 상수이고, 랜덤 변수 ε t 는 백색 잡음을 나타냅니다. 모델이 고정 된 상태로 유지되도록 매개 변수 값에 대한 일부 구속이 필요합니다.

이동 평균

표기 MA (Q)는 주문의 이동 평균 모델을 말한다 Q -

$$X_t = \mu + \varepsilon_t + \sum_{i = 1}^{q} \theta_i \varepsilon_{t - i}$$

여기서 θ 1 , ..., θ q 는 모델의 매개 변수이고, μ는 X t 의 기대 값 이며, ε t , ε t − 1 , ...은 백색 잡음 오류 항입니다.

자기 회귀 이동 평균

ARMA (P, Q) 모델 콤바인 P는 회귀 조건 및 Q 이동 평균 용어. 수학적으로 모델은 다음 공식으로 표현됩니다.

$$X_t = c + \varepsilon_t + \sum_{i = 1}^{P} \phi_iX_{t - 1} + \sum_{i = 1}^{q} \theta_i \varepsilon_{t-i}$$

우리는 것을 알 수 있습니다 ARMA (P, Q) 모델의 조합 AR (P)MA (Q) 모델.

모델의 일부 직관을 제공하기 위해 방정식의 AR 부분이 X에 대한 매개 변수를 추정하고자하는 것이 생각 난 - t X의에서 변수의 값을 예측하기 위해 관찰을 t을 . 결국 과거 값의 가중 평균입니다. MA 섹션은 동일한 접근법을 사용하지만 이전 관측치의 오류 인 ε t − i를 사용 합니다. 결국 모델의 결과는 가중 평균입니다.

다음 코드 조각 은 R에서 ARMA (p, q) 를 구현하는 방법을 보여줍니다 .

# install.packages("forecast")
library("forecast")  

# Read the data 
data = scan('fancy.dat') 
ts_data <- ts(data, frequency = 12, start = c(1987,1)) 
ts_data  
plot.ts(ts_data)

데이터 플로팅은 일반적으로 데이터에 시간적 구조가 있는지 확인하는 첫 번째 단계입니다. 플롯에서 매년 말에 강한 급등이 있음을 알 수 있습니다.

다음 코드는 ARMA 모델을 데이터에 맞 춥니 다. 여러 모델 조합을 실행하고 오류가 적은 모델을 선택합니다.

# Fit the ARMA model
fit = auto.arima(ts_data) 
summary(fit) 

# Series: ts_data  
# ARIMA(1,1,1)(0,1,1)[12]                     
#    Coefficients: 
#    ar1     ma1    sma1 
# 0.2401  -0.9013  0.7499 
# s.e.  0.1427   0.0709  0.1790 

#  
# sigma^2 estimated as 15464184:  log likelihood = -693.69 
# AIC = 1395.38   AICc = 1395.98   BIC = 1404.43 

# Training set error measures: 
#                 ME        RMSE      MAE        MPE        MAPE      MASE       ACF1 
# Training set   328.301  3615.374  2171.002  -2.481166  15.97302  0.4905797 -0.02521172