- 빈도(Frequency): 계절성 패턴(Seasonality)이 나타나기 전까지의 데이터 갯수로 사람이 정해야 함
- Frequency 설정 이점 : 데이터의 시간차원중에서 사람이 지웠거나 실수로 빠졌거나 한 것들을 체크해줌 -> 빠진 것들을 NAN 설정
예시: 계설성이 1년에 1회 나타날 경우,
Datafrequency
Annual | 1 |
Quarterly | 4 |
Monthly | 12 |
Weekly | 52 |
예시: 데이터가 "일(Day)" 단위로 수집된 경우,
Seasonalityfrequency
Weekly | 7 |
Annual | 365 |
예시: 데이터가 "분(Minute)" 단위로 수집된 경우,
Seasonalityfrequency
Hourly | 60 |
Daily | 24 x 60 |
Weekly | 24 x 60 x 7 |
Annual | 24 x 60 x 365 |
빈도 설정을 위한 Python 함수 옵션:
AliasDescription
B | Business day |
D | Calendar day |
W | Weekly |
M | Month end |
Q | Quarter end |
A | Year end |
BA | Business year end |
AS | Year start |
H | Hourly frequency |
T, min | Minutely frequency |
S | Secondly frequency |
L, ms | Millisecond frequency |
U, us | Microsecond frequency |
N, ns | Nanosecond frequency |
MethodDescription
bfill | Backward fill |
count | Count of values |
ffill | Forward fill |
first | First valid data value |
last | Last valid data value |
max | Maximum data value |
mean | Mean of values in time range |
median | Median of values in time range |
min | Minimum data value |
nunique | Number of unique values |
ohlc | Opening value, highest value, lowest value, closing value |
pad | Same as forward fill |
std | Standard deviation of values |
sum | Sum of values |
var | Variance of values |
- 추세(Trend, 𝑇𝑡Tt): 시계열이 시간에 따라 증가, 감소 또는 일정 수준을 유지하는 경우
- (수학적 이해)
- 확률과정의 결정론적 기댓값 함수를 알아내는 것
- 확률과정(𝑌𝑡Yt)이 추정이 가능한 결정론적 추세함수(𝑓(𝑡)f(t))와 정상확률과정(𝑌𝑠𝑡Yts)의 합𝑌𝑡=𝑓(𝑡)+𝑌𝑠𝑡Yt=f(t)+Yts
- (수학적 이해)
- 계절성(Seasonality, 𝑆𝑡St): 일정한 빈도로 주기적으로 반복되는 패턴(𝑚m), 특정한 달/요일에 따라 기대값이 달라지는 것
- 계설정 반영 방법큰 크게 2가지: 수치값 그대로, 발생 시점으로 분리
주기적 패턴이 12개월마다 반복(𝑚m = 12)
- 주기(Cycle, 𝐶𝑡Ct): 일정하지 않은 빈도로 발생하는 패턴(계절성)
- 빈도가 1인 경우에도 발생 가능(𝑚m = 1).
- 시계열 분해(추세/계절성/잔차(Residual, 𝑒𝑡et)):
- 지연값(Lagged values, 𝐿𝑎𝑔𝑡(𝑋1)Lagt(X1)): 변수의 지연된 값을 독립변수로 반영하는 것으로,ARIMA/VAR/NNAR 등이 활용
1/3일에 발생한 매출은 1/2일에 발생한 광고비와 1/3일에 발생한 광고비에도 영향을 미침
y=a1x1+a2lag1(xt)+a3lag2(xt)
근데 보통 p-value가 a1 과 a2는 유의하지 않다고 나옴
결국 -> y=a1x1+lag1(xt)+lag2(xt)
ex) Arimar/var/nnar에서 활용
- 시간변수: 시간변수를 미시/거시 적으로 분리하거나 통합하여 생성된 변수
- EX) 2010-10-05 -5:50 -> year/month/day/time 으로 바꾸는 것
- 장점: 1. 세분화 된 시간해석
- 2. 예측 / 적합력에 훨씬 도움이 됨
* 시계열 데이터를 1스텝 교차 검사를 시키는 이유 (Time Series cross-validation 기법)
-> 비시게열은 통합적인 퍼포먼스 산출이 가능하지만 시계열은
ex) 1,2월이 train ,3월이 Test일 때 3월 한달간 각각의 날짜마다 performance가 달라질 수 밖에 없음
-> 가까운미래는 예측력이 높지만 먼 미래는 예측력이 떨어짐
* one step 이 일반적이지만 one과 two step은 따로 모델을 만들어야하고 각각의 필요에 따라 (단기,장기예측) 진행
- 가장 가까운 최근시점을 예측하고 그것을 다시 예측값에 넣어서 분석진행하는 방법
- 요약:
- 시계열 구성요소는 각 변수의 시간패턴을 파악하는데 중요
- FE를 통해 생성된 변수의 입력(Input) 형태로 모형 선택을 하는데 필요
- 생성된 변수의 패턴이 기존 모델에서 반영하지 않던 패턴이라면 예측 성능을 높임
- 예측성능 향상 뿐 아니라 결과를 해석하고 해당 속성을 분석하며 가능한 원인 식별에 도움
반응형
'Time Series Model' 카테고리의 다른 글
상태 공간 모형 기반의 로컬 레벨 모형 및 시계열 구조화 모형 (0) | 2023.05.22 |
---|---|
일반 선형 확률 과정(General Linear Process) - WN,AR,MA (1) | 2023.05.19 |
상태 공간 모형 기반의 지수 평활법 및 선형 추세 알고리즘 (0) | 2023.05.17 |
시계열 분석 (Time Series) (0) | 2021.07.16 |