[예측방법론] 3강. 시계열의 주파수 분석과 확률과정

1. 시계열의 주파수 분석

시계열 데이터는 시간에 따라 변화하는 자료를 의미합니다. 예를 들어, 월별 온도 변화, 연도별 GDP, 분기별 매출액 등이 시계열 데이터에 해당합니다. 이 시계열 데이터를 분석하는 방법 중 하나가 주파수 분석입니다.

주파수 분석은 자료에 내재된 주기성(반복되는 패턴)을 찾아내는 방법으로, 데이터가 특정 주기(월, 분기, 연도 등)를 기준으로 어떻게 변동하는지 확인할 수 있습니다.

삼각함수를 이용한 시계열 표현

시간에 따라 변하는 값을 수학적으로 표현하기 위해 삼각함수를 활용할 수 있습니다.

sinθ=yr cosθ=xr

여기서

rr

은 원의 반지름

(x,y)(x, y)

는 원 위의 한 점 좌표

이를 시계열에 적용하면, 데이터를 사인, 코사인 함수의 조합으로 표현하여 주기성을 수학적으로 분석할 수 있습니다.

주기적 시계열의 수식 표현

시계열 데이터

yty_t

를 다음과 같이 표현할 수 있습니다.

yt=Acos(2πωt)+Bsin(2πωt)y_t = A \cos(2\pi \omega t) + B \sin(2\pi \omega t)

여기서

A,BA, B

: 진폭

ω\omega

: 주파수

tt

: 시간

주기

pp

와 주파수

ω\omega

의 관계는 아래와 같습니다.

ω=1p\omega = \frac{1}{p}

예를 들어, 월별 데이터에서 연간 주기라면

p=12p=12 ω=112\omega = \frac{1}{12}

가 됩니다.

주기 수와 주파수

데이터의 총 관측값이

nn

개일 때, 가능한 주기의 수는

np\frac{n}{p}

로 계산합니다.

그리고 빠른 푸리에 변환(FFT)을 이용하면 계산 복잡도를

O(N2)O(N^2)

에서

O(NlogN)O(N \log N)

으로 줄일 수 있어 대용량 데이터 분석에 효율적입니다.


푸리에 변환(Fourier Transform) 이란?

시계열 데이터(시간의 흐름에 따른 값)를 주파수 성분으로 분해하는 것
즉, 데이터를 구성하는 진동(주파수)의 크기와 패턴을 찾는 방법

푸리에 변환 계산식

데이터 N개에 대해 다음 식으로 계산함

 

X(k)=n=0N1x(n)ej2πkn/N

 

  • 이걸 모든 주파수 k에 대해 반복 계산하니

  • N개의 k × N개의 n = N² 번 계산해야 함

복잡도

 

O(N2)

 

빠른 푸리에 변환(FFT : Fast Fourier Transform)

데이터의 대칭성, 주기성을 활용해 필요 없는 중복 계산을 줄여 계산량을 대폭 줄이는 알고리즘

결과

복잡도가

 

O(N2)O(NlogN)O(N^2) \rightarrow O(N \log N)

 

단계적으로 데이터를 절반씩 나눠 계산하는 방식 (분할정복)


스펙트럼 분석

스펙트럼 분석은 각 주파수별로 데이터의 변동성을 분해하여 시계열에 내재된 주기성을 시각화하는 방법입니다.

이를 통해 데이터에서 어떤 주기가 가장 크게 나타나는지 확인할 수 있으며, 주로 스펙트럼 그래프를 이용해 표현합니다.

2. 시계열과 확률과정

확률과정은 시간의 흐름에 따라 확률적으로 변하는 변수들의 집합입니다. 예를 들어, 주식 가격이나 날씨 같은 데이터가 이에 해당합니다.

확률과정은 아래와 같이 정의됩니다.

Yt=시간 t에서의 랜덤변수Y_t = \text{시간 } t \text{에서의 랜덤변수}

확률과정의 기대값과 공분산은 다음과 같습니다.

E(Yt)=μtE(Y_t) = \mu_t

γ(s,t)=Cov(Ys,Yt)\gamma(s, t) = \text{Cov}(Y_s, Y_t)

이 값을 통해 시계열의 시간적 종속성을 분석할 수 있습니다.

3. R을 이용한 주파수 분석 실습

R에서는 spectrum() 함수를 사용하여 시계열 데이터의 스펙트럼을 분석할 수 있습니다.

예시 코드

1
2
data <- AirPassengers
spectrum(data)
cs

코드 설명

  • AirPassengers : 월별 항공 승객 데이터

  • spectrum(data) : 데이터의 스펙트럼 그래프를 출력하여 주기성을 시각화

이 그래프를 통해 어느 주파수에서 데이터의 변동성이 큰지 확인할 수 있습니다.


중요 내용 정리

  • 시계열 데이터는 시간에 따른 데이터를 의미

  • 주파수 분석은 데이터 내의 주기성을 삼각함수로 표현해 분석

  • 스펙트럼 분석은 각 주파수별 데이터의 분산을 시각화

  • 확률과정은 시간에 따른 확률변수의 집합

  • R의 spectrum() 함수로 데이터의 주파수 성분 분석 가능


객관식 문제

1. 시계열 데이터의 주기를 결정하는 값은 무엇인가?① 진폭

② 주파수

③ 표준편차

④ 평균

정답:

해설: 주파수

ω\omega

는 주기의 역수로, 주기를 결정합니다.

2. 스펙트럼 분석의 목적은?

① 데이터의 평균값 확인

② 데이터의 분산 확인

③ 데이터 내 주기성 분석

④ 데이터의 이상값 탐색

정답:

해설: 스펙트럼 분석은 데이터에 내재된 주기성을 주파수별로 분해해 확인하는 기법입니다.

3. R의 spectrum() 함수의 기능으로 올바른 것은?

① 시계열 데이터 요약

② 데이터의 스펙트럼 분석 및 시각화

③ 회귀분석

④ 데이터 정규화

정답:

해설: spectrum() 함수는 주파수별 데이터의 변동성을 분석해 그래프로 표현합니다.

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다