Tiêu chuẩn đo độ vón cục?


13

Tôi có rất nhiều dữ liệu và tôi muốn làm một cái gì đó có vẻ rất đơn giản. Trong tập dữ liệu lớn này, tôi quan tâm đến việc một phần tử cụ thể kết hợp với nhau như thế nào. Giả sử dữ liệu của tôi là một tập hợp được sắp xếp như thế này: {A, C, B, D, A, Z, T, C ...}. Giả sử tôi muốn biết liệu A có xu hướng được tìm thấy ngay cạnh nhau hay không, trái ngược với việc được phân phối ngẫu nhiên (hoặc đồng đều hơn) trong toàn bộ tập hợp. Đây là tài sản tôi đang gọi là "cục bộ".

Bây giờ, có một số phép đo đơn giản của dữ liệu "cục bộ"? Đó là, một số thống kê sẽ cho tôi biết As được phân phối ngẫu nhiên bao xa? Và nếu không có cách đơn giản để làm điều này, thì cách khó nhất là gì? Bất kỳ con trỏ đánh giá rất cao!

Câu trả lời:


14

Ví dụ: giả sử bạn có một bộ được đặt hàng trong đó mỗi vị trí có xác suất bằng nhau là bất kỳ chữ cái viết thường nào trong bảng chữ cái. Trong trường hợp này tôi sẽ làm cho tập hợp có thứ tự chứa phần tử.1000

# generate a possible sequence of letters
s <- sample(x = letters, size = 1000, replace = TRUE)

Nó chỉ ra rằng nếu mỗi vị trí của tập hợp được sắp xếp theo phân phối đồng đều trên các chữ cái viết thường của bảng chữ cái, thì khoảng cách giữa hai lần xuất hiện của cùng một chữ cái theo phân phối hình học với tham số . Trước thông tin này, hãy tính khoảng cách giữa các lần xuất hiện liên tiếp của cùng một chữ cái.p= =1/26

# find the distance between occurences of the same letters
d <- vector(mode = 'list', length = length(unique(letters)))
for(i in 1:length(unique(letters))) {
    d[[i]] <- diff(which(s == letters[i]))
}
d.flat <- unlist(x = d)

Chúng ta hãy xem biểu đồ khoảng cách giữa các lần xuất hiện của cùng một chữ cái và so sánh nó với hàm khối lượng xác suất liên quan đến phân phối hình học được đề cập ở trên.

hist(x = d.flat, prob = TRUE, main = 'Histogram of Distances', xlab = 'Distance',
     ylab = 'Probability')
x <- range(d.flat)
x <- x[1]:x[2]
y <- dgeom(x = x - 1, prob = 1/26)
points(x = x, y = y, pch = '.', col = 'red', cex = 2)

Các chấm màu đỏ biểu thị hàm khối lượng xác suất thực tế của khoảng cách mà chúng ta mong đợi nếu mỗi vị trí của tập hợp được sắp xếp theo phân phối đồng đều trên các chữ cái và các thanh của biểu đồ biểu thị hàm khối lượng xác suất theo kinh nghiệm của khoảng cách được liên kết với lệnh bộ.

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

Hy vọng rằng hình ảnh trên là thuyết phục rằng phân phối hình học là phù hợp.

Một lần nữa, nếu mỗi vị trí của tập hợp được sắp xếp tuân theo phân phối đồng đều trên các chữ cái, chúng ta sẽ mong đợi khoảng cách giữa các lần xuất hiện của cùng một chữ cái theo phân phối hình học với tham số . Vì vậy, làm thế nào tương tự như phân phối dự kiến ​​của khoảng cách và phân phối theo kinh nghiệm của sự khác biệt? Các Bhattacharyya Khỏang cách giữa hai phân bố rời rạc là khi phân phối là giống hệt nhau và có xu hướng như các bản phân phối ngày càng trở nên khác nhau.p= =1/260

Làm thế nào để d.flattừ trên so sánh với phân phối hình học dự kiến ​​về khoảng cách Bhattacharyya?

