Lý lịch
Tôi đang làm việc trên một tập hợp dữ liệu chuỗi thời gian của các chỉ số đo năng lượng. Độ dài của chuỗi thay đổi theo mét - đối với một số tôi có vài năm, số khác chỉ vài tháng, v.v. Nhiều người thể hiện tính thời vụ quan trọng và thường là nhiều lớp - trong ngày, tuần hoặc năm.
Một trong những điều tôi đang làm việc là phân cụm các chuỗi thời gian này. Hiện tại công việc của tôi là học thuật và trong khi tôi đang thực hiện phân tích dữ liệu khác, tôi có một mục tiêu cụ thể để thực hiện một số cụm.
Tôi đã thực hiện một số công việc ban đầu khi tôi tính toán các tính năng khác nhau (phần trăm được sử dụng vào cuối tuần so với ngày trong tuần, phần trăm được sử dụng trong các khối thời gian khác nhau, v.v.). Sau đó, tôi chuyển sang xem xét sử dụng Độ cong thời gian động (DTW) để thu được khoảng cách giữa các chuỗi khác nhau và phân cụm dựa trên các giá trị khác nhau và tôi đã tìm thấy một số bài báo liên quan đến điều này.
Câu hỏi
Tính thời vụ trong một chuỗi cụ thể thay đổi có khiến cụm của tôi không chính xác không? Và nếu vậy, làm thế nào để tôi đối phó với nó?
Mối quan tâm của tôi là khoảng cách thu được từ DTW có thể gây hiểu nhầm trong trường hợp mô hình trong chuỗi thời gian đã thay đổi. Điều này có thể dẫn đến phân cụm không chính xác.
Trong trường hợp trên không rõ ràng, hãy xem xét các ví dụ sau:
ví dụ 1
Một mét có số đọc thấp từ nửa đêm cho đến 8 giờ sáng, số đọc sau đó tăng mạnh trong giờ tiếp theo và duy trì ở mức cao từ 9 giờ sáng đến 5 giờ chiều, sau đó giảm mạnh trong giờ tiếp theo và sau đó duy trì ở mức thấp từ 6 giờ tối đến nửa đêm. Đồng hồ tiếp tục mô hình này một cách nhất quán mỗi ngày trong vài tháng, nhưng sau đó thay đổi thành một mẫu trong đó các bài đọc chỉ đơn giản là ở một mức nhất quán trong suốt cả ngày.
Ví dụ 2
Một mét cho thấy khoảng cùng một lượng năng lượng được tiêu thụ mỗi tháng. Sau vài năm, nó thay đổi thành một mô hình trong đó mức sử dụng năng lượng cao hơn trong những tháng mùa hè trước khi trở lại mức thông thường.
Chỉ đường khả thi
- Tôi đã tự hỏi liệu tôi có thể tiếp tục so sánh chuỗi toàn thời gian hay không, nhưng tách chúng ra và coi chúng là một chuỗi riêng biệt nếu mô hình thay đổi đáng kể. Tuy nhiên, để làm điều này tôi cần có khả năng phát hiện những thay đổi đó. Ngoài ra, tôi chỉ không biết liệu đây là cách phù hợp hay làm việc với dữ liệu.
- Tôi cũng đã xem xét việc chia dữ liệu và coi đó là nhiều chuỗi thời gian riêng biệt. Chẳng hạn, tôi có thể coi sự kết hợp mỗi ngày / mét là một chuỗi riêng biệt. Tuy nhiên, sau đó tôi cần phải làm tương tự nếu tôi muốn xem xét các mẫu hàng tuần / hàng tháng / hàng năm. Tôi nghĩ rằng nó sẽ hoạt động, nhưng nó có khả năng khá nguy hiểm và tôi không muốn đi theo con đường này nếu có cách tốt hơn mà tôi đang thiếu.
Ghi chú thêm
Đây là những điều xuất hiện trong các bình luận, hoặc những điều tôi nghĩ đến do các bình luận, có thể có liên quan. Tôi đang đặt chúng ở đây để mọi người không phải đọc qua mọi thứ để có được thông tin liên quan.
- Tôi đang làm việc trong Python, nhưng thích thú với những nơi mà R phù hợp hơn. Tôi không nhất thiết phải tìm kiếm một câu trả lời Python mặc dù - nếu ai đó có câu trả lời thực tế về những gì nên làm, tôi rất vui khi tự mình tìm ra chi tiết thực hiện.
- Tôi có rất nhiều mã "bản nháp thô" đang hoạt động - Tôi đã thực hiện một số lần chạy DTW, tôi đã thực hiện một số loại phân cụm khác nhau, v.v. Tôi nghĩ rằng tôi phần lớn hiểu được hướng tôi đang đi và những gì tôi Tôi thực sự tìm kiếm có liên quan đến cách tôi xử lý dữ liệu của mình trước khi tìm khoảng cách, chạy phân cụm, v.v. Với điều này, tôi nghi ngờ câu trả lời sẽ giống nhau cho dù khoảng cách giữa các chuỗi được tính thông qua DTW hay Khoảng cách Euclide đơn giản hơn (ED).
- Tôi đã tìm thấy các bài viết này đặc biệt nhiều thông tin về chuỗi thời gian và DTW và chúng có thể hữu ích nếu một số nền tảng cần thiết cho khu vực chủ đề: http://www.cs.ucr.edu/~eamonn/selected_publications.htmlm