Câu trả lời:
Trước khi bạn kiểm tra tính thời vụ, bạn nên phản ánh loại thời vụ nào bạn có. Lưu ý rằng có nhiều loại thời vụ khác nhau:
Một trong những phương pháp phổ biến nhất để phát hiện tính thời vụ là phân tách chuỗi thời gian thành nhiều thành phần.
Trong R, bạn có thể thực hiện việc này bằng decompose()
lệnh từ gói số liệu thống kê được cài đặt sẵn hoặc bằng stl()
lệnh từ gói dự báo.
Đoạn mã sau được lấy từ Một cuốn sách nhỏ của R cho chuỗi thời gian
births <- scan("http://robjhyndman.com/tsdldata/data/nybirths.dat")
birthstimeseries <- ts(births, frequency = 12, start = c(1946,1))
birthstimeseriescomponents <- decompose(birthstimeseries)
plot(birthstimeseriescomponents)
Bạn có thể kiểm tra các thành phần đơn lẻ với
birthstimeseriescomponents$seasonal
birthstimeseriescomponents$random
birthstimeseriescomponents$trend
Một phương pháp khác là bao gồm các hình nộm theo mùa và kiểm tra xem chúng có giá trị p đáng kể hay không khi bạn tính toán hồi quy. Nếu các tháng duy nhất có hệ số lớn, chuỗi thời gian hàng tháng của bạn là theo mùa.
Một phương pháp khác để phát hiện tính thời vụ là tự vẽ đồ thị dữ liệu hoặc vẽ đồ thị ACF (chức năng tự tương quan). Trong trường hợp của chúng tôi, bạn có thể dễ dàng nhận thấy rằng có tính thời vụ.
Và cuối cùng, nhưng không kém phần quan trọng, có một số bài kiểm tra giả thuyết "chính thức" để phát hiện tính thời vụ như Bài kiểm tra T của sinh viên và Bài kiểm tra xếp hạng có chữ ký của Wilcoxon.
Suy nghĩ của tôi là kiểm tra biên độ của:
(Hệ số Fourier có liên quan đến ACF thông qua định lý Wiener-Khinchin .)