b.dist <- 0
for(i in x) {
    b.dist <- b.dist + sqrt((sum(d.flat == i) / length(d.flat)) * dgeom(x = i - 1,
              prob = 1/26))
}
b.dist <- -1 * log(x = b.dist)

Khoảng cách Bhattacharyya giữa phân phối hình học dự kiến ​​và phân phối biểu tượng của khoảng cách là khoảng , khá gần với .0,0260

BIÊN TẬP:

Thay vì chỉ đơn giản nói rằng Khoảng cách Bhattacharyya được quan sát ở trên ( ) khá gần với , tôi nghĩ đây là một ví dụ điển hình khi mô phỏng có ích. Câu hỏi bây giờ là như sau: Khoảng cách Bhattacharyya được quan sát ở trên so với Khoảng cách Bhattacharyya điển hình được quan sát như thế nào nếu mỗi vị trí của tập hợp được sắp xếp đồng nhất trên các chữ cái? Chúng ta hãy tạo ra bộ được đặt hàng như vậy và tính toán từng Khoảng cách Bhattacharyya của chúng từ phân phối hình học dự kiến.0,026010,000

gen.bhat <- function(set, size) {
    new.seq <- sample(x = set, size = size, replace = TRUE)
    d <- vector(mode = 'list', length = length(unique(set)))
    for(i in 1:length(unique(set))) {
        d[[i]] <- diff(which(new.seq == set[i]))
    }
    d.flat <- unlist(x = d)
    x <- range(d.flat)
    x <- x[1]:x[2]
    b.dist <- 0
    for(i in x) {
        b.dist <- b.dist + sqrt((sum(d.flat == i) / length(d.flat)) * dgeom(x = i -1,
                  prob = 1/length(unique(set))))
    }
    b.dist <- -1 * log(x = b.dist)
    return(b.dist)
}
dist.bhat <- replicate(n = 10000, expr = gen.bhat(set = letters, size = 1000))

Bây giờ chúng ta có thể tính xác suất quan sát Khoảng cách Bhattacharyya được quan sát ở trên, hoặc một cực trị nữa, nếu tập hợp được sắp xếp được tạo theo cách sao cho mỗi vị trí của nó tuân theo phân phối đồng đều trên các chữ cái.

p <- ifelse(b.dist <= mean(dist.bhat), sum(dist.bhat <= b.dist) / length(dist.bhat),
            sum(dist.bhat > b.dist) / length(dist.bhat))

0,38

0999

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


Có vẻ như bạn cho rằng ngay từ đầu rằng việc phân phối các chữ cái là đa dạng với xác suất bằng nhau cho mỗi chữ cái. Điều gì xảy ra nếu phân phối có xác suất không đồng đều cho các chữ cái? - Phân phối dự kiến ​​khoảng cách giữa các lần xuất hiện cho mỗi chữ cái sẽ vẫn là hình học? Và với thông số gì?
ttnphns

Với xác suất không đồng đều cho mỗi chữ cái, khoảng cách giữa các lần xuất hiện của mỗi chữ cái vẫn là hình học. Tuy nhiên, tham số thay đổi theo chữ cái và đối với mỗi chữ cái, nó bằng với xác suất của một vị trí trong tập hợp có thứ tự chứa chữ cái đó.
giả định

1
Tôi thích cách tiếp cận của bạn. Sẽ không thực tế hơn khi cho rằng số lượng của mỗi chữ cái là cố định và một đơn đặt hàng được rút ra thống nhất trong số tất cả các thứ tự có thể? Thật không may, tôi không biết phân phối trong trường hợp đó là gì. Bất kỳ ý tưởng?
gui11aume

@ gui11aume Đó là một suy nghĩ thú vị. Bạn có đang đề cập đến một loại phương pháp kiểm tra hoán vị trong đó chúng ta hoán vị tập hợp được quan sát nhiều lần và xem tập lệnh ban đầu tương tự như thế nào với hoán vị sử dụng một số thống kê?
giả định

