Time Series Analysis

October 15, 2025
4 min read
timeseries-anaylsis

시계열 분석이란?

시계열 분석은 시간의 순서에 따라 수집된 데이터 포인트의 시퀀스(X₁, X₂, ..., Xt)를 분석하는 통계적 기법임. 광고 기술(AdTech) 분야에서 많은 측정 지표가 시계열 데이터로 간주될 수 있음.

  • 노출 수 (Impressions): 일별, 주별, 월별로 광고가 사용자에게 표시된 횟수
  • 클릭률 (CTR): 시간에 따른 광고 클릭률의 변화 추이
  • 광고비 (Ad spend): 특정 기간 동안 광고에 지출된 금액
  • 전환율 (Conversion rates): 시간대별로 광고를 본 후 구매 또는 특정 행동을 완료한 사용자의 비율

시계열 분석은 크게 두 가지 목적으로 나뉨.

  1. 시계열 분석 (Analysis): 데이터의 기저 패턴을 파악하는 것. 시계열(Xt)은 주로 추세(Tt), 계절성(St), 그리고 정상적 잡음(Yt)의 합으로 분해될 수 있음. Xt=Tt+St+Yt(for t{1,...,T})X_t = T_t + S_t + Y_t \quad (\text{for } t \in \{1, ..., T\})
  2. 시계열 예측 (Forecasting): 과거 데이터를 기반으로 미래 값을 예측하는 것. Xt(for t{T+1,T+2,...})X_t \quad (\text{for } t \in \{T+1, T+2, ...\})

시계열의 특성

1. 정상성 (Stationarity)

시계열 분석에서 정상성은 매우 중요한 개념으로, 시계열의 통계적 속성이 시간의 흐름에 따라 변하지 않는 것을 의미함. 즉, 시계열의 평균, 분산, 자기공분산이 시간에 관계없이 일정해야 함. 대부분의 시계열 예측 모델은 데이터가 정상성을 따른다고 가정하므로, 비정상 시계열은 모델링 전에 정상 시계열로 변환하는 과정이 필요함.

Definition (정상성의 종류)
  • 강한 정상성 (Strict Stationarity): 시간 이동에 관계없이 데이터의 결합 확률 분포(joint distribution) 가 동일한 경우를 의미함. 즉, (Xt₁, ..., Xtk)의 결합 분포가 (Xt₁+t, ..., Xtk+t)의 결합 분포와 모든 t에 대해 동일해야 함. 이는 매우 강력한 조건이라 실제 데이터에서 확인하기 어려움.

  • 약한 정상성 (Weak Stationarity): 시계열 분석에서 일반적으로 사용되는 정상성으로, 다음 두 가지 조건을 만족함.

    1. 평균이 일정: E(Xt)=μE(X_t) = \mu (모든 시점 t에 대해 평균이 상수)
    2. 자기공분산이 시차에만 의존: Cov(Xt,Xtl)=γlCov(X_t, X_{t-l}) = \gamma_l (공분산이 시점 t가 아닌 시차 l에만 의존)

2. 자기상관성 (Autocorrelation)

자기상관성은 시계열 데이터가 과거의 자신과 얼마나 연관되어 있는지를 측정하는 척도임. 즉, 시계열 데이터에 “기억” 또는 “관성”이 얼마나 있는지를 수치화한 것으로, 오늘의 값이 어제의 값(lag 1)이나 그저께의 값(lag 2)과 얼마나 비슷한 경향을 보이는지 파악하는 데 사용됨.

자기공분산 (Autocovariance)

자기공분산은 l 시점만큼 떨어진 두 데이터 포인트가 같은 방향으로 움직이는 경향성을 측정함.

γl=Cov(Xt,Xtl)\gamma_l = Cov(X_t, X_{t-l})
  • Cov는 공분산을 의미하며, 두 변수가 함께 변하는 정도를 나타냄.
  • γ_l > 0 이면, l 시점 전의 값이 평균보다 높았을 때 현재 값도 평균보다 높은 경향이 있다는 뜻임 (양의 상관관계).
  • γ_l < 0 이면, l 시점 전의 값이 평균보다 높았을 때 현재 값은 평균보다 낮은 경향이 있다는 뜻임 (음의 상관관계).

