Phát hiện ngoại lệ trong các bộ rất nhỏ


12

Tôi cần lấy chính xác nhất có thể một giá trị cho độ sáng của nguồn sáng chủ yếu ổn định với mười hai giá trị độ chói mẫu. Cảm biến không hoàn hảo và đôi khi ánh sáng có thể "nhấp nháy" sáng hơn hoặc tối hơn, có thể bị bỏ qua, do đó tôi cần phát hiện ngoại lệ (tôi nghĩ vậy?).

Tôi đã đọc một số cách tiếp cận khác nhau ở đây và không thể quyết định nên tiếp cận theo hướng nào. Số lượng ngoại lệ không bao giờ được biết trước và thường sẽ bằng không. Flicker nói chung là độ lệch rất lớn so với độ sáng ổn định (đủ để thực sự gây rối với bất kỳ mức trung bình nào được thực hiện với một món quà lớn), nhưng không nhất thiết phải như vậy.

Dưới đây là một bộ mẫu gồm 12 phép đo để hoàn thiện câu hỏi:

295,5214, 277,7749, 274,6538, 272,5897, 271,0733, 292,5856, 282,0986, 275,0419, 273.084, 273,1783, 274.0317, 290,1837

Cảm giác ruột của tôi là có lẽ không có ngoại lệ trong bộ cụ thể đó, mặc dù 292 và 295 trông hơi cao.

Vì vậy, câu hỏi của tôi là, cách tiếp cận tốt nhất ở đây là gì? Tôi nên đề cập rằng các giá trị đến từ việc lấy khoảng cách euclide của các thành phần RG và B của ánh sáng từ điểm không (màu đen). Sẽ rất đau đớn về mặt lập trình, nhưng có thể, để quay lại những giá trị này nếu được yêu cầu. Khoảng cách euclide được sử dụng như một thước đo "sức mạnh tổng thể" vì tôi không quan tâm đến màu sắc, chỉ là sức mạnh của đầu ra. Tuy nhiên, có một cơ hội hợp lý rằng các flickers mà tôi đã đề cập có thành phần RGB khác với đầu ra thông thường.

Hiện tại tôi đang chơi với một số loại chức năng sẽ lặp lại cho đến khi đạt được tư cách thành viên ổn định của các biện pháp được phép bằng cách:

  1. Tìm độ lệch chuẩn
  2. Đặt mọi thứ bên ngoài nói 2 SD vào danh sách bỏ qua
  3. Tính toán lại trung bình và SD với danh sách bỏ qua được loại trừ
  4. Quyết định lại bỏ qua ai dựa trên mức trung bình và SD mới (đánh giá tất cả 12)
  5. Lặp lại cho đến khi ổn định.

Có bất kỳ giá trị trong cách tiếp cận đó?

Tất cả các ý kiến ​​biết ơn chấp nhận!


Mặc dù đau đớn, nhưng suy đoán của bạn rằng một cái nhấp nháy thực sự có thể có các thành phần RGB khác nhau (mặc dù đôi khi một khoảng cách tương tự với màu đen) sẽ đáng để theo đuổi. Một lựa chọn khác là chỉ cần sử dụng trung bình thay vì trung bình, tùy thuộc vào mục tiêu của bạn.
Wayne

Câu trả lời:


7

Các ngoại lệ trong các mẫu nhỏ luôn có thể rất khó phát hiện. Trong hầu hết các trường hợp thực tế tôi sẽ ủng hộ rằng nếu bạn cảm thấy rằng dữ liệu của mình không bị hỏng hoàn toàn, thì giá trị "ngoại lệ" có thể không có vấn đề gì và việc loại trừ nó có thể không hợp lý. Có lẽ sử dụng các kỹ thuật thống kê mạnh mẽ sẽ hợp lý hơn và gần với một giải pháp trung gian hơn. Bạn có một mẫu nhỏ; cố gắng làm cho mỗi điểm mẫu được tính. :)

Về cách tiếp cận được đề xuất của bạn: Tôi sẽ không vội vàng thực thi một giả định quy tắc cho dữ liệu của bạn với quy tắc 68-95-99.7 đối với họ (như bạn dường như làm theo cách nào đó với quy tắc heuristic 2SD của bạn). Bất bình đẳng của Ch Quashev đã từng giả định quy tắc 75-88.9-93.8 đối với chúng rõ ràng là ít cứng nhắc hơn. Các " quy tắc " khác cũng tồn tại; phần Xác định các ngoại lệ trong bổ đề Ngoại lệ trong wikipedia có một gói các heuristic.

Đây là một tài liệu khác: Một tài liệu tham khảo sách miễn phí mà tôi đã gặp về vấn đề này, Sổ tay phương pháp thống kê điện tử của NIST / SEMATECH , trình bày ý tưởng sau đây của Iglewicz và Hoaglin (1993): Sử dụng -scores đã sửa đổi sao cho:ZM

Mi=.6745(xix~)/MAD

trong đó là trung vị của bạn và MAD là độ lệch tuyệt đối trung bình của mẫu của bạn. Sau đó, giả sử rằng giá trị tuyệt đối của trên 3,5 là các giá trị tiềm năng. Đó là một gợi ý bán tham số (vì hầu hết trong số chúng là, tham số ở đây là ). Trong trường hợp ví dụ của bạn, nó sẽ loại trừ một cách rõ ràng 295,5 của bạn nhưng rõ ràng vẫn giữ nguyên số đo 292,6 của bạn ... (Đối với giá trị tôi sẽ không loại trừ bất kỳ giá trị nào ra khỏi trường hợp ví dụ của bạn.)x~M3.5

