시계열 모델링 3회차
1. 자기 상관함수(ACF)
⊙ 자기상관함수의 정의 : 시계열 데이터에서 현재의 값과 과거의 값 간의 상관관계를 나타내는 함수입니다. 시차(Lag) 라고 부릅니다.
⊙ 목적 : 데이터가 시간에 따라 어떤 패턴을 가지고 있는지, 혹은 이전 데이터가 현재 데이터에 얼마나 영향을 미치는지 파악하기 위해 사용합니다.
⊙ 해석
- ACF = 1: 완벽한 양의 상관관계 (과거 값이 증가하면 현재 값도 비례해서 증가).
- ACF = -1: 완벽한 음의 상관관계
- ACF = 0: 상관관계가 없음
⊙ 공식


원본 데이터는 시간이 지날 수록 진폭이 커지면서 상승하는 추세와 계절성을 모두 가지고 있습니다.
⊙ ACF 계산 및 시각화

- 시차에 따른 자기 상관관계를 보여줍니다.
- 파란색 막대: 각 시차에서의 상관계수 값입니다.
- 파란색 음영: 통계적으로 유의미한 구간(신뢰구간 95%)을 의미합니다.
이 범위를 벗어난 막대는 통계적으로 유의미한 상관관계가 있다고 봅니다.
- 천천히 감소하는 패턴: 데이터에 강한 추세가 있음을 의미합니다.(오늘의 값은 어제의 값과 매우 비슷함)
- 물결치는 모양: 데이터에 계절성이 있음을 의미합니다.
2. 이동평균(Moving Average)

⊙ 이동평균 : 일정기간 동안의 데이터 값을 계속해서 평균내어 추세를 파악하는 방법
⊙ 이동평균모델(MA) : 이전 시점들의 오차항들이 현재값에 미치는 영향을 선형 방정식으로 표현
이동평균 모델은 과거의 예측 오류가 누적되어 현재의 값에 영향을 줄 수 있는 패턴이 있다고 가정하고 전개하게 됩니다. 예컨데 과거의 데이터가 예측을 실패하면 누적되어 오차항에 내재될 것임으로 이를 모델링하여 보완하겠다는 의미입니다.
⊙ 공식

예를 들어, MA(1) 모형은 다음과 같이 현재 값이 상수와 가장 최근 시점의 오차항에 의해서만 결정됩니다.
2-1. 자기상관관계
자기상관관계는 현재 시점과 모든 과거 시점들 사이의 상관관계를 계산할 때, 중간 값들의 영향을 포함하여 상관관계를 구합니다.
⊙ 자기상관관계함수(ACF): 각 시차(lag)에 대해 현재 값과 과거 값 사이의 상관관계를 계산
ACF 그래프 예시)

x축은 시차(Lag)를, y축은 자기상관계수를 나타내며, 각 시차에서 현재 값과 과거 값들 간의 상관관계를 보여줍니다. 파란 점선은 유의성 경계를 나타내며, 이 선을 넘는 값은 통계적으로 유의한 상관관계를 의미합니다.
- 시차0은 자기 자신과의 상관계수로 1인 것을 볼 수 있습니다.
- 시차1은 0.6으로 양의 상관관계를 가짐을 알 수 있습니다.
- 시차2는 0.48정도로 여전히 유의미한 양의 상관관계를 볼 수 있습니다.
- 시차3은 0.3의 상관관계가 존재합니다.
- 시차4 이후로는 시차가 증가할수록 상관계수는 급격히 감소해 0에 근사하여 유의하지 않은 상관관계를 보입니다.
이 패턴을 통해, MA(q) 모델에서 q차수를 결정할 수 있습니다. 자기상관계수가 유의한 마지막 시차가 q차가 되며, 이 그래프에서는 시차 3까지 유의한 상관관계가 있으므로, MA(3) 모델이 적합합니다.
3. 자기회귀(Auto Regressive)
시계열은 이전 데이터가 현재 데이터에 영향을 미치는 경향을 보입니다. 이를 자기 상관성의 개념으로 설명합니다.

⊙ 자기회귀과정 AR(p)
p : 현재값에 영향을 미치는 과거 시점의 개수


예를 들어, ‘1차 자기회귀과정, AR(1)’의 경우 다음 수식처럼 현재 값이 상수와 바로 전 시점의 값, 그리고 백색소음(오차항)에 의해서만 결정됩니다.

3-1) 편자기상관관계
⊙ 편자기상관함수(PACF)는 지연이 증가함에 따라 상관관계가 어떻게 변화하는지를 보여주며, AR(p) 모형의 차수 p를 결정하는 데 사용.
⊙ 차수 p는 유의한 상관계수가 나타나는 마지막 시점을 의미

PACF 그래프 예시)
x축은 시차(Lag)를, y축은 편자기상관계수(PACF)를 나타내며, 각 시차에서 중간 값들의 영향을 제거한 상관관계를 보여줍니다. 파란 점선은 유의성 경계를 나타내며, 이 선을 넘는 값은 통계적으로 유의합니다.

- 시차 1에서 상관계수는 약 0.8로, 매우 강한 양의 상관관계를 나타냅니다.
- 시차 2에서 상관계수는 약 -0.25로 현재값과 음의 상관관계라는 점을 보여줍니다.
- 시차 3 이후부터는 대부분의 상관계수가 0에 가까워져서 더 이상 유의한 상관관계가 없습니다.
AR(p) 모델의 차수는 유의한 상관계수가 있는 마지막 시차에서 결정됩니다. ✅
따라서, 유의한 상관관계가 있는 마지막 시차는 시차 2이며, 따라서 AR(2) 모델이 적절할 가능성이 높습니다.
| 모델 | 이동평균(MA) | 자기회귀(AR) |
| 표현 | MA(q) | AR(p) |
| 가정 | 과거의 오차항(예측오차)가 현재의 데이터에 영향을 미친다. | 과거의 데이터가 현재 데이터에 영향을 준다. |
| 평가지표 | 자기상관함수(ACF) | 부분 자기 상관함수(PACF) |
| 설명 | ACF는 현재 이전 시점의 값들의 총 상관관계를 나타냄 | PACF는 중간에 있는 시점을 제외한 순수한 자기의 상관을 나타냄 |
4. ARMA
ARMA 모형은 자기회귀(AR)와 이동평균(MA) 모델을 결합한 방식으로, 현재값이 과거값과 과거 오차항에 모두 의존한다고 가정합니다.
- ARMA(Autoregressive Moving Average) 모형은 자기회귀(AR) 모형과 이동평균(MA) 모형을 결합한 모형
- ARMA 모형은 현재 값이 과거 값과 과거 오차항에 모두 영향을 받는다고 가정

from statsmodels.tsa.arima.model import ARIMA
model = ARIMA(data, order=(p, 0, q)) # 데이터에 ARMA(p, q) 모형 적용하기
model_fit = model.fit()
model_fit.summary() # 모델 출력