Phát hiện thay đổi bước


8

Tôi đang sử dụng một phương pháp bình phương tối thiểu phi tuyến tính để phù hợp với chức năng phân tích với một số dữ liệu thực nghiệm. Tôi phải cung cấp một số giá trị đoán ban đầu cho thuật toán, vì vậy tôi đang cố gắng tìm ra cách thực hiện điều này một cách tự động (chứ không phải bằng mắt, đó là những gì tôi đã và đang làm).

Đây là một số dữ liệu mô phỏng, được tạo bằng cách thêm nhiễu ngẫu nhiên phân phối thông thường vào chức năng phân tích

Đây là một số dữ liệu mô phỏng, được tạo bằng cách thêm nhiễu ngẫu nhiên phân phối thông thường vào chức năng phân tích

Tôi đang cố gắng đáng tin cậy phát hiện vị trí của bước thay đổi này trong dữ liệu. Tôi đã có một số thành công hạn chế bằng cách tính toán phương sai trung bình trong các điểm dữ liệu và tìm kiếm các điểm trong dữ liệu khác biệt đáng kể với giá trị này, nhưng cách tiếp cận này có vẻ rất hạn chế bởi tín hiệu tỷ lệ nhiễu.

Tôi hy vọng một số hướng về những gì tôi cần xem xét để giải quyết vấn đề của mình, vì tôi không biết nhiều số liệu thống kê.

Cảm ơn bạn!

-Chỉnh sửa dán liên kết bin vào dữ liệu xy

http://pastebin.com/QTawFex3


Có lẽ nó sẽ hữu ích để xem xét các kỹ thuật phát hiện điểm thay đổi. Phân khúc nhị phân tròn có thể chỉ là những gì bạn cần.
Mur1lo

Chen và Liu 1993 mô tả một phương pháp phát hiện sự thay đổi cấp độ trong một chuỗi thời gian. Thuật toán của họ được thực hiện trong gói tsoutliers R.
pionpi_

1
Một kỹ thuật phát hiện thay đổi mạnh mẽ mới là bão hòa chỉ báo xung và bão hòa chỉ báo bước trong các tác phẩm của Castle, Doornik, Hendry & Co. (Google những từ khóa này để tìm hiểu thêm.)
Richard Hardy

Câu trả lời tốt nhất tôi có thể tìm thấy ở đó, hoạt động rất tốt trong trường hợp của tôi và xem dữ liệu của bạn nó cũng sẽ hoạt động tốt. stackoverflow.com/questions/48000663/ từ
francois-xavier sireta

Câu trả lời:


3

Có thể có một số phương pháp phức tạp hơn cho việc này nhưng đây là suy nghĩ đầu tiên của tôi.

Về cơ bản, bạn muốn lấy đạo hàm của hàm và tìm vị trí của hàm lớn nhất. Về mặt số, bạn chỉ có thể lấy chênh lệch giữa các điểm dữ liệu và tìm ra hai điểm có sự khác biệt lớn nhất. Sau đó, điểm giữa của các giá trị x cho hai điểm này là vị trí thay đổi lớn nhất của bạn.

Phương pháp đơn giản này dễ bị nhiễu. Vì vậy, trước tiên bạn có thể lọc dữ liệu bằng bộ lọc không dịch chuyển dữ liệu sang phải hoặc trái. Nếu bạn sử dụng bộ lọc FIR đơn giản, sau đó lọc từ trước ra sau và sau đó lọc kết quả từ sau ra trước. Kết quả là một bộ dữ liệu được dịch chuyển gấp đôi và NON. Sau đó làm theo quy trình trên để tìm điểm có chênh lệch lớn nhất giữa các giá trị.

Bạn cũng có thể sử dụng các phép tính vi phân số phức tạp hơn, sử dụng nhiều hơn số chênh lệch của hai điểm.


Cảm ơn bạn đã trả lời. Tôi đã gác máy với thực tế rằng đây là dữ liệu rời rạc và không nghĩ chỉ phân biệt nó! Tôi sẽ xem xét việc sử dụng bộ lọc FIR trên một số đỉnh nhỏ hơn của mình, để xem điều này có hoạt động không
jm22b

1
Tôi đã thực hiện ý tưởng của bạn và nó hoạt động như một cơ duyên, cảm ơn rất nhiều!
jm22b

Thật tuyệt khi nghe điều đó. Cảm ơn bạn đã cho tôi biết.
jason

4

Dữ liệu của bạn trực quan cho thấy một sự thay đổi tiệm cận (dần dần) sang cấp độ mới. Các phương pháp chuỗi thời gian thường có thể được sử dụng để phát hiện các loại cấu trúc này ngay cả khi dữ liệu không phải là chuỗi thời gian. Vui lòng gửi dữ liệu của bạn và tôi có thể chứng minh điều này với "đồ chơi" theo ý của tôi. Nếu dữ liệu của bạn là chuỗi thời gian thì @jason phản ánh người ta cần xử lý hiệu quả mô hình nhiễu để "nhìn" chính xác cấu trúc.

EDITED UPON NHẬN DỮ LIỆU:

