본문 바로가기
머신러닝

시계열 공부 (1) - 시계열회귀분석

by 제리의 세계 2023. 6. 27.

안녕하세요! 제리입니다.

 

DMQA 김성범교수님 유튜브인 Time Series Regression (1)~(3) 강의를 보며 정리했습니다.

 

 

https://www.youtube.com/watch?v=7Do_hixXCpc

시계열 데이터 : 시간의 흐름에 따라 순서대로 관측되어 시간의 영향을 받게 되는 데이터로  , , 분기, 년 등

구성 추세(trend), 순환(cycle), 계절(seasonal variations), 우연(random fluctuation)

추세 : 시간이 경과함에 따라 관측값이 지속적으로 증가하거나 감소하는 추세를 갖는 경우의 변동 (Downward, Upward)

순환, 주기 : 주기적인 변화를 가지거나, 계절에 의한 것이 아니고 주기가 긴 경우의 변동

계절 : 주별, 월별, 계졀별과 같이 주기적인 요인에 의한 변동, 순환 변동의 특정한 변동

우연 변동 : 규치적인 움직임과 무관하게 랜덤한 원인 (ex, 백색잡음 : 평균이 0이고 분산이 일정한 시계열 데이터)

 

Time series 예

맨위부터 observed, trend, seasonal, random => observed = trend+seasonal+random

 

예측 오차 : t시점에서의 실제값 예측값 => 작을수록 좋음, 오차의 부호가 중요하지 않고 정도가 중요하기에 단순히 더한 측도는 좋지 않음

평균절대편차(MAD) : 예측 오차를 절대값을 씌운 후 다 더하고 개수로 나눔

평균제곱편차 (MSE) : 절대값을 한 후 더해서 개수로 나눔

MAD vs MSE  => 공통 : 모두 다 양수로 만듦

차이 : MSE의 경우 예측 오차의 차이가 크면 수가 점점 더 커진다는 점

 

MAPE(Mean Absolute Percentage Error) : 평균적으로 보여줌

MAPE 식

실제값이 0이면 안됨, 실제값이 작으면 굉장히 커진다는 특징

예측값이 실제값보다 작을 경우 MAPE가 호의적으로 나옴

Y = 20, y^ = 10, n = 1 => MAPE = 50%

Y = 10, y^ = 20, n = 1 => MAPE = 100%

 

Trend – No Trend, Linear Trend, Quadratic Trend

No trend : 평균값으로 추정 (일정 값) => 신뢰구간 형식으로 interval 구함

Time이 유일한 explanatory 변수일 경우 Least-squared estimation (최소제곱법)으로 사용

 

일반 회귀 모델 식

보통의 회귀 모델의 경우, error term의 가정은 평균이 0, 분산이 시그마 제곱임, Cov(I,j) = 0인 독립을 따름

시계열의 경우 error term의 가정에서 독립이라는 것이 위배될 가능성이 큼!

 

Correlation : 두 변수 사이의 관계를 -1~1 사이의 값으로 표현하는 척도

Autocorrelation : 자기자신과 shift된 자기 자신과의 관계 (슬라이딩 윈도우 개념) – residual을 사용

Positive autocorrelation : +가 나오면 그 다음 나오는 것은 + 가 나온다는 관계

Negative autocorrelation, random autocorrelation

Durbin-Watson Test : first order (한시점 미룬) positive auttocorrelation이 있는 지 확인하는 테스트

H0: not autocorrelated

 

Season Variations – constant, increasing 두개가 있음

Constant seasonal variation : seasonal한 폭이 일정한 경우 (핸들링 쉬움)

Increasing seasonal variation : seasonal 폭이 계속 증가한 경우 (핸들링 어려움) => constant하게 변화시켜줌 (제곱근, 로그 변환 등)

 

Binary Variable Models 식

1. Binary Variable Model : 각 달에 해당하면 1 아니면 0으로 설정을 하여 12월을 기준으로 하기에 12월에 해당하는 것은 모든 M0이 되면 됨

만일 increasing seasonal variation이 보일 경우 로그 변환이나 제곱근 변화를 시켜줌

Beta2가 양수일 경우, 12월보다 1월에 더 많다는 것을 의미하는 것임

 

Trigonometric Models 식1
Trigonometric Models 식2

2. Trigonometric Model : 사인과 코사인으로 seasonal을 반영하고자 함

 

Growth Curve Models 식

3. Growth Curve Model : 비선형 결합 => 로그를 사용해 선형으로 변경

 

 

지수평활법 - y자체의 패턴을 통해서 예측

1. 구간 평균법 : 과거 시점의 일정 기간의 평균으로 다음 시점을 예측

-      일정 기간 N을 결정 =>과거 N 기간 동안의 데이터를 평균 => 예측

-      한계 : 미래의 예측 값이 동일, 과거 n 데이터에 동일한 가중치

-      작은 값의 N은 최근 데이터의 경향을 많이 받고, 큰 값은 과거 데이터 경향을 많이 반영해 편평하게 예측

 

단순지수평활법 계산

지수 평활법 : 단순 평균이 아닌 가중 평균을 이용하고 지수분포 모양에 근거한 가중치를 결정 => 최근 데이터에 보다 많은 가중치를 두고 갈수록 가중치가 줄어듦

 

2. 단순지수 평활법 : 모든 과거데이터 포함해 계산, 최근 데이터에 보다 큰 가중치 부여

- 현재와 가까운 것은 alpha만큼만 곱해지고 점점 더 (1-alpha)만큼의 곱을 해서 작게 만듦

- alpha => 최근 데이터에 큰 가중치, 작은 alpha => 과거 데이터에 큰 가중치 (보편적으로 0.20.3사용)

- 한계 : 트랜드 있는 데이터에 적합X, 계절적 변동 있는 데이터에 적합X, 미래 시점 관계없이 예측 값 모두 동일

 

이중지수평활법 계산

3. 이중지수평활법 : 트랜드가 존재하는 시계열 데이터 예측시 적합, 단순지수평활법을 2번 적용

회귀분석으로 L0(기울기)B0 (Y 절편) 결정 후 (1-alpha) 가중치에 Bt가 있다는 점

Trend Term인 Bt에 대한 계산 과정

단순지수 평활법과 다른 점은 Bt 앞 계수가 다르다는 점

 

4. 홀트-윈터 지수평활법 : 계절변동 존재시 사용 – additivemultiplicative 두 개가 존재

Additive 방법 계절 변동 산포 일정한 경우 사용

Multiplicative 방법 계절 변동 산포 증가할 경우 사용