1. 시계열의 주파수 분석
시계열 데이터는 시간에 따라 변화하는 자료를 의미합니다. 예를 들어, 월별 온도 변화, 연도별 GDP, 분기별 매출액 등이 시계열 데이터에 해당합니다. 이 시계열 데이터를 분석하는 방법 중 하나가 주파수 분석입니다.
주파수 분석은 자료에 내재된 주기성(반복되는 패턴)을 찾아내는 방법으로, 데이터가 특정 주기(월, 분기, 연도 등)를 기준으로 어떻게 변동하는지 확인할 수 있습니다.
삼각함수를 이용한 시계열 표현
시간에 따라 변하는 값을 수학적으로 표현하기 위해 삼각함수를 활용할 수 있습니다.
여기서
은 원의 반지름
는 원 위의 한 점 좌표
이를 시계열에 적용하면, 데이터를 사인, 코사인 함수의 조합으로 표현하여 주기성을 수학적으로 분석할 수 있습니다.
주기적 시계열의 수식 표현
시계열 데이터
를 다음과 같이 표현할 수 있습니다.
여기서
: 진폭
: 주파수
: 시간
주기
와 주파수
의 관계는 아래와 같습니다.
예를 들어, 월별 데이터에서 연간 주기라면
가 됩니다.
주기 수와 주파수
데이터의 총 관측값이
개일 때, 가능한 주기의 수는
로 계산합니다.
그리고 빠른 푸리에 변환(FFT)을 이용하면 계산 복잡도를
에서
으로 줄일 수 있어 대용량 데이터 분석에 효율적입니다.
푸리에 변환(Fourier Transform) 이란?
시계열 데이터(시간의 흐름에 따른 값)를 주파수 성분으로 분해하는 것
즉, 데이터를 구성하는 진동(주파수)의 크기와 패턴을 찾는 방법
푸리에 변환 계산식
데이터 N개에 대해 다음 식으로 계산함
-
이걸 모든 주파수 k에 대해 반복 계산하니
-
총 N개의 k × N개의 n = N² 번 계산해야 함
복잡도
빠른 푸리에 변환(FFT : Fast Fourier Transform)
데이터의 대칭성, 주기성을 활용해 필요 없는 중복 계산을 줄여 계산량을 대폭 줄이는 알고리즘
결과
복잡도가
단계적으로 데이터를 절반씩 나눠 계산하는 방식 (분할정복)
스펙트럼 분석
스펙트럼 분석은 각 주파수별로 데이터의 변동성을 분해하여 시계열에 내재된 주기성을 시각화하는 방법입니다.
이를 통해 데이터에서 어떤 주기가 가장 크게 나타나는지 확인할 수 있으며, 주로 스펙트럼 그래프를 이용해 표현합니다.
2. 시계열과 확률과정
확률과정은 시간의 흐름에 따라 확률적으로 변하는 변수들의 집합입니다. 예를 들어, 주식 가격이나 날씨 같은 데이터가 이에 해당합니다.
확률과정은 아래와 같이 정의됩니다.
확률과정의 기대값과 공분산은 다음과 같습니다.
이 값을 통해 시계열의 시간적 종속성을 분석할 수 있습니다.
3. R을 이용한 주파수 분석 실습
R에서는 spectrum()
함수를 사용하여 시계열 데이터의 스펙트럼을 분석할 수 있습니다.
예시 코드
1
2
|
data <- AirPassengers
spectrum(data)
|
cs |
코드 설명
-
AirPassengers
: 월별 항공 승객 데이터 -
spectrum(data)
: 데이터의 스펙트럼 그래프를 출력하여 주기성을 시각화
이 그래프를 통해 어느 주파수에서 데이터의 변동성이 큰지 확인할 수 있습니다.
중요 내용 정리
-
시계열 데이터는 시간에 따른 데이터를 의미
-
주파수 분석은 데이터 내의 주기성을 삼각함수로 표현해 분석
-
스펙트럼 분석은 각 주파수별 데이터의 분산을 시각화
-
확률과정은 시간에 따른 확률변수의 집합
-
R의
spectrum()
함수로 데이터의 주파수 성분 분석 가능
객관식 문제
1. 시계열 데이터의 주기를 결정하는 값은 무엇인가?① 진폭
② 주파수
③ 표준편차
④ 평균
정답: ②
해설: 주파수
는 주기의 역수로, 주기를 결정합니다.
2. 스펙트럼 분석의 목적은?
① 데이터의 평균값 확인
② 데이터의 분산 확인
③ 데이터 내 주기성 분석
④ 데이터의 이상값 탐색
정답: ③
해설: 스펙트럼 분석은 데이터에 내재된 주기성을 주파수별로 분해해 확인하는 기법입니다.
3. R의 spectrum()
함수의 기능으로 올바른 것은?
① 시계열 데이터 요약
② 데이터의 스펙트럼 분석 및 시각화
③ 회귀분석
④ 데이터 정규화
정답: ②
해설: spectrum()
함수는 주파수별 데이터의 변동성을 분석해 그래프로 표현합니다.