Phát hiện ngoại lệ trong chuỗi thời gian: Làm thế nào để giảm dương tính giả?


11

Tôi đang cố gắng tự động hóa phát hiện ngoại lệ trong chuỗi thời gian và tôi đã sử dụng một sửa đổi của giải pháp được đề xuất bởi Rob Hyndman tại đây .

Nói, tôi đo các lượt truy cập hàng ngày đến một trang web từ các quốc gia khác nhau. Đối với một số quốc gia nơi các lượt truy cập hàng ngày là một vài xu hoặc hàng ngàn, phương pháp của tôi dường như đang hoạt động hợp lý.

Tuy nhiên, trong trường hợp một quốc gia chỉ dẫn 1 hoặc 2 lượt truy cập mỗi ngày, giới hạn của thuật toán là rất hẹp (ví dụ: 1 ± 0,001) và do đó, 2 lượt truy cập được coi là ngoại lệ. Làm thế nào tôi có thể tự động phát hiện các trường hợp như vậy và làm thế nào tôi có thể xử lý chúng để xác định các ngoại lệ? Tôi không muốn đặt ngưỡng thủ công là 100 lượt truy cập mỗi ngày.

Cảm ơn bạn!


2
Một cách tự nhiên, đơn giản có thể giải quyết vấn đề của bạn - nguyên nhân (ít nhất là một phần) đối với phương sai biến đổi cao - là áp dụng một phép biến đổi ổn định phương sai, như phép biến đổi Anscombe hoặc Freeman-Tukey , cho dữ liệu trước khi tìm kiếm các ngoại lệ.
whuber

Câu trả lời:


3

Đừng mong đợi nhiều cho số lượng nhỏ, rời rạc. Đi từ 1 đến 2 lượt truy cập là tăng 100% và đi từ 0 đến 1 lượt truy cập là mức tăng vô hạn. Ở mức độ thấp, bạn có thể phải đối phó với các mô hình bơm hơi bằng không , và nó cũng có thể rất ồn ào.

Theo kinh nghiệm của tôi, việc đếm dữ liệu với hỗn hợp số lượng lớn và nhỏ như thế này dẫn đến hai vấn đề với số lượng nhỏ của bạn: 1) chúng quá thô để làm nhiều việc, 2) chúng được tạo bởi các quy trình khác nhau. (Nghĩ nhỏ, bưu điện nông thôn so với bưu điện thành phố lớn). Vì vậy, ít nhất bạn cần chia mô hình của mình thành hai phần: làm những gì bạn đang làm thành công cho số lượng lớn hơn và làm một cái gì đó khác biệt - thô hơn và gần đúng hơn - với số lượng nhỏ. Nhưng đừng mong đợi nhiều về số lượng nhỏ.

Tin tốt là số lượng lớn, theo định nghĩa, bao gồm nhiều giao dịch của bạn hơn, do đó mô hình tốt hơn của bạn bao gồm nhiều dữ liệu hơn, mặc dù nó có thể không bao gồm hầu hết các trang web của bạn.

(Tôi nói "mô hình hóa" là chung chung, nhưng tất nhiên phát hiện ngoại lệ là giả định một mô hình cụ thể và tìm ra những điểm rất khó xảy ra với các giả định của mô hình đó.)


1

Mỗi giá trị từ chuỗi thời gian của bạn là một mẫu từ phân phối xác suất. Trước tiên bạn cần tìm phân phối xác suất là gì và sau đó xác định từ hiếm có nghĩa là gì trong phân phối đó.

Vì vậy, tính toán cdf theo kinh nghiệm và tính khoảng tin cậy 95%. Bất cứ khi nào một cái gì đó bên ngoài khu vực đó đã xảy ra, thì theo định nghĩa, bạn biết rằng đó phải là một sự kiện hiếm.


0