Mô hình hóa thường là một cách tiếp cận lặp đi lặp lại với các bước tạm thời cung cấp manh mối có giá trị cho một mô hình hữu ích. Tôi lấy dữ liệu của bạn và giới thiệu nó cho AUTOBOX (một trong những đồ chơi của tôi mà tôi đã giúp phát triển). Một biểu đồ ban đầu nhập mô tả hình ảnh ở đâyđề xuất mạnh mẽ một bộ dữ liệu theo chiều dọc (theo thời gian) trong đó chuỗi X được báo cáo theo các khoảng thời gian cố định. AUTOBOX tự động đề xuất một mô hình ARIMA tiêu chuẩn (có Phát hiện can thiệp) thay thế X không cố định bằng toán tử phân biệt. Dưới đây là biểu đồ thực tế / phù hợp / dự báo và mô hình đề xuất.nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Khi kiểm tra một mô hình có thể khác kết hợp cấu trúc độ trễ cho một biến chỉ báo được đề xuất. Tôi đã giới thiệu Pulse ở khoảng thời gian 76 (Công cụ dự đoán động rõ ràng cho phép hiệu ứng trễ có thể là 50 giai đoạn) (bắt đầu quá trình chuyển đổi) để giải quyết mối quan hệ giữa Y ban đầu và X do người dùng đề xuất để nhiều hơn điều tra đầy đủ về tác dụng của X hơn là chấp nhận toàn bộ thiết lập của X.

Sau đây là nhập mô tả hình ảnh ở đâybiểu đồ dự báo phù hợp thực tế cho phương pháp đó và mô hình hàm truyền mạnh mẽ đã xác định. nhập mô tả hình ảnh ở đâyvới lô nhập mô tả hình ảnh ở đâydư và acf dư ở đâynhập mô tả hình ảnh ở đây

Mô hình cuối cùng ghi lại các động lực trong một số độ trễ nhất định của Dự đoán động và một vài xung và cấu trúc bộ nhớ hợp lý.

Ngay cả các gói phân tích mạnh nhất cũng thường cần một số hướng dẫn khi xử lý các tập dữ liệu trong thế giới thực phức tạp như thế này vì không có gì có thể so sánh với trí tuệ sáng tạo của con người.


Tôi chỉ tò mò ... 1) Chức năng phân tích của bạn là gì và 2) phương sai của chuỗi lỗi là gì (tiếng ồn ngẫu nhiên được phân phối bình thường của bạn): AUTOBOX được phân phối: Variance = SOS / (n) .402675E-04 Phương sai được điều chỉnh = SOS / (nm) .443625E-04 Độ lệch chuẩn RMSE = SQRT (Adj Var) .666052E-02
IrishStat 16/8/2016

Hàm phân tích của tôi là Trong đó, là các tham số được trang bị Hình ảnh của âm mưu trong bài đăng gốc của tôi chỉ đơn giản là chức năng này + được phân phối bình thường tiếng ồn ngẫu nhiên với stdev là 0,1 (tôi nghĩ). Dữ liệu tôi chia sẻ với bạn là dữ liệu thực và tôi không biết rõ nhất thuộc tính của nó là gì! T(λ)=C1+C2[erfc(λ0λ2σ)Exp(λ0λτ+σ22τ2)erfc(λ0λ2σ+σ2τ)]C1,C2,λ0,σ,τ
jm22b

3

Một kỹ thuật là kiểm tra tất cả các giá trị của biến x để biết độ lệch chuẩn của dữ liệu trước và sau nó. Đối với một hàm bước thực, tổng của cả hai sẽ là tối thiểu tại vị trí bước và tối thiểu phải là một tham số khởi đầu tốt cho hàm phi tuyến của bạn.

Dưới đây là một biểu đồ của dữ liệu gốc của bạn (màu đen), độ lệch chuẩn trước x (màu xanh), sau x (màu đỏ) và tổng của hai số cuối (màu xanh lá cây).

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


2

Tôi nhận ra rằng câu hỏi này là cũ. Nhưng tôi muốn ném một phương pháp khác ra khỏi đó. Canny đã viết một bài báo (Phương pháp tính toán để phát hiện cạnh) trong đó ông đã giải quyết vấn đề này trong trường hợp hai chiều để phát hiện cạnh trong hình ảnh. Bạn có thể đọc bài báo nếu bạn thích, nhưng để cắt theo đuổi, bạn có thể có được một xấp xỉ rất tốt đến điểm thay đổi bằng cách làm như sau:

  1. Thực hiện tích chập tín hiệu của bạn với đạo hàm của Gaussian.

f(x)=xχ2ex2σ2

trong đó là một hệ số tỷ lệ.χ

  1. Đỉnh của phản ứng là nơi xảy ra điểm thay đổi.

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

Theo kinh nghiệm của tôi với phương pháp này, tôi đã thấy rằng việc chọn các tham số tỷ lệ chính xác là khó khăn. Nhưng có thể có nhiều công việc hơn về điều này mà tôi không biết.

Tôi đã tóm tắt bài báo của Canny và đưa ra một ví dụ ở đây .


Xin chào, tôi đánh giá cao phản ứng và phương pháp thú vị được trình bày. Bài đăng trên blog thú vị quá! Dự án tạo ra câu hỏi này liên quan đến một số xử lý hình ảnh, vì vậy tôi đã đọc một chút về phát hiện cạnh canny sau đó.
jm22b

0

Bạn có thể điều tra chuỗi thời gian được định dạng Wavelet bằng cách sử dụng các loại thời gian ngắn haar / db4 . Tôi không có con trỏ mà chỉ có một số thuật ngữ tìm kiếm, hãy thử 'phát hiện điểm thay đổi wavelet'.

Có một số gói R trên Wavelets, xem chế độ xem nhiệm vụ theo chuỗi thời gian: https://cran.r-project.org/web/view/TimeSeries.html

Nhìn vào đây để biết một số ví dụ: http://it.mathworks.com/help/wavelet/examples/detecting-discContuities-and-breakdown-point.html?requestedDomain=www.mathworks.com

Đối với lý thuyết, hãy tìm giấy Mallat et Hwang: "Phát hiện và xử lý đơn lẻ với sóng con"

Xem câu trả lời liên quan: Ứng dụng sóng con vào thuật toán phát hiện dị thường dựa trên chuỗi thời gian

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.