Phân cụm chuỗi thời gian


8

Tôi có nhiều chuỗi thời gian trong định dạng 1 cột này trong đó tôi có định dạng ngày (d / m / năm) và nhiều cột biểu thị các chuỗi thời gian khác nhau như ở đây:

DATE         TS1     TS2     TS3 ...
24/03/2003   0.00    0.00    ...
17/04/2003  -0.05    1.46
11/05/2003   0.46   -3.86
04/06/2003  -2.21   -1.08
28/06/2003  -1.18   -2.16
22/07/2003   0.00    0.23

Với R, làm cách nào tôi có thể nhóm chuỗi thời gian hiển thị xu hướng tương tự?


3
Trong ứng dụng của bạn, xu hướng là gì?
Đức hồng y

4
Có ít nhất ba câu hỏi khác bao gồm các chủ đề này hoặc các chủ đề rất giống nhau, stats.stackexchange.com/q/3331/1036 , stats.stackexchange.com/q/2777/1036 , stats.stackexchange.com/q/3238/1036 .
Andy W

một xu hướng trong ứng dụng của tôi là một nhóm các đường cong trong biểu đồ TS có hình dạng tương tự, tức là một nhóm đường cong thể hiện xu hướng theo mùa và một đường cong khác thể hiện xu hướng dài, ......
daveal81

có chủ đề này [link] stats.stackexchange.com/questions/3331/ đậm đậm code rất giống với những gì tôi muốn làm
daveal81

Câu trả lời:


6

Bước 1

Thực hiện chuyển đổi Fourier nhanh trên dữ liệu chuỗi thời gian. Điều này phân tách dữ liệu chuỗi thời gian của bạn thành các thành phần trung bình và tần số và cho phép bạn sử dụng các biến để phân cụm không hiển thị tự động tương quan nặng như nhiều chuỗi thời gian thô.

Bước 2

Nếu chuỗi thời gian có giá trị thực, hãy loại bỏ nửa sau của các phần tử biến đổi Fourier nhanh vì chúng là dự phòng.

Bước 3

Tách các phần thực và phần ảo của từng phần tử biến đổi Fourier nhanh.

Bước 4

Thực hiện phân cụm dựa trên mô hình trên các phần thực và phần ảo của từng phần tử tần số.

Bước 5

Vẽ phần trăm của chuỗi thời gian theo cụm để kiểm tra hình dạng của chúng.

Thay phiên, bạn có thể bỏ qua các thành phần DC của biến đổi Fourier nhanh để tránh các cụm của bạn dựa trên giá trị trung bình và thay vào đó là chuỗi được xác định bởi biến đổi Fourier, đại diện cho hình dạng của chuỗi thời gian.

Bạn cũng sẽ muốn tính toán biên độ và góc pha từ biến đổi Fourier nhanh để bạn có thể khám phá sự phân bố phổ chuỗi thời gian trong các cụm. Xem câu trả lời StackOverflow này về cách thực hiện điều đó đối với dữ liệu có giá trị thực.

Bạn cũng có thể vẽ phần trăm của hình dạng chuỗi thời gian theo cụm bằng cách tính toán chuỗi Fourier từ biên độ và góc pha (ước tính chuỗi thời gian kết quả sẽ không hoàn toàn khớp với chuỗi thời gian ban đầu). Bạn cũng có thể vẽ phần trăm của dữ liệu chuỗi thời gian thô theo cụm. Dưới đây là một ví dụ về một âm mưu như vậy, xuất phát từ một phân tích hài hòa dữ liệu NDVI tôi vừa làm hôm nay:

Các tỷ lệ phần trăm NDVI cấp 1, 25, 50, 75 và 99 theo các cụm có nguồn gốc từ phân cụm dựa trên mô hình sử dụng gói Mclust trong R

Cuối cùng, nếu chuỗi thời gian của bạn không đứng yên (nghĩa là thay đổi trung bình và phương sai theo thời gian), có thể thích hợp hơn để sử dụng biến đổi wavelet thay vì biến đổi Fourier. Bạn sẽ làm như vậy với chi phí thông tin về tần số trong khi có được thông tin về vị trí.


Btw, tôi vừa mới làm điều này hôm nay !!!
Cân bằng Brash

1
bạn có thể cung cấp một mã ví dụ để thực hiện các bước của mình không?
Pocketfullofcheese

Xin chào, @pocketfullofcheese. Tôi sẽ cần tìm nó trong máy tính để bàn từ xa của trung tâm nghiên cứu nơi tôi là đồng nghiệp khi tôi làm việc này. Nó có thể mất một chút, nhưng tôi đã đưa nó vào hồ sơ tồn đọng của tôi.
Cân bằng Brash

Trong trường hợp bất cứ ai nhìn thấy nhận xét của tôi ở trên, tôi không thể truy cập vào mã đó trước khi tôi mất quyền truy cập vào máy tính để bàn từ xa. Lời xin lỗi của tôi.
Cân bằng Brash
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.