Làm thế nào để phân tách một chuỗi thời gian với nhiều thành phần theo mùa?


22

Tôi có một chuỗi thời gian chứa hai thành phần theo mùa và tôi muốn phân tách chuỗi thành các thành phần chuỗi thời gian sau (xu hướng, thành phần theo mùa 1, thành phần 2 theo mùa và thành phần không đều). Theo tôi biết, quy trình STL để phân tách một chuỗi trong R chỉ cho phép một thành phần theo mùa, vì vậy tôi đã thử phân tách chuỗi hai lần. Đầu tiên, bằng cách đặt tần số là thành phần theo mùa đầu tiên sử dụng mã sau:

ser = ts(data, freq=48)
dec_1 = stl(ser, s.window="per")

Sau đó, tôi đã phân tách thành phần bất thường của chuỗi phân tách ( dec_1) bằng cách đặt tần số thành thành phần theo mùa thứ hai, như sau:

ser2 = ts(dec_1$time.series[,3], freq=336)
dec_2 = stl(ser2, s.window="per")

Tôi không tự tin lắm với cách tiếp cận này. Và tôi muốn biết liệu có cách nào khác để phân tách một loạt có nhiều tính thời vụ hay không. Ngoài ra, tôi đã nhận thấy rằng tbats()chức năng trong gói dự báo R cho phép một người phù hợp với một mô hình cho một chuỗi có nhiều tính thời vụ, tuy nhiên, nó không nói cách phân tách một chuỗi với nó.


Xin chào và chào mừng đến với trang web. Đối với hai thành phần theo mùa của bạn, chúng có định kỳ khác nhau không, ví dụ như một tuần và một tháng khác?
Michelle

1
Chương 14 của Rob Hyndman, Koehler, Ord & Snyder "Dự báo với làm mịn theo cấp số nhân" bao gồm điều này. Hyndman cũng có một gói dự báo trong R. Tôi dường như nhớ lại Hyndman đã đăng trên trang này về chủ đề này, nhưng nó có thể đã có trên blog của anh ấy.
zbicyclist

@Michelle Hi cảm ơn đã trả lời. Vâng, hai thành phần theo mùa có tính định kỳ khác nhau. Cái thứ nhất có chu kỳ là 48 (tính thời vụ hàng ngày), trong khi cái thứ hai có tính định kỳ là 336 (tính thời vụ hàng tuần). Đó là một chuỗi thời gian nửa giờ.
ace

@zbicyclist Tôi tin rằng gói dự báo mà bạn đang sử dụng là gói 'dự báo' mà tôi đã đề cập trong bài viết gốc. Tôi đã xem xét chức năng tbats của gói này nhưng không nói cách sử dụng nó để phân tách. Tôi sẽ kiểm tra cuốn sách để xem nếu tôi có thể tìm thấy bất kỳ minh họa nào nữa.
ace

2
Đây là những gì tôi đã nghĩ đến. Đó là trên blog của Hyndman. robjhyndman.com/ con / complex
zbicyclist 24/03 '

Câu trả lời:


13

forecastbats()tbats()x(t)t

Xem http://robjhyndman.com/ con / complex-salityality / để biết công thức và Hyndman et al (2008) để biết mô tả rõ hơn về các mô hình ETS. BATS và TBATS là một phần mở rộng của ETS.

Ví dụ:

fit <- bats(myTimeseries)
fit$x

Trong trường hợp này, mỗi hàng xsẽ ở dạng hài hòa giống như vây.

Ngoài ra còn có plot.tbats()và các plot.bats()chức năng để tự động phân tách và xem các thành phần.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.