자기공분산의 값은 데이터의 단위(scale)에 따라 크게 달라짐. 예를 들어, 주가 데이터(단위: 10만)와 이자율 데이터(단위: 1)의 자기공분산은 직접 비교하기 어려움. 이 문제를 해결하기 위해 정규화(normalization) 과정이 필요함.

  • γ0=Cov(Xt,Xt)=Var(Xt)\gamma_0 = Cov(X_t, X_t) = Var(X_t): 시차가 0인 자기공분산은 시계열 자체의 분산과 같음.
  • γl=γl\gamma_{-l} = \gamma_l: 공분산의 대칭적 특성.

자기상관함수 (Autocorrelation Function, ACF)

자기상관함수(ACF)는 자기공분산을 단위에 상관없이 비교할 수 있도록 -1과 1 사이의 값으로 정규화한 것임. l 시점만큼 떨어진 두 데이터 간의 선형 관계의 강도를 나타냄.

ρl=Cov(Xt,Xtl)Var(Xt)Var(Xtl)=γlγ0\rho_l = \frac{Cov(X_t, X_{t-l})}{\sqrt{Var(X_t)Var(X_{t-l})}} = \frac{\gamma_l}{\gamma_0}
  • ρ_l은 시차 l에 대한 자기상관계수를 의미함.
  • 분자(γ_l)는 l 시차만큼 떨어진 데이터 간의 공분산.
  • 분모(γ_0)는 시계열의 분산으로, 공분산을 나누어 값을 정규화하는 역할을 함.
  • ρ_l이 1에 가까우면 강한 양의 선형 관계, -1에 가까우면 강한 음의 선형 관계, 0에 가까우면 선형 관계가 없음을 의미함.

표본 자기상관함수 (Sample ACF)

실제 데이터 분석에서는 이론적인 자기상관함수 ρ_l을 알 수 없으므로, 우리가 가진 표본 데이터(sample)를 이용해 ACF를 추정해야 함. 이를 표본 자기상관함수라고 함.

ρ^l=t=l+1T(XtXˉ)(XtlXˉ)t=1T(XtXˉ)2\hat{\rho}_l = \frac{\sum_{t=l+1}^{T}(X_t - \bar{X})(X_{t-l} - \bar{X})}{\sum_{t=1}^{T}(X_t - \bar{X})^2}
  • 이 수식은 이론적 ACF 정의를 실제 데이터로 계산하는 방법임.
  • Xˉ\bar{X}는 전체 시계열 데이터의 표본 평균.
  • 분자: 표본 자기공분산을 계산함. l 시점만큼 떨어진 데이터 쌍들의 편차 곱을 모두 더한 값.
  • 분모: 표본 분산을 계산함. 전체 데이터의 편차 제곱의 합.
  • ρ̂_l 값을 여러 시차 l에 대해 계산하여 그래프로 그린 것이 바로 시계열 분석에서 사용하는 ACF 플롯임.

시계열 모델

1. 자기회귀 모델 (Autoregressive Model, AR)

AR 모델은 시계열의 현재 값이 과거 값들의 선형 결합으로 예측될 수 있다고 가정하는 모델임.

AR(1) 모델 예시:

  • 예측: 과거 데이터 {X₀, ..., Xt-₁}가 주어졌을 때 Xt의 최적 추정치 X̂t는 다음과 같음. X^t=a0+a1Xt1\hat{X}_t = a_0 + a_1 X_{t-1}
  • 오차: 실제 값과 예측 값의 차이. et=XtX^t=Xt(a0+a1Xt1)e_t = X_t - \hat{X}_t = X_t - (a_0 + a_1 X_{t-1})
  • 모델: 오차항을 포함한 전체 모델. Xt=a0+a1Xt1+etX_t = a_0 + a_1 X_{t-1} + e_t

AR(p) 모델의 일반식:

Xt=a0+a1Xt1+a2Xt2++apXtp+etX_t = a_0 + a_1 X_{t-1} + a_2 X_{t-2} + \dots + a_p X_{t-p} + e_t
Note (AR 모델의 차수(p) 결정)

AR(p) 모델의 차수 p부분자기상관함수(Partial Autocorrelation Function, PACF) 플롯을 통해 결정할 수 있음. PACF는 p 시차 이후 급격히 0에 가까워짐.

  • 2차 PACF: Cov(Xt,Xt2Xt1)Var(XtXt1)Var(Xt2Xt1)\frac{Cov(X_t, X_{t-2} | X_{t-1})}{\sqrt{Var(X_t|X_{t-1})Var(X_{t-2}|X_{t-1})}}
  • 3차 PACF: Cov(Xt,Xt3Xt1,Xt2)Var(XtXt1,Xt2)Var(Xt3Xt1,Xt2)\frac{Cov(X_t, X_{t-3} | X_{t-1}, X_{t-2})}{\sqrt{Var(X_t|X_{t-1},X_{t-2})Var(X_{t-3}|X_{t-1},X_{t-2})}}