Vâng, đó là những gì tôi có trong tâm trí. Sau đó, bạn có thể sử dụng khoảng cách Bhattacharyya hoặc phân kỳ Kullback-Leibler để đo lường sự khởi hành từ pha trộn đầy đủ.
gui11aume

7

Chính xác những gì bạn mô tả đã được mã hóa thành một quy trình gọi là Thử nghiệm chạy. Nó không phức tạp để làm chủ. Bạn có thể tìm thấy nó trong nhiều nguồn trong các bài kiểm tra thống kê, ví dụ, wikipedia hoặc Viện Nat'l. về Tiêu chuẩn và Công nghệ hoặc YouTube .


+1. @Alan, Runs test còn được gọi là thử nghiệm WaldTHER Wolfowitz - cho bạn biết.
ttnphns

Vấn đề với chạy thử mặc dù là nó chỉ dành cho dữ liệu nhị phân hoặc phân đôi.
ttnphns

0

Nếu bạn quan tâm đến một quan điểm hơi khác về vấn đề này, bạn có thể muốn xem xét một nguyên tắc về lý thuyết thông tin - một lĩnh vực toán học quan tâm đến điện toán, xử lý hình ảnh / video / âm thanh, lý thuyết truyền thông và vật lý (có lẽ đáng ngạc nhiên hơn) và vũ trụ học (rất quan trọng đối với sự hiểu biết về các lỗ đen, cũng như nhiệt động học cổ điển) và thậm chí cả sinh học.

Một cách không chính thức, chúng ta có thể nói rằng một chuỗi các chữ cái "cục bộ" (theo ví dụ của bạn) sẽ được nén dày đặc hơn khi tuân theo thuật toán nén mục đích chung - tức là một tệp zip chứa văn bản thô sẽ nhỏ hơn. Tương tự như vậy, một hình ảnh "vón cục" (giả sử, một vài quả bóng bi-a trên một vệt xanh đơn giản) sẽ nén hiệu quả hơn rất nhiều - ví dụ: tạo một tệp jpeg nhỏ hơn - so với hình ảnh đa dạng hơn (chẳng hạn như hình ảnh của một nhóm người ). Tất nhiên, nội dung thông tin (còn gọi là entropy âm hoặc "negentropy") của dữ liệu đó có các định nghĩa chính thức khác nhau độc lập với các thuật toán nén cụ thể.

Một ví dụ về trường hợp trong đó một biện pháp lý thuyết thông tin có thể tiết lộ hơn so với các phân tích thống kê cổ điển ở trên là nếu bạn quan tâm đến việc xác định "độ vón cục" ở nhiều mức độ phân giải (hoặc tất cả). Trong ví dụ về chuỗi văn bản của bạn, nếu có nhiều chữ "A" được ghép lại với nhau ở đầu chuỗi, thì sẽ không có nhiều cụm "A", sau đó định kỳ nhiều cụm và ít bị bó lại khi chuỗi tiếp tục, sau đó sự lộn xộn có thể được cho là tồn tại ở nhiều độ phân giải - một thứ có thể được nắm bắt rất tự nhiên bằng các biện pháp lý thuyết thông tin.

(Chỉnh sửa) Tôi nhận thấy rằng bạn lo lắng rằng đây có thể là một câu hỏi lố bịch, trong khi thực tế nghiên cứu về "sự vón cục" - trong vỏ bọc thông tin và (phủ định) entropy - thông báo cho chúng ta về cả hoạt động hàng ngày của cuộc sống hiện đại (internet, thông tin di động, ngôn ngữ) và bản chất của vũ trụ (lỗ đen, sự hình thành thiên hà, giải thích Bức xạ nền vũ trụ, xác định cái gì là "còn sống") nên được trả lời bằng câu ngạn ngữ rằng "không có câu hỏi ngu ngốc nào , chỉ có những câu trả lời ngu ngốc "[trích dẫn không phân bổ].

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.