Стандартная мера комковатости?


13

У меня много данных, и я хочу сделать что-то, что кажется очень простым. В этом большом наборе данных меня интересует, сколько конкретного элемента собирается вместе. Допустим, мои данные - это упорядоченный набор, подобный этому: {A, C, B, D, A, Z, T, C ...}. Допустим, я хочу знать, находятся ли буквы А рядом друг с другом, в отличие от случайного (или более равномерного) распределения по всему набору. Это свойство, которое я называю «комковатость».

Есть ли какое-то простое измерение данных «комковатости»? То есть некоторая статистика, которая скажет мне, насколько далеко от случайно распределенных А есть? И если не существует простого способа сделать это, каким будет трудный путь, грубо говоря? Любые указатели очень ценятся!

Ответы:


14

В качестве примера, предположим, что у вас есть упорядоченный набор, в котором каждая позиция имеет одинаковую вероятность быть любой из строчных букв в алфавите. В этом случае я сделаю упорядоченный набор, содержащий элементов.1000

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

Оказывается, что если каждая из позиций упорядоченного множества следует равномерное распределение строчных букв алфавита, то расстояние между двумя вхождений одного и того же письма следует геометрическое распределение с параметром . В свете этой информации давайте вычислим расстояние между последовательными вхождениями одной и той же буквы.пзнак равно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)

Давайте посмотрим на гистограмму расстояний между вхождениями одной и той же буквы и сравним ее с функцией массы вероятности, связанной с геометрическим распределением, упомянутым выше.

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)

Красные точки представляют реальную функцию массы вероятности расстояния, которое мы ожидаем, если бы каждая из позиций упорядоченного набора следовала за равномерным распределением по буквам, а столбцы гистограммы представляют эмпирическую функцию массы вероятности расстояния, связанного с упорядоченным устанавливать.

введите описание изображения здесь

Надеемся, что изображение выше убедительно, что геометрическое распределение является подходящим.

пзнак равно1/260

Как d.flatсверху сравнить с ожидаемым геометрическим распределением по расстоянию Бхаттачарья?

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)

0,0260

РЕДАКТИРОВАТЬ:

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))

Теперь мы можем вычислить вероятность наблюдения расстояния Бхаттачарьи, наблюдаемого выше, или еще одного экстремума, если упорядоченное множество было сгенерировано таким образом, что каждая из его позиций следует равномерному распределению по буквам.

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

введите описание изображения здесь


Похоже, вы предполагаете в самом начале, что распределение букв является многочленным с равной вероятностью для каждой буквы. Что, если распределение имеет неравные вероятности для писем? - Будет ли ожидаемое распределение расстояний между вхождениями для каждой буквы по-прежнему геометрическим? И с каким параметром?
ttnphns

При неравных вероятностях для каждой буквы расстояние между вхождениями каждой буквы все еще остается геометрическим. Однако параметр изменяется в зависимости от буквы, и для каждой буквы он равен вероятности позиции в упорядоченном наборе, содержащем эту букву.
принято нормальным

1
Мне нравится ваш подход. Разве не было бы более реалистичным предположить, что номер каждой буквы фиксирован и порядок упорядочен равномерно среди всех возможных порядков? К сожалению, я не знаю, каково распределение в этом случае. Любая идея?
gui11aume

@ gui11aume Это интересная мысль. Вы имеете в виду некий подход к тестированию перестановок, в котором мы много раз переставляем наблюдаемый упорядоченный набор и видим, насколько исходный упорядоченный набор похож на перестановки с использованием некоторой статистики?
принято нормальным

Да, это то, что я имею в виду. Затем вы можете использовать расстояние Бхаттачарья или расхождение Кульбака-Лейблера, чтобы измерить отклонение от полного смешивания.
gui11aume

7

Именно то, что вы описываете, было кодифицировано в процедуру, называемую Runs Test. Это не сложно освоить. Вы можете найти его во многих источниках по статистическим тестам, например, в Википедии или в Национальном институте. стандартов и технологий или YouTube .


+1. @Alan, Тесты на прогон также называют тестом Вальда-Вулфовица - для вас, чтобы знать.
ttnphns

Проблема с тестами прогонов заключается в том, что они предназначены только для дихотомических или дихотомических данных.
ttnphns

0

Если вас интересует несколько иная точка зрения на это, вы можете взглянуть на учебник по теории информации - область математики, представляющую интерес для вычислительной техники, обработки изображений / видео / аудио, теории связи и (возможно, что более удивительно) физики и космология (решающая для понимания черных дыр, а также классическая термодинамика) и даже биология.

Неофициально, мы можем сказать, что «комковатая» последовательность букв (в соответствии с вашим примером) будет более плотно сжата, когда подвергается алгоритму сжатия общего назначения - то есть zip-файл, содержащий необработанный текст, будет меньше. Аналогично, «комковатое» изображение (скажем, нескольких бильярдных шаров на простой зеленой байке) будет сжимать намного эффективнее - например, создавать файл JPEG меньшего размера - чем более разнообразное изображение (например, изображение группы людей). ). Конечно, информационный контент (он же отрицательная энтропия или «негэнтропия») таких данных имеет различные формальные определения, не зависящие от конкретных алгоритмов сжатия.

Один из примеров случая, когда теоретико-информационная мера может быть более показательной, чем более классический статистический анализ, приведенный выше, - это если вы заинтересованы в выявлении «комковатости» на нескольких (или на всех) уровнях разрешения. В примере вашей текстовой строки, если было много «А», сгруппированных в начале последовательности, то не так много «А», а затем периодически больше и меньше групп по мере продолжения последовательности, тогда можно сказать, что комковатость существует в разных разрешениях, что вполне естественно можно отразить в теоретических информационных методах.

(Правка) Мне кажется, что вы обеспокоены тем, что это может быть нелепым вопросом, когда на самом деле изучение «комковатости» - под видом информации и (нег) энтропии - жизненно информирует нас как о повседневной работе современной жизни. (Интернет, мобильная связь, сам язык) и природа вселенной (черные дыры, формирование галактик, интерпретация космического фонового излучения, определение того, что является «живым»), следует ответить пословицей, что «нет глупых вопросов , только глупые ответы "[неназванная цитата].

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.