Một lần nữa, nếu bạn có một mẫu thực sự nhỏ, nếu bạn tin rằng mẫu của bạn rõ ràng không bị hỏng (người cao 9'4 "), tôi sẽ khuyên bạn không nên loại trừ dữ liệu một cách vội vàng. việc sử dụng chúng thực sự có thể hỗ trợ hơn là làm hại phân tích của bạn.


1
Một điểm nhỏ, nhưng rất có thể là một điểm có thể cắn, đặc biệt là nếu tài liệu của bạn bất cẩn đọc hoặc trích dẫn: Tôi khuyên mạnh mẽ chống lại ký hiệu cho trung bình được sử dụng rất phổ biến cho mục đích trung bình. Lạ lùng hay không, không có ký hiệu nào có vẻ thường được sử dụng cho trung vị, nhưng hầu như mọi thứ sẽ tốt hơn , ví dụ: med hoặc . x¯x¯x~
Nick Cox

1
+1 để nhấn mạnh vào giá trị của các bản tóm tắt mạnh mẽ. Xem thêm các chủ đề khác trên trang web này.
Nick Cox

1
@NickCox: Điểm tốt, tôi không biết tôi đã nghĩ gì ngay từ đầu. Thay đổi nó bây giờ. Cám ơn vì sự gợi ý.
usεr11852

0

Kiểm tra Q của Dixon cho các ngoại lệ trong các bộ dữ liệu rất nhỏ có vẻ phù hợp với loại tình huống này:

http://en.wikipedia.org/wiki/Dixon%27s_Q_test

http://www.ool.uoa.gr/applets/AppletQtest/Text_Qtest2.htm


Không! Bởi vì thử nghiệm của Dixon có thể phát hiện tối đa một ngoại lệ duy nhất (xem liên kết tại đây ) và OP không bao giờ đề cập rằng anh ta chỉ có một ngoại lệ duy nhất.
user603

0

Điểm đầu tiên - có thể đáng để quay lại màu rgb. Rất hiếm khi vứt bỏ dữ liệu và cường độ của vectơ rgb không phải là cách duy nhất để biểu thị độ sáng - độ sáng cảm nhận là khác nhau, cũng như giá trị trong HSV.

Nhưng đặt nó sang một bên và xử lý dữ liệu bạn có, bạn đã xem việc hình thành vấn đề này như là một vấn đề phân loại thay vì mô hình hóa, và thực hiện một số máy học? Bạn có một đầu vào, là một vectơ có 12 giá trị thực trong đó (số đọc độ sáng). Bạn có một đầu ra, là một vectơ gồm 12 giá trị nhị phân (1 = trước đó, 0 = ngoại lệ). Nhận một vài bộ đọc độ sáng và tự dán nhãn cho chúng, cho biết đọc độ sáng trong mỗi bộ là sớm hơn / ngoại lệ. Một cái gì đó như thế này:

x1 = {212.0, 209.6, 211.5, , 213.0}, y1 = {1,0,1, , 1}

x2 = {208.1, 207.9, 211.2, , 208.2}, y2 = {1,1,0, , 1}

x3 = {223.4, 222.9, 222.8, , 223.0}, y3 = {1,1,1, , 1}

Sau đó, chạy toàn bộ lô thông qua một bộ phân loại nào đó:

  • Bạn có thể sử dụng một trình phân loại duy nhất tạo ra 12 giá trị nhị phân khác nhau - một mạng thần kinh sẽ cho phép bạn thiết lập điều này khá dễ dàng.
  • Hoặc, bạn có thể sử dụng trình phân loại nhị phân tiêu chuẩn (ví dụ: SVMlite ) và huấn luyện 12 mô hình khác nhau, một phân loại xem mỗi phần tử của đầu ra có phải là sớm hơn / ngoại lệ hay không.

Và bạn đã hoàn thành! Không cần phải loay hoay cố gắng tìm ra 'quy tắc' ngăn cách các phần tử ngoại lệ với chính bạn. Chỉ cần lấy một vài bộ dữ liệu có vẻ hợp lý và để máy làm điều đó cho bạn :)

~~~

EDIT: Ngẫu nhiên, phương pháp được đề xuất của bạn, trong đó bạn lặp lại phù hợp với một gaussian sau đó phân loại từng mẫu hơn 2 độ lệch chuẩn như một ngoại lệ, trông rất giống thuật toán tối đa hóa kỳ vọng. Một cái gì đó như thế này:

  • Một thành phần gaussian duy nhất (mô hình hóa các giá trị)
  • Một thành phần nền thống nhất (các ngoại lệ)
  • Một số xác suất trước đó của từng phụ thuộc một cách không rõ ràng vào độ rộng của gaussian (quy tắc 'phân loại theo 2 độ lệch chuẩn').
  • Phân loại cứng ở bước mong đợi.

Nếu bạn đi theo tuyến đường đó, có thể đáng để tìm hiểu các thuật toán EM và kiểm tra giả định nào bạn đang xây dựng trong mô hình của mình.

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.