2.1 ts
객체
시계열이란 각 숫자가 기록된 시간에 관한 정보가 있는 숫자들의 목록으로 생각할 수 있습니다. R에서는 이러한 정보를 ts
객체로 저장할 수 있습니다.
여러분이 과거 몇 년 동안의 연간 관측값을 가지고 있는 상황을 생각해봅시다:
연도 | 관측값 |
---|---|
2012 | 123 |
2013 | 39 |
2014 | 78 |
2015 | 52 |
2016 | 110 |
ts()
함수로 이것을 ts
객체로 바꾸겠습니다:
<- ts(c(123,39,78,52,110), start=2012) y
1년에 한 관측값이 있는 연간 데이터를 가지고 있다고 가정했으니, 시작 연도만(또는 마지막 연도만) 있으면 됩니다.
1년에 한 번 이상으로 자주 관측된 값의 경우에는, 단순하게 frequency
입력값만 추가하면 됩니다. 예를 들면, 다음과 같이 월별 데이터가 수치 벡터 z
에 저장되어있을 때, 이것을 다음과 같이 ts
객체로 바꿀 수 있습니다:
<- ts(z, start=2003, frequency=12) y
이 책에서 사용하는 거의 모든 데이터는 이미 ts
객체로 바뀌어있습니다. 하지만 여러분만의 데이터로 작업하고 싶다면, 분석하기에 앞서 ts()
함수를 사용해야 합니다.
시계열의 빈도
“빈도(frequency)”는 계절성 패턴이 반복되기 전까지의 관측값의 수입니다.1 R에서 ts()
함수를 사용할 때는, 다음과 같은 옵션을 사용해야합니다.
데이터 | 빈도 |
---|---|
연 | 1 |
분기 | 4 |
월 | 12 |
주 | 52 |
실제로 1년은 \(52\)주가 아니라, 4년마다의 윤년을 고려하여 평균적으로 \(365.25/7 = 52.18\) 입니다. 하지만 ts
객체를 이용하는 대부분의 함수는 정수 빈도를 필요로 합니다.
관측값의 빈도가 1주일에 한 번보다 클 때는, 빈도(frequency)를 다루는 한 가지 이상의 방법이 있습니다. 예를 들면, 일별 관측값으로 구성된 데이터에는 주별 계절성(빈도=7)이나 연간 계절성(빈도=365.25)이 있을 것입니다. 비슷하게, 1분마다 관측된 데이터에는 시간별 계절성(빈도=60), 일별 계절성(빈도=24x60=1440), 주별 계절성(빈도=24x60x7=10080), 연간 계절성(24x60x365.25=525960) 등이 있을 것입니다. ts
객체를 사용하고 싶다면, 이 중에서 어떤 것이 가장 중요한지 결정해야합니다.
11 장에서는 이러한 빈도 목록에서 하나를 고르지 않고 다중 계절성(multiple seasonality)을 다루는 방법을 살펴볼 것입니다.
물리학이나 푸리에(Fourier) 분석에서 사용하는 빈도의 정의와는 다릅니다. 이러한 분야에서는 지금 우리가 이야기하는 용어를 “주기(period)”라고 부릅니다.↩︎