변동성 --> 비정상 시계열은 시간에 따라 통계적 특성이 변하기 때문에 모델이 일관된 패턴을 학습하기 어려움
예측 불안정성 --> 비정상 시계열은 시간에 따른 변화가 크기 때문에 미래 값을 예측하는 데 불안정성이 높음
모델 가정 위반 --> 많은 시게열 모델(예: ARIMA)이 데이터가 정상성을 가정하고 설계되었기 때문에, 비정상 시게열에 적용 시 성능이 저하됨
2) 전처리를 통해 정상 시계열로 변환시켜야 하는 이유
모델 성능 향상 --> 정상 시계열로 변환 시, 모델이 데이터의 패턴을 더 잘 학습할 수 있어 예측 정확도가 향상됨
일관된 분석 --> 정상 시계열은 통계적 특성이 일정하여 분석 결과가 더 신뢰도가 높음
모델 적용 가능성 --> 정상 시계열로 변환하면 ARIMA와 같은 전통적인 시계열 모델을 적용가능
전처리 - 정상 시계열로 ( 방법 )
첫째, 차분 ( Differencing )
정의 : 시계열 데이터에서 현재 값과 이전 값의 차이를 계산하는 방법
특징 :
데이터의 추세(Trend)를 제거할 수 있음 ( !!핵심!! )
단순한 계산으로 데이터를 변환
1차 차분, 2차 차분 등으로 여러 번 적용 가능
예시 :
어제의 온도가 20도, 오늘의 온도가 22도라면 차분은 2도
1차 차분 ( First-Order Differencing )
현재 값과 바로 이전 값의 차이를 계산하는 방법
공식 :
공식 설명 : - 현재 값 - 이전 값
1차 차분 = 데이터의 단순한 변화량을 보는 것
2차 차분 ( Second-Order Differencing )
1차 차분을 다시 차분하여 데이터 변화량의 변화를 계산하는 방법
공식 :
공식 설명 : 1. (현재 1차 차분 값 - 이전 1차 차분 값 )
2. ( 현재 값 - 이전 값 ) - ( 이전 값 - 전전 값 ) 현재 1차 차분 값 = ( 현재 값 - 이전 값 ) 이전 1차 차분 값 = ( 이전 값 - 전전 값 ) 이므로
2차 차분 = 데이터 변화량의 변화를 보는 것
도표로 이해하기
1차 차분, 2차 차분 계산 : 1차, 2차 차분의 예시
각 데이터를 시각화 :추세(Trend)가 제거됨을 확인 가능 - ( 우상향 추세 제거 )
둘째, 계절성 제거 ( Seasonal Decomposition )
정의 : 데이터에서 반복되는 계절적 패턴을 제거하는 방법
특징 :
계절성을 제거하여 데이터를 더 단순하게 만듦 ( !! 핵심 !! )
남은 데이터는 추세와 불규칙한 변화만 포함
예시 :
겨울에 코트 판매량이 늘어나는 패턴을 제거하면, 코트 판매량의 진짜 추세를 더 잘 볼 수 있음
자기 상관과 부분 자기상관
왜 알아야 하는가? : 1) 모델 선택 --> ARIMA 모델을 만들 때, 자기상관과 부분 자기상관을 통해 적절한 차수(p, q)를 결정 가능 2) 데이터 이해 --> 시계열 데이터가 과거 값에 어떻게 의존하는지 이해 가능 3) 정상성 확인 --> 자기상관을 통해 데이터가 정상성을 만족하는 지 확인 가능
자기 상관 ( Autocorrelation )
정의 : 시계열 데이터에서 현재 값과 과거 값 사이의 상관관계
특징 :
데이터가 얼마나 과거의 값에 의존하는지 보여줌
정상 시계열에서 자기상관은 시간 간격에만 의존
예시 :
어제의 온도가 오늘의 온도에 영향을 미치는 정도를 측정
자기 상관 함수 ( ACF | Autocorrelation Function )
정의 : 현재 시점의 값과 과거 시점의 값 사이의 상관관계를 측정하는 함수
특징 :
1. 시차(Lag)에 따른 상관관계 ( 시차? 목차의 참고사항 확인 ) --> 시차가 커질수록 과거로 더 멀리 이동하며, 그 영향력을 측정
2. 종합적인 영향 --> 특정 시차에서의 상관관계는 그 이전 시차들의 영향을 모두 포함
3. MA 모델 차수 결정 --> MA 모델의 차수 q를 결정할 때 사용 --> 그래프에서 상관계수가 신뢰 구간을 벗어나는 시차를 기준으로 결정 ( 신뢰 구간에 대한 자세한 사항? = 목차의 참고사항 확인 ) --> 그래프를 시각화 했을 때 상관계수가 뚝 떨어지면 떨어지기 전 시차를 차수로 결정!( 일반적 )
4. 정상성 확인 --> 일반적으로 시차3~5 사이에 상관계수가 신뢰구간 안에 들어가면 정상 시계열로 간주 (왜?정상 시계열 = 시간에 따라통계적 특성이 변하지 않는 시계열 ) ( 시차에 따라빠르게상관계수가 떨어짐 = 시간 흐름에의존하지 않음을 의미 )
예시 :
어제의 온도가 오늘의 온도에 미치는 영향: 시차 1 (Lag 1)
일주일 전의 온도가 오늘의 온도에 미치는 영향: 시차 7 (Lag 7)
시각 자료 :파란색 막대들 : 자기상관계수 파란색 영역 : 통계적으로 유의미한 상관관계가 없다고 판단할 수 있는 신뢰구간 ( 왜 갈수록 넓어지는지? = 목차의 참고사항 확인 )
부분 자기 상관 ( Partial Autocorrelation )
정의 : 다른 시간 간격의 영향을 제외하고, 현재 값과 특정 과거 값 사이의 순수한 상관관계
특징 :
다른 시간 간격의 영향을 배제해 순수한 관계를 보여줌
예시 :
어제의 온도가 오늘의 온도에 영향을 미치는 정도를 측정할 때, 그 이전 날짜의 온도 영향은 제외하는 것
부분 자기 상관 함수 ( PACF | Partial Autocorrelation Function )
정의 : 다른 시차들의 영향을 제외하고, 현재 시점의 값과 특정 과거 시점의 값 사이의 순수한 상관관계를 측정하는 함수
특징 :
1. 순수한 상관관계 --> 다른 시차들의 영향을 제거해 특정 시차에서의 순수한 관계만을 보여줌
2. AR 모델 차수 결정 --> AR 모델의 차수 p를 결정할 때 사용 --> 그래프에서 상관계수가 신뢰 구간을 벗어나는 시차를 기준으로 결정 ( 신뢰 구간에 대한 자세한 사항? = 목차의 참고사항 확인 ) --> 그래프를 시각화 했을 때 상관계수가 뚝 떨어지면 떨어지기 전 시차를 차수로 결정!( 일반적 )
시각 자료 :파란색 막대들: 부분 자기상관계수 파란색 영역: 통계적으로 유의미한 상관관계가 없다고 판단할 수 있는 신뢰구간
ACF, PACF 비교
정리 :
🔍참고 사항🔍
시차 ( Lag | Lagged Value )
정의 : 현재 시점과 과거 시점 사이의 시간 차이를 의미
설명 : "얼마나 전의 데이터를 보는지"를 나타내는 개념
특징 :
1) 시간 차이 --> lag는 시간의 차이를 나타냄 lag가 커질수록 더 먼 과거로 이동
2) 데이터 분석 --> 시계열 분석에서 lag는 과거 데이터가 현재 데이터에 미치는 영향을 측정하는 데 사용됨
3) ACF, PACF --> lag는 ACF(자기상관 함수)와 PACF(부분 자기상관 함수)에서 중요한 역할을
ACF : lag에 따른 종합적 상관관계를 측정
PACF : lag에 따른 순수한 상관관계를 측정
예시 : ( 일별 데이터인 경우 ) lag 1 : 어제의 데이터 lag 2 : 이틀 전의 데이터 lag 7 : 일주일 전의 데이터
( 주별 데이터인 경우 ) lag 2: 2주 전의 데이터
( 월별 데이터인 경우 ) lag 1: 지난 달의 데이터 lag 2: 2개월 전의 데이터
ACF, PACF에서의 신뢰구간
기존 신뢰구간 식 : ( z-score는 95% 신뢰도에서 1.96을 가짐 )
ACF, PACF에서의 신뢰구간 계산식 : 설명 : --> 상관계수는 표준화된 값으로평균과표준편차가 각각0과 1임에 따라, 위 식과 같음 --> MA, PACF 모델의 차수 결정은 95% 신뢰 구간을 벗어나는 마지막 시차를 기준으로 하여 설정
--> why? - 왜 신뢰구간 95% 일까? ( 궁금한 사람만! )
독립성을 평가하는 카이제곱검정을 생각해보자. 귀무가설 : 두 관계에 관련이 없다 (독립) 대립가설 : 두 관계에 관련이 있다 (종속)
이때, 유의수준과 p-value를 사용하며 일반적으로 유의수준 0.05를 사용하여 p-value가 0.05보다 작으면 귀무가설을 기각한다. ( 유의수준 : 가설의 참거짓을 판단하기 위해 임의로 정해놓은 수준 ) ( 이정도면 참/거짓이라고 봐도 되겠다의 지표 )
p-value는 관측된 결과가 귀무가설이 옳다는 가정하에 해당 사건이 일어날 확률을 의미한다.
귀무가설이 옳다면(둘이 관련이 없다면) --> 관측 결과가 일어날 확률이 0.05보다 높을 것이고, --> 그렇지 않다면 확률이 0.05보다 낮을 것이다.
라고 보는 것이다.
확률 p-value 0.05에 해당하는 값(z-score)이 1.96이다. ( 확률밀도함수 계산에 의해서 ... )
값(z-score)이 1.96보다 크다면 p-value는 0.05보다 더 작아질 것이다.
( 반대는 -1.96 보다 작으면 해당 ) ( 아래 표준정규분포 그림 참고 )
표준정규분포에서 p=0.05(기각역), z=1.96(임계값)을 나타낸 그림
즉, z-score가 1.96 보다 크다면 두 관계가 관련이 있는, 상관관계라는 대립가설이 참이 되는 것이다. ( 결과가 일어날 확률이 0.05보다 작아지므로 )
ACF, PACF를 통해 차수를 정하는 까닭은 미래 값을 예측하기 위해 과거 값들 중 유의미한 영향을 미친 값들만 선택해 학습해야 하기 때문이다. (몽땅 다 가져다 학습시키면 예측이 잘 안될테니..)
따라서 현재 값에 영향을 미친 n개의 값들만 잘라서 학습시키는 목적을 갖고 있기 때문에 차수를 신뢰구간 95%를 벗어나는 마지막 시차(lag)로 설정한다.
정리하자면 신뢰구간 95%를 벗어나는 시차(lag) = 상관성이 있는 시차들 상관이 있는 시차(lag)들만 학습시켜야 예측이 좋으므로해당 시차(lag)를 ACF, PACF의 차수로 결정!
but . . . - 노이즈, 불규칙성, 과적합의 한계로 신뢰구간 95%가 항상 지켜지는 것은 아님 (노이즈 : 무작위/의미없는 변동) (불규칙성 : 예측 불가능한 변동(코로나, 자연재해 등)) (과적합 : 차수가 설정해 너무 많은 시차 학습 시 과적합)
- 그래프를 육안으로 확인해 눈에 띄는 변화가 있는 시차를 차수로 설정하는 것이 일반적임
ACF, PACF 그래프 확인
ACF 그래프 :파란색 막대들 : 자기상관계수 파란색 영역 : 통계적으로 유의미한 상관관계가 없다고 판단할 수 있는 신뢰구간
파란색 신뢰 구간 영역이 갈수록 넓어지는 이유 :
샘플 크기 n이 시차가 갈수록 작아지기 때문
설명 : ACF에서 신뢰구간은 아래 식과 같다고 위에서 언급하였다.( 상관계수는 표준화된 값으로 평균과 표준편차가 각각 0과 1임에 따라, 위 식과 같음 )
위 식에서 신뢰구간에 영향을 주는 것은 분모에 있는 샘플 크기 n이다.
샘플의 수가 커짐 -> 신뢰구간 좁아짐 샘플의 수가 작아짐 -> 신뢰구간 넓어짐
시차가 커질수록 n이 작아지는 이유 :
현재 값과 과거 값을 비교할 때 사용 가능한 데이터 쌍이 줄어들기 때문 ( ACF는 현재 값과 과거 값 사이의 상관관계를 포함 ) ( 이전 시차의 영향 모두 포함 ) ( 예: lag 2에서 현재 값과 2일전 값 사이의 상관관계 측정 시, 1일 전 값의 영향도 포함 )
예 : ( 10일간의 데이터가 있을 때 )시차가 커질수록 매칭 가능한 데이터 쌍이 줄어드는 것을 확인 가능
PACF 그래프 :파란색 막대들 : 자기상관계수 파란색 영역 : 통계적으로 유의미한 상관관계가 없다고 판단할 수 있는 신뢰구간
파란색 신뢰 구간 영역이 일정한 이유 :
샘플 크기 n이 시차가 증가해도 일정하기 때문 ( PACF는 특정 시차와 현재 시차만을 1:1로 매칭 ) ( 샘플 크기에 영향 X )