모델의 계수(aᵢ)는 다중 선형 회귀를 사용하여 오차제곱합(Sum of Squared Errors, SSE) 을 최소화함으로써 추정됨. (AR(2) 예시)

SSE=et2=t=3T(Xta0a1Xt1a2Xt2)2SSE = \sum e_t^2 = \sum_{t=3}^{T} (X_t - a_0 - a_1 X_{t-1} - a_2 X_{t-2})^2

2. 이동평균 모델 (Moving Average Model, MA)

MA 모델은 시계열의 현재 값이 과거의 예측 오차(백색 소음)들의 선형 조합으로 표현된다고 가정하는 모델임.

  • MA(0): Xta0=etX_t - a_0 = e_t
  • MA(1): Xta0=et+b1et1X_t - a_0 = e_t + b_1 e_{t-1}
  • MA(2): Xta0=et+b1et1+b2et2X_t - a_0 = e_t + b_1 e_{t-1} + b_2 e_{t-2}

MA(q) 모델의 일반식:

Xta0=et+b1et1+b2et2++bqetqX_t - a_0 = e_t + b_1 e_{t-1} + b_2 e_{t-2} + \dots + b_q e_{t-q}

MA(q) 모델의 차수 q자기상관함수(ACF) 플롯을 통해 결정할 수 있음. MA(q) 모델의 ACF는 q 시차 이후 0이 되는 절단된 형태를 보임.

MA(1) 모델의 ACF:

ρl={1if l=0b11+b12if l=10if l>1\rho_l = \begin{cases} 1 & \text{if } l=0 \\ \frac{b_1}{1+b_1^2} & \text{if } l=1 \\ 0 & \text{if } l>1 \end{cases}
Explanation (후방이동 연산자 (Backward Shift Operator))

시계열 모델은 후방이동 연산자 B를 사용하여 간결하게 표현할 수 있음. B는 시계열의 시점을 한 단계 뒤로 이동시킴.

BXt=Xt1,BkXt=XtkB X_t = X_{t-1}, B^k X_t = X_{t-k}
  • AR(p): (1a1BapBp)Xt=a0+et    Φp(B)Xt=a0+et(1 - a_1 B - \dots - a_p B^p)X_t = a_0 + e_t \implies \Phi_p(B)X_t = a_0 + e_t
  • MA(q): Xta0=(1+b1B++bqBq)et    Xta0=Ψq(B)etX_t - a_0 = (1 + b_1 B + \dots + b_q B^q)e_t \implies X_t - a_0 = \Psi_q(B)e_t

3. 통합 모델 (Integrated Model, I)

통합 모델은 비정상 시계열을 정상 시계열로 변환하기 위해 차분(differencing) 을 적용하는 과정을 나타냄.

  • I(1) 모델 (1차 차분): 시계열이 선형적인 추세를 가질 때, 1차 차분을 통해 정상성을 만족시킬 수 있음. XtXt1=a0+et    (1B)Xt=a0+etX_t - X_{t-1} = a_0 + e_t \implies (1-B)X_t = a_0 + e_t
  • I(2) 모델 (2차 차분): 시계열이 포물선 형태의 추세를 가질 때, 2차 차분을 통해 정상성을 만족시킬 수 있음. (XtXt1)(Xt1Xt2)=a0+et    (1B)2Xt=a0+et(X_t - X_{t-1}) - (X_{t-1} - X_{t-2}) = a_0 + e_t \implies (1-B)^2 X_t = a_0 + e_t

4. ARMA 및 ARIMA 모델

AR, I, MA 모델을 결합하여 더 복잡한 시계열 패턴을 모델링할 수 있음.

ARMA(p, q) 모델은 정상 시계열에 대해 AR(p)와 MA(q)를 결합한 모델임.

Φp(B)Xt=a0+Ψq(B)et\Phi_p(B)X_t = a_0 + \Psi_q(B)e_t

ARIMA(p, d, q) 모델은 ARMA 모델에 d차 차분을 추가하여 비정상 시계열까지 다룰 수 있도록 확장한 범용 모델임.

Φp(B)(1B)dXt=a0+Ψq(B)et\Phi_p(B)(1-B)^d X_t = a_0 + \Psi_q(B)e_t