시계열을 바라보는 가장 자연스러운 문제 구도는 '각각의 timestep, t 에서 다음 event까지의 시간을 예측하는 것'이다. 

이를 TTE라고 부른다. 

 

그렇지만, 다음 event가 발생하지 않아서 누락된 데이터가 있을 수 있고 이를 censored data라고 한다. 

그럼 이런 censored data분석에 쓰이는 모델이 무엇이 있을까? 

 

sliding box model

TTE를 직접 예측하는 것 대신에, 특정 사건이 t(영역)시점에 발생할 것인지를 예측한다. 

영역내의 사건발생 유무와 확률을 예측할 수 있다. 

 

  • 장점: 단순함, 명확성, 작동원리 이해 쉬움과 유연성(Xgboost나 랜덤포레스트 등 char-level RNN까지 활용가능)
  • 단점: 예측이 유익하지 못함. 예시 -> '30일동안 이벤트가 발생하지 않는다면 예측된 확률이 과연 유효한가?'

sliding box model보다 더 신뢰도가 높고 해석가능한 결과를 얻을 수 있다.

WTTE-RNN

  • 이산형, 연속형 자료에 모두 적함 가능
  • censored data 학습 가능
  • 일시적인 feature와 시간에 따른 변화하는 공변량 이용가능
  • 장기간의 일시적 패턴 학습가능

https://github.com/YBIGTA/Deep_learning/blob/master/ML/wtte/%5B2017.08.12.%ED%86%A0%5DWTTE-RNN%20%EC%A0%95%EB%A6%AC%EC%9E%90%EB%A3%8C.md

고정효과(fixed effect)와 랜덤효과(random effect)로 이루어진 모형이다. 

 

1) 한명의 실험 대상자로부터 여러 결과를 얻는 겨우(longitudianl data에서 사용할 수 있는 선형 모형)

2) 군집으로 모일 수 있는 경우

 

고정효과란

모집단과 샘플 모두에서 고정되어있는 요인의 효과를 말한다. 샘플마다 모든 요인의 level이 동일하고 효과가 동일하다고 간주할 수 있다. 

 

랜덤효과란

어떤 변수가 모집단으로부터 sampling될떄 마다 level이 고정되어 있지 않아 효과가 샘플마다 다를 수 있는 효과를 말한다. 

 

고정효과와 랜덤효과 예시

예를 들어, 20명의 환자를 대상으로, 1,3,6,9,12개월마다 스트레스 점수를 측정할 경우, 21명의 환자는 모집단에서 임의로 추출되었기 떄문에 환자간에 시간에 따른 변화양상이 다르다면 환자효과를 random effect로 간주할 수 있다.

반면, 성별이나 계절은 random한것이 아니어서 fixed effect로 통제가 가능하다. 

 

mixed model analysis의 예제

예제1) 900명의 환자를 대상으로 5개의 multi center 데이터를 180개씩 조사해, 성별이 일정할때 기관별 혈압차이를 보고싶다면 

성별을 fixed effect, 센터를 random effect로 고려해 분석가능

 

예제2) 100명의 환자를 대상으로 피험자마다 혈압을 1주일 간격으로 3회 측정할 경우, 3 시점간에 혈압이 다른지 보고싶다면

시점을 fixed effect로 피험자를 random effect로 고려해 분석가능

 

예제3) 55세 이하의 환자를 대상으로 술을 마신후 1,3,6,9,12개월마다 스트레스 측정한다면, 나이와 시간을 fixed effect, 환자를 random effect로 놓고 분석가능

 

y = Xb + Zu + e

 

y는 형질을 관측한 값으로 이루어진 벡터이다.

b는 고정효과로 알려진 요인들의 벡터이다.

u는 임의효과라고 알려진 요인들의 벡터이다.

e는 잔차항의 벡터로 역시 임의효과이다.

 

출처: https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jinp7&logNo=220954271225 

 

머신러닝 모델

  • Multi-Layer Perceptron (MLP)
  • Bayesian Neural Network (BNN)
  • Radial Basis Functions (RBF)
  • Generalized Regression Neural Networks (GRNN)
  • kernel regression K-Nearest Neighbor regression (KNN)
  • CART regression trees (CART)
  • Support Vector Regression (SVR)
  • Gaussian Processes (GP)

딥러닝

  • Recurrent Neural Network (RNN)
  • Long Short-Term Memory (LSTM)

'데이터분석 > 시계열데이터분석' 카테고리의 다른 글

WTTE-RNN  (0) 2022.11.01
Linear mixed model(LMM)  (0) 2022.10.18
시계열 데이터 분석 - 전통적인 시계열 분석  (0) 2022.10.12

시계열 데이터란?

시간에 순차적으로 관측한 값들의 집합이다. (sequence data)

시계열 분석은? 

독립변수(independant variable)을 이용해 종속변수(dependent variable)을 예측하는 일반적인 기계학습 방법에서 

시간을 독립변수로 사용한는 분석이며 횡단자료 분석이다. 

시계열 데이터 분석은 횡단자료(cross-sectional)분석이다. 

시계열 데이터의 요소

1) 추세(Trend): 장기적으로 나타나는 일반적인 경향(상향 혹은 하향하는 안정적인 모양)

- 예시: 인구, 농업생산, 제조품목, 대학 수 등 일종의 운동경향

3) 주기(Cycle): 최소 1년 이상 기간에 걸쳐 지속되는 시계열 변동

2) 계절성(Seasonal): 1년 미만의 주,월,분기, 반기 단위 등 이미 알려진 시간의 주기로 나타나는 패턴, 자연이나 사람의 관습으로 만들어진 것들

- 예시: 여름과 겨울에 다라 달라지는판매량, 농작물 생산량 등

4) 랜덤요소( Random)

 

여기서, 시계열 구성요소간의 구성을 두가지로 분류한다. 

1) 가법모형(addictive model): 각 요소들이 독립적이라 구성요소를 더하는 모형

2) 승법모형(multiplicative model): 구성요소가 독립적이지 않고 상호작용해서 구성요소를 곱하는 모델

* 여러 구성요소로 되어있는 시계열 데이터를 여러 구성요소로 나누는 것을 '시계열 분해' 라고 한다.

 

시계열 데이터 구성요소

 

목적

1. 미래 값 예측

2. 시계열 데이터 특성파악: 경향, 주기, 계절성, 불규칙성, 정상성(stationary)

 

이때 정상성이란?

시간의 추이와 관계없이 평균 및 분산이 불변하거나 시점간의 공분산이 기준 시점과 무고나한 형태의 시계열을 말한다. 

 

정상성을 만족하기 위해서는 아래 세가지를 만족해야한다.

1. 평균값이 시간 t에 상관없이 일정해야한다. 

2. 분산값은 시간 t에 관계없이 일정하다.

3. 공분산은 시간 t에 의존하지 않고 시차에만 의존한다.

 

위 세가지를 만족하는 시계열을 정상시계열이라고 한다.

한마디로, 시간의 추이와 관계없이 평균 및 분산이 불변하거나 시점간의 공분산이 기준 시점과 무고나한 형태의 시계열을 말한다.

 

* 강한 정상성/ 약한 정상성이 존재한다. 보통 약한 정상성이 대부분인데 이는 평균은 일정하나 시간에 종속적이지 않고, 분산은 시차에 따라 변하는 것을 의미한다.

어떻게 staionary를 체크할까?

1) 눈의로 직관적인 확인=> STL, Rolling statistics(moving average)

2) Dickey-Fuller test: 시계열 모델을 분석하고 예측하기 위해 정상적 조건을 확보하는 검정법

Dickey-Fuller Test 확인

그럼, 비정상 시계열을 정상시계열로 변환하기 위해서는?

 

1. 시계열 평균이 비일정하면, 원시계열에서 차분하면 정상 시계열이 된다. (추세 성분을 뺴면 평균이 정상성을 가지게된다.)

2. 계절성을 갖는 비정상시계열은 계절차분을 사용한다.

3. 분산이 일정하지 않는 경우 자연로그를 취하면 정상시계열이 된다. 

 

비정상시계열을 정상시계열로 분해하고 난 뒤 데이터를 예측하면 예측이 더욱 잘되고 쉬울것이다. 

(기존 모형들은 정규분포를 가정하고 분석하기 때문에 비정상 시계열 데이터를 입력하면 오류가 발생할 수 있다.)

*자기 상관: t시점과 (t-1)시점간의 상관관계, 일정 기간동안 증가하거나 감소하면 자기상관이 존재함.

자기상관계수 함수(auto-correlation function, ACF)

 

시계열 자료 분석 방법

일변량 시계열 분석: t만 가지고 분석, 수학적 이론 모형에 의존하고 시간에 따라 변동이 많은 시계열에 적용

  • 지수평활법, 시계열 분해방법: 직관적인 방법이며 변화가 느린 데이터를 분석하는데 사용
  • 다중 시계열 분석: 회귀모형, 전이함수 모형, 개입분석, 상태공간분석, 다변량 ARIMA모형으로 분석가능

 

시계열분석을 할 수 있는 모형

자기 회귀 모형(AR, Autoregressive)

자기 자신의 과거값을 사용하는 모형으로 현재 시계열 자료의 몇번째 전 자료까지 영향을 주는가를 구하는 것이 목적

만약, 현시점의 시계열 자료가 과거 1시점 이전 자료만 영향을 준다면 1차 자기회귀모형이라고 한다. AR(1)

일반적으로 어느정도까지 데이터를 사용할것인지 p로 나타내며, AR(p)라고 표기한다. 

 

https://m.blog.naver.com/PostView.nhn?blogId=chunjein&logNo=100173614389&proxyReferer=https:%2F%2Fwww.google.com%2F

 

자기회귀모형인지 판단하기 위해서는 자신과의 상관성과 부분자기상관함수를 사용해 판단한다. 

자기회귀모형은 자기상관함수가 시차 증가에 따라 점차 감소하고 부분자기상관함수는 시차 후 급격히 감소해 절단된 형태를 취한다.


 

자기 상관(Auto-Correlation)

 

자기 자신의 데이터간의 상관계수를 보는것이다. 이 때, 시차(Time Lag)가 사용되는데, 예를 들어 시차가 1,2,3... 인 데이터와 시차가 0인 데이터의 상관관계를 구하면 시차의 변화에 따라 자기상관을 계산할 수 있다. 이를 통해, 자기상관함수(ACF)를 만들 수 있고

비정상시계열의 경우 ACF는 천천히 감소하며, 큰값을 가지는 경우가 많다.


 

 

이동평균모형(MA, Moving Average)

 

우리가 어떠한 시계열 데이터를 가지고 전처리를 했을 때 이 시계열을 정상 시계열이라고 가정해보자. 그렇다면 이 시계열은 모든 구간에서 동일한 평균과 편차를 가질 것이다. 그렇다면 이 시계열의 모집단 분포도 동일한 평균과 분산을 가질 것이다(정규 분포를 가정).

 

이렇게 구성된 모집단에서 데이터를 샘플링 한다. 표본 집단(시계열)과 모집단에서 각각 샘플링한 데이터의 에러가 일정할 것이라 가정하고 분석을 진행한다. 이때 모집단을 백색 잡음(White Noise)이라 부른다. 평균이 $\mu$, 표준편차가 $\sigma$인 백색 잡음(White Noise)으로 생성한 시계열과의 error의 조합으로 표현할 수 있다. 

\[ Z_t = a_t - \theta_1 a_{t-1} - \theta_2 a_{t-2} - \cdots - \theta_q a_{t-q} \]

$Z_t$는 우리가 찾을 관측값이고, 이 관측값과 이전 값들의 에러($a$)에다 계수를 곱해 값을 예측하는 것이다. AR의 경우 관측값 가지고 예측을 하지만, MA의 경우는 분포를 가정하고 가정한 분포에서 샘플링 해 분석을 진행하기에 샘플에 대해서 덜 종속적이게 된다. 일반적으로는 정규 분포를 사용하나, 딥러닝에서는 다른 분포를 사용하기도 한다. 샘플에 덜 종속적이게 되어서 데이터에 불확실성을 가지고 접근하는 것이다. 일종의 생성 모델이라 보면 된다. 

 

최근 데이터의 평균이나 중앙치를 예측하는 방법으로 각 과거치는 동일한 가중치가 주어진다. (최근 데이터에 더 가중치를 주지 않음)

 

자기회귀누적 이동 모형(ARIMA)

대부분 많은 시계열 자료가 따르는 모형이며 기본비정상시계열이며 차분이나 변환으로 AR, MA, ARMA 모형으로 정상화 할 수 있다.

ARIMA모형은 과거 지식이나 경험을 바탕으로 한 행동에 따라 시계열이 움직이고 있음을 기초로 한다. 

따라서, 과거의 관측값과 오차로 현재 시계열 값을 설명한다. 

 

ARMA는 staionay Series에만 적용한다. 

정상시계열 입력이 들어왔을떄는 딥러닝보다 ARIMA 성능이 더 좋다.

 

자기회귀누적 이동모형에서는 

1) 차수 p,d,q에 따라 모형의 이름이 바뀜 (p는 AR, q는 MA, d는 ARIMA에서 ARMA로 정상화할떄 몇번 차분했는지 묻는 값들이다.

AR은 과거 시점의 관측자료의 선형결합으로 표현되고, MA는 과거 시점의 백색잡음의 선형결합으로 표현됨, ARMA는 위 두 모형을 합친 모형이다. 

 

p,d,q는 어떻게 정의할까?

 

ACF plotrhㅏ PACF plot을 통해 AR 및 MA의 모수를 추청한다. 

ACF(Autocorrelation function): Lag에 따른 관측치들 사이의 관련성을 측정하는 함수

 

 

PACF(Partial autocorrelation function)

k이외의 모든 다른 시점 관측치의 영향력을 배제하고 y_k와 y_(k-1) 두 관측치의 관련성을 측정하는 함수

 

백색잡음(White Noise)

- 평균이 0이며 일정한 분산을 지닌 정규분포에서 추출된 임의의 수치로 시계열 모형에서 불규칙한 패턴을 가지는 것

- 회귀식에서 설명되지 않는 Error(Uncontrolable variable)

 

분해시계열

시계열에 영향을 주는 일반적인 요인을 시계열에서 분리해서 분석하는 방법

1) 추세요인: 자료가 어떤 특정한 형태를 취하는것

2) 계절요인: 계절에 따른 고정주기로 자료가 변하는 경우

3) 순환요인: 알려지지 않은 주기를 가지고 순환하는 경우

4) 불규칙 요인: 위 세가지로 표현할 수 없는 오차가 생기는 경우

 

출처: https://m.blog.naver.com/dsz08082/222042702104

 

단변량시계열 데이터 분석인 경우에는 위의 전통적인 분석방법이 효과적이다. 하지만, 다변량 시계열데이터의 경우에는 머신러닝 기법을 적용하는것이 더욱 효율적이다. 

 

 

 

'데이터분석 > 시계열데이터분석' 카테고리의 다른 글

WTTE-RNN  (0) 2022.11.01
Linear mixed model(LMM)  (0) 2022.10.18
시계열 데이터 분석 - 머신러닝, 딥러닝  (0) 2022.10.12

+ Recent posts