Tại sao hàm stl tạo ra sự thay đổi đáng kể theo mùa với dữ liệu ngẫu nhiên


11

Tôi đã vẽ với mã sau với chức năng stl (Phân chia theo chuỗi thời gian theo thời gian):

plot(stl(ts(rnorm(144), frequency=12), s.window="periodic"))

Nó cho thấy sự thay đổi đáng kể theo mùa với dữ liệu ngẫu nhiên được đặt trong mã ở trên (hàm rnorm). Biến thể Signficant được nhìn thấy mỗi khi nó được chạy, mặc dù mô hình là khác nhau. Hai mẫu như vậy được hiển thị dưới đây:

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Làm thế nào chúng ta có thể dựa vào chức năng stl trên một số dữ liệu khi nó hiển thị sự thay đổi theo mùa. Có sự thay đổi theo mùa này cần phải được nhìn thấy trong quan điểm của một số thông số khác? Cảm ơn sự sáng suốt của bạn.

Mã này đã được lấy từ trang này: Đây có phải là một phương pháp thích hợp để kiểm tra các tác động theo mùa trong dữ liệu đếm tự tử?


1
Điều đó xảy ra bởi vì có "mẫu" trong dữ liệu ngẫu nhiên, nếu kỹ thuật phù hợp của bạn có đủ tham số.
bill_080

3
Thuật ngữ "đáng kể" ở đây dường như không phản ánh bất kỳ loại thử nghiệm quan trọng nào.
Nick Cox

1
Stl là một phương pháp điều khiển dữ liệu không theo quy chuẩn, vì vậy không có cách nào để định lượng sự hiện diện của sự không chắc chắn theo mùa thông qua thử nghiệm quan trọng.
dự báo

Câu trả lời:


12

Phân tích hoàng thổ nhằm mục đích làm mịn chuỗi bằng cách áp dụng mức trung bình cho dữ liệu để nó thu gọn thành các thành phần, ví dụ như xu hướng hoặc theo mùa, rất thú vị cho việc phân tích dữ liệu. Nhưng phương pháp này không có ý định làm một bài kiểm tra chính thức cho sự hiện diện của tính thời vụ .

Mặc dù trong ví dụ của bạn stltrả về một mẫu được làm mịn theo chu kỳ theo mùa, mẫu này không liên quan để giải thích tính năng động của chuỗi. Để thấy điều đó, chúng ta có thể so sánh phương sai của từng thành phần với phương sai của chuỗi ban đầu.

set.seed(123)
x <- ts(rnorm(144, sd=1), frequency=12)
a <- stl(x, s.window="periodic")
apply(a$time.series, 2, var) / var(x)
#   seasonal      trend  remainder 
# 0.07080362 0.07487838 0.81647852 

Chúng ta có thể thấy rằng đó là phần còn lại giải thích phần lớn phương sai trong dữ liệu (như chúng ta mong đợi cho một quá trình nhiễu trắng).

Nếu chúng ta thực hiện một loạt với tính thời vụ, phương sai tương đối của thành phần theo mùa có liên quan hơn nhiều (mặc dù chúng ta không có cách đơn giản để kiểm tra nó vì hoàng thổ không phải là tham số).

y <- diff(log(AirPassengers))
b <- stl(y, s.window="periodic")
apply(b$time.series, 2, var) / var(y)
#    seasonal       trend   remainder 
# 0.875463620 0.001959407 0.117832537 

Các phương sai tương đối chỉ ra rằng tính thời vụ là thành phần chính giải thích tính năng động của chuỗi.


Một cái nhìn bất cẩn về cốt truyện từ stlcó thể là lừa dối. Mẫu đẹp được trả về stlcó thể khiến chúng tôi nghĩ rằng mẫu có thể được xác định trong dữ liệu có thể được xác định trong dữ liệu, nhưng nhìn kỹ hơn có thể cho thấy thực tế không phải vậy. Nếu mục đích là để quyết định sự hiện diện của tính thời vụ, phân rã hoàng thổ có thể hữu ích như một cái nhìn sơ bộ nhưng nó cần được bổ sung bằng các công cụ khác.


Trong ví dụ về AirPas messenger của bạn, không có xu hướng nào xuất ra, trong khi có một xu hướng rõ ràng về cốt truyện (AirPas messenger). Xu hướng đến 0,86 (với chỉ theo mùa là 0,1) nếu câu lệnh "diff (log (AirPas messenger))" bị xóa. Nên làm gì?
rnso

Tôi đã đưa ra một ví dụ rõ ràng về số lượng. Trong thực tế, chỉ bằng cách so sánh phương sai của các thành phần được làm mịn có thể không đủ để đưa ra kết luận về sự hiện diện của tính thời vụ. Ví dụ, như bạn đã tìm thấy trong trường hợp này, nếu xu hướng không được loại bỏ bằng cách lấy sự khác biệt, phương sai của xu hướng chi phối phương sai của thành phần theo mùa. Câu hỏi là: phương sai tương đối 0,1 có đủ lớn để xem xét thành phần này có liên quan không? Vấn đề là, dựa trên hoàng thổ, không có cách nào đơn giản để kiểm tra xem phương sai của thành phần có đáng kể hay không.
javlacalle

Giống như tôi đã nói, những gì chúng ta nên làm trong trường hợp này và các trường hợp khác là sử dụng các phương pháp khác để kiểm tra sự hiện diện của tính thời vụ. Xem ví dụ phần thứ hai của câu trả lời của tôi ở đây . Khi chúng tôi đã kết luận rằng tính thời vụ có trong dữ liệu, chúng tôi có thể sử dụng hoàng thổ để có được mẫu của thành phần này.
javlacalle

Để làm rõ hơn, phương sai tương đối cho thấy một phần của sự phân tách đóng vai trò như thế nào trong dữ liệu tổng thể? IE 70% theo mùa, xu hướng 20%. v.v.
Ted Mosby

1
@TedMosby Phương sai là thước đo độ biến thiên / phân tán trong dữ liệu. Tổng phương sai của các thành phần (ví dụ: xu hướng, theo mùa) và phương sai của phần còn lại cộng với phương sai của chuỗi ban đầu. Theo cách này, bằng cách so sánh phương sai của một thành phần với phương sai của chuỗi ban đầu, chúng ta có thể biết được mức độ liên quan của thành phần đó (nghĩa là mức độ biến thiên của dữ liệu được giải thích bởi thành phần đó).
javlacalle

2

Trong một mạch tương tự, tôi đã thấy việc sử dụng Mô hình Fourier cho dữ liệu không theo mùa, buộc một cấu trúc theo mùa vào các giá trị phù hợp và dự báo, gây ra kết quả tương tự (thở hổn hển!). Lắp một mô hình giả định cung cấp cho người dùng những gì anh ta đang áp đặt / giả định mà không phải lúc nào cũng là những gì phân tích tốt sẽ đề xuất / phân phối.


1
stl()không dựa trên ý tưởng Fourier. Mặc dù tôi chưa thấy ai ủng hộ phân tích "không suy nghĩ", lưu ý rằng bất kỳ gia đình kiểu mẫu nào được trang bị đều có thể được coi là áp đặt hoặc giả định. Câu hỏi đặt ra là bao xa bất kỳ thủ tục nào cung cấp phạm vi để người dùng nhận ra nếu và cách thức hoạt động của một bộ dữ liệu cụ thể.
Nick Cox

@NickCox hoàn toàn đúng ....
IrishStat
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.