What is Serial Dependence?
이전 강의에서는 시간 종속 속성, 즉 시간 지수에서 직접 도출할 수 있는 특징을 사용하여 가장 쉽게 모델링할 수 있는 시계열의 속성에 대해 살펴보았습니다. 그러나 일부 시계열 속성은 시계열 종속 속성으로만 모델링할 수 있습니다. 즉, 대상 시계열의 과거 값을 피처로 사용하는 것입니다. 이러한 시계열의 구조는 시간 경과에 따른 플롯에서는 명확하지 않을 수 있지만, 아래 그림에서 볼 수 있듯이 과거 값에 대해 플롯하면 구조가 명확해집니다.
이 단원의 목표는 오른쪽 그림과 같은 플롯에 곡선을 맞추도록 모델을 훈련하는 것입니다. 즉, 모델이 직렬 의존성을 학습하도록 하려는 것입니다.
Cycles
serial dependence가 나타나는 일반적인 방법 --> 주기(싸이클)
주기는 시간 단계 자체에 의존하는 것은 아님. 스스로 영항을 끼치거나, 시간이 지나도 반응이 지속되는 것이 특징.
ex. 경제, 전염병, 동물 개체 수, 화산 폭발...
주기적 행동(cyclic behavior)이 계절성(seasonality)과 구별되는 점은 계절처럼 주기가 반드시 시간에 의존하지 않는다는 점입니다. 주기에서 일어나는 일은 특정 발생 날짜보다는 최근 과거에 일어난 일에 더 큰 영향을 받습니다. 시간으로부터 (적어도 상대적으로) 독립적이라는 것은 주기적 행동이 계절성보다 훨씬 더 불규칙할 수 있다는 것을 의미합니다.
Lagged Series and Lag Plots
시계열에서 가능한 직렬 의존성(예: 주기)을 조사하려면 시계열의 "지연된" 복사본을 만들어야 합니다. 시계열을 지연시킨다는 것은 그 값을 하나 이상의 시간 단계 앞으로 이동하거나, 이와 동등하게 인덱스의 시간을 하나 이상의 시간 단계 뒤로 이동하는 것을 의미합니다. 두 경우 모두 시차가 있는 시계열의 관측값이 나중에 발생한 것처럼 보이게 되는 효과가 있습니다.
시계열을 시차를 두면 과거 값이 예측하려는 값과 동시적으로(즉, 같은 행에서) 나타나도록 할 수 있습니다. 따라서 시차가 있는 시계열은 직렬 의존성을 모델링하는 데 유용합니다. 미국 실업률 시리즈를 예측하기 위해 y_lag_1과 y_lag_2를 피처로 사용하여 목표 y를 예측하면 이전 두 달의 실업률의 함수로 미래 실업률을 예측할 수 있습니다.
Lag plots(지연 플롯)
시계열의 지연 플롯은 그 값을 지연에 대해 플롯한 것입니다. 시계열의 직렬 의존성은 종종 지연 플롯을 보면 분명해집니다. 이 미국 실업률의 지연 플롯을 보면 현재 실업률과 과거 실업률 사이에 강력하고 명백한 선형 관계가 있음을 알 수 있습니다.
Choosing lags
피처로 사용할 지연을 선택할 때 일반적으로 자기 상관관계(autocorrelation)가 큰 모든 지연을 포함하는 것은 유용하지 않습니다.
부분 자동 상관관계를 플로팅하면 어떤 지연 기능을 사용할지 선택하는 데 도움이 될 수 있습니다. 아래 그림에서 지연 1부터 지연 6까지는 '상관관계 없음' 구간(파란색)을 벗어나 있으므로 지연 1부터 지연 6까지를 미국 실업률의 특징으로 선택할 수 있습니다. (지연 11은 오탐일 가능성이 높습니다.)
위와 같은 플롯을 상관도라고 합니다. 코레로그램은 기본적으로 푸리에 피처에 대한 주기 도표와 같은 지연 피처에 대한 도표입니다.
마지막으로, 자동 상관관계와 부분 자동 상관관계는 선형 의존성의 척도라는 점을 염두에 두어야 합니다. 실제 시계열에는 상당한 비선형 의존성이 있는 경우가 많으므로 지연 기능을 선택할 때는 지연 플롯을 보거나 상호 정보와 같은 보다 일반적인 의존성 측정값을 사용하는 것이 가장 좋습니다. 비선형 관계는 선형 관계로 변환하거나 적절한 알고리즘을 통해 학습할 수 있습니다.
Example - Flu Trends
독감 동향 데이터 세트에는 2009년부터 2016년까지 몇 주 동안의 독감으로 인한 의사 방문 기록이 포함되어 있습니다. 우리의 목표는 앞으로 몇 주 동안의 독감 발병 건수를 예측하는 것입니다.
두 가지 접근 방식을 취할 것입니다. 첫 번째는 지연 기능을 사용하여 의사 방문을 예측하는 것입니다. 두 번째 접근 방식은 또 다른 시계열인 Google 트렌드에서 캡처한 독감 관련 검색어의 지연을 사용하여 의사 방문을 예측하는 것입니다.
독감 트렌드 데이터는 규칙적인 계절성 대신 불규칙한 주기를 보여줍니다. 새해 즈음에 정점에 도달하는 경향이 있지만 때로는 더 빠르거나 늦게, 때로는 더 크거나 작게 나타납니다. 이러한 주기를 지연 기능으로 모델링하면 예측자가 계절 기능처럼 정확한 날짜와 시간에 제약을 받지 않고 변화하는 상황에 동적으로 대응할 수 있습니다.
먼저 지연 및 자동 상관관계 플롯을 살펴보겠습니다:
지연 플롯은 FluVisits와 그 지연의 관계가 대부분 선형임을 나타내며, 부분적인 자기 상관 관계는 지연 1, 2, 3, 4를 사용하여 의존성을 포착할 수 있음을 시사합니다. pandas에서 시프트 방법을 사용하면 시계열을 지연시킬 수 있습니다. 이 문제에서는 지연으로 인해 발생하는 결측값을 0.0으로 채우겠습니다.
지연 기능을 사용할 때는 지연된 값을 사용할 수 있는 시간 단계만 예측할 수 있습니다. 월요일에 지연 1 기능을 사용하면 필요한 지연 1 값은 아직 발생하지 않은 화요일이므로 수요일에 대한 예측을 만들 수 없습니다.
이 단원에서 설명하는 시계열은 "순수 주기적"이라고 할 수 있는 것으로, 뚜렷한 추세나 계절성이 없습니다. 하지만 추세, 계절성, 주기라는 세 가지 요소를 한 번에 모두 포함하는 시계열은 드물지 않습니다. 각 구성 요소에 적절한 기능을 추가하기만 하면 선형 회귀를 통해 이러한 시계열을 모델링할 수 있습니다.
'Kaggle Learn' 카테고리의 다른 글
Time Series - Seasonality (1) | 2024.05.21 |
---|---|
Time Series - Trend (0) | 2024.05.21 |
Time Series - Linear Regression With Time Series (1) | 2024.05.21 |
Data Visualization - Choosing Plot Types and Custom Styles (0) | 2024.03.23 |
Data Visualization - Distributions (0) | 2024.03.23 |