Đó là một điều để phát hiện Ngoại lệ ở một mức độ tin cậy cụ thể và một điều nữa là đặt một đặc tả kỹ thuật thứ hai sẽ hạn chế hơn nữa việc chấp nhận ngoại lệ. Có lần tôi đã được hỏi câu hỏi sau đây "AUTOBOX có thể phát hiện sự dịch chuyển trung bình của các đơn vị xx ở mức độ tin cậy được chỉ định trước không". Về cơ bản những gì được yêu cầu là một bài kiểm tra kép. AUTOBOX là một phần mềm mà tôi đã giúp phát triển mà bạn có thể thấy hiệu quả về mặt chi phí vì không có phần mềm miễn phí nào thực hiện thử nghiệm kép này.

Cảm ơn Nick: Tôi đã sử dụng một sự thay đổi cấp độ như một ví dụ cụ thể về một "ngoại lệ" hoặc nói chung là tác động xác định theo kinh nghiệm được xác định theo kinh nghiệm. Các hình thức "ngoại lệ" khác là Xung, Xung theo mùa và Xu hướng Thời gian Địa phương VÀ các kết hợp cụ thể như thay đổi tạm thời lên một cấp độ mới. Điểm chính là có thể có hai giả thuyết đang chơi phản ánh ý nghĩa thống kê và ý nghĩa thực tế. Khách hàng ban đầu đã đưa vấn đề này đến sự chú ý của tôi đã quan tâm đến cả hai.


Một nhu cầu ngoại lệ không có nghĩa là một sự thay đổi trung bình .... Trong thực tế, thay đổi từng bước hoặc lan man giữa các chế độ với các phương tiện khác nhau không cần phải kéo theo các ngoại lệ. Bạn biết điều này rất rõ, nhưng điều tôi nghĩ nó ám chỉ là nó sẽ hữu ích nhất cho người khác để đưa ra câu trả lời của bạn.
Nick Cox

Cảm ơn cả hai người. Tôi quan tâm đến ý nghĩa thế giới thực. Sau khi xác định một ngoại lệ, tôi cân nhắc tầm quan trọng của nó với tỷ lệ số lượt truy cập so với tổng số lượt truy cập để có ý nghĩa cuối cùng. Mặc dù tỷ lệ đó thực sự rất nhỏ trong 2 trường hợp truy cập, vì các giá trị dự kiến ​​là 1 ± 0,001, 'khoảng cách' của điểm thực tế từ các giới hạn dự kiến ​​là rất cao (ví dụ: 2 / 0,002 trong đó 0,002 là 'iqr') . Vì vậy, vấn đề te có ý nghĩa cao cuối cùng. Có ý kiến ​​gì không?
Stergios

Tôi đánh dấu rằng việc sử dụng mở rộng "ngoại lệ" ở đây rộng hơn nhiều so với ý nghĩa hào phóng của bất cứ điều gì cực đoan phổ biến trong nhiều văn học. Những độc giả dày dạn kinh nghiệm sẽ biết rằng @IrishStat dính vào sở trường của mình, phân tích chuỗi thời gian.
Nick Cox

0

Bạn đang gặp vấn đề đó vì dữ liệu của bạn cách xa phân phối bình thường. Nếu phân phối rất bất đối xứng, với sự va chạm, bướu hoặc đuôi quá dài / ngắn, bạn sẽ gặp phải vấn đề. Một ý tưởng tốt là áp dụng một chuyển đổi như Box Cox hoặc Yeo-Johnson trước khi sử dụng phương pháp của bạn. Trong ví dụ của bạn nếu bạn sử dụng F (x) = log (1 + x), bạn sẽ tránh được vấn đề cường độ khác nhau và bạn có thể chuyển đổi trở lại bằng cách sử dụng: exp (z) -1

Có một số quy trình bạn có thể sử dụng để tự động tìm một lambda tốt cho phép chuyển đổi Box-Cox. Cá nhân tôi sử dụng trung bình của tất cả các phương thức của hàm boxcoxnc từ gói AID trong R. Nếu dữ liệu của bạn không hoàn toàn dương, bạn sẽ cần thêm 1 hoặc số dương khác trước khi sử dụng.

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.