Làm thế nào để tìm thấy khi một đồ thị đạt đến đỉnh và cao nguyên?


9

Điều này nghe có vẻ rất cơ bản, nhưng tôi gặp vấn đề này: Tôi đã có một hàng dữ liệu với kích thước cửa sổ là 300. Dữ liệu mới được thêm vào ở một đầu, các giá trị cũ bị xóa khỏi đầu kia.

Tôi hy vọng dữ liệu hàng đợi sẽ ổn định hơn hoặc ít hơn, ví dụ: 10,12,15,10,20, sau đó bắt đầu tăng mạnh: 15,10,20,22,25,26,28,30,32 ... tất cả các cách lên đến 150 hoặc hơn. Ở đó, dữ liệu có thể dao động một chút, sau đó nó sẽ đi xuống với độ dốc tương tự (120.118.116.115 ...) cho đến khi giảm xuống còn 20 hoặc hơn.

Tôi đang cố gắng xác định bước ngoặt trong chuỗi dữ liệu này theo chương trình, nhưng mã của tôi phát hiện các đỉnh thường xuyên hơn tôi muốn. Làm cách nào để xác định khi nào biểu đồ tăng, khi nào nó đạt đến bước ngoặt rõ ràng và khi nào nó bắt đầu giảm? Tôi có nên cố gắng nhìn vào tốc độ thay đổi của tốc độ thay đổi?


Nếu bạn có cảm giác hợp lý về độ dốc và chiều cao của đỉnh, bạn có thể tính đến cả chiều cao và thời gian leo lên được bao lâu, cũng như độ dốc hiện tại không? Bạn có bao nhiêu dữ liệu trước trên các đỉnh, và bạn có thể sử dụng dữ liệu đó để phù hợp với một mô hình không?
Karl

2
Dù là phương pháp nào, bạn sẽ phải xác định chính xác đâu là đỉnh và đâu là cao nguyên. Là hai giá trị 'cao' liên tiếp là một đỉnh hoặc một cao nguyên? Năm thì sao? Một số phương pháp có thể không cần thông tin này, nhưng sau đó điều này được ẩn đằng sau hậu trường. Như thường lệ, việc xác định chính xác vấn đề của bạn và tối ưu hóa các tham số (và / hoặc thuật toán) cho vấn đề đó là điều thường xuyên.
Nick Sabbe

Câu trả lời:


2

Nếu bạn biết rằng đây là mẫu chính xác để mong đợi, thì bạn có thể tìm mẫu chính xác này, nhưng sau đó bạn sẽ bỏ lỡ các mẫu khác. Vì thế. Nếu bạn biết rằng đỉnh sẽ là 150, thì bạn có thể tìm kiếm 2 hoặc 3 hoặc 4 hoặc (tuy nhiên nhiều) giá trị liên tiếp là 150. Nhưng bạn nói "hay như vậy" - "hoặc" lớn đến mức nào? Có lẽ đỉnh được định nghĩa là "3 giá trị liên tiếp trên 130" hoặc có thể là "3 trên 5 giá trị liên tiếp trên 140". Đó là để bạn quyết định.

Mặt khác, nếu bạn chỉ tìm kiếm một số chương trình chung để phát hiện các đỉnh - tốt, điều đó đã được xem xét. Có một loạt các phương pháp làm mịn (ví dụ: hoàng thổ, các loại khác nhau, trung bình di chuyển, v.v.). Không phải là một lĩnh vực tôi là chuyên gia, nhưng có rất nhiều tài liệu về điều này.


4

Nhìn vào SiZer (giao cắt ZERo SIgnificant ... hoặc dốc, tôi không nhớ), mặc dù có thể cho rằng nó giống một công cụ cắt ngang hơn là chuỗi thời gian. Ý tưởng là làm mịn dữ liệu ở các băng thông khác nhau (thay đổi theo ba bậc độ lớn) và áp dụng một số thử nghiệm cục bộ để xem độ dốc của hồi quy cục bộ là dương hay âm (hoặc chưa quyết định). Nó tạo ra một bức tranh thuyết phục sẽ giúp bạn xác định các tính năng có ở đó. (Tôi ngạc nhiên khi không có triển khai R, chỉ có Matlab.)

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.