Стандартний показник хрусткості?


13

У мене дуже багато даних, і я хочу зробити щось, що здається дуже простим. У цьому великому наборі даних мене цікавить, скільки конкретний елемент злипається. Скажімо, мої дані - це впорядкований набір таким чином: {A, C, B, D, A, Z, T, C ...}. Скажімо, я хочу знати, чи прагнуть A знаходитись поряд один з одним, на відміну від розподілу випадковим чином (або більш рівномірним) у всьому наборі. Це властивість, яку я називаю "незграбністю".

Тепер, чи є якесь просте вимірювання даних «незграбність»? Тобто, якась статистика, яка підкаже мені, наскільки далеко не випадково розподілені Аси? І якщо немає простого способу зробити це, яким би був важкий шлях, приблизно? Будь-які вказівники високо оцінені!

Відповіді:


14

Наприклад, припустимо, що у вас є впорядкований набір, у якому кожна позиція має рівну ймовірність бути будь-якою з малих літер алфавіту. У цьому випадку я змушу замовлений набір містити елементів.1000

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

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

Давайте розглянемо гістограму відстаней між подіями однієї і тієї ж літери та порівняємо її з функцією маси ймовірностей, пов’язаною з геометричним розподілом, згаданим вище.

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)

Червоні точки представляють фактичну функцію масової ймовірності відстані, яку ми очікували, якби кожне з позицій упорядкованого набору слідувало рівномірному розподілу по буквах, а смужки гістограми представляють емпіричну функцію масової ймовірності відстані, пов'язаної з упорядкованою набір.

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

Сподіваємось, що зображення, подане вище, переконує, що геометричний розподіл є відповідним.

Знову ж таки, якщо кожне положення впорядкованого набору слідує за рівномірним розподілом літер, ми очікуємо, що відстань між входженнями однієї і тієї ж літери слід геометричного розподілу з параметром . То наскільки подібними є очікуваний розподіл відстаней та емпіричний розподіл різниць? Бхаттачарья Відстань між двома дискретними розподілами є , коли розподіл точно так же , і прагне до як розподілу стають все більш різними.0 p=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)

Відстань Бхаттачарія між очікуваним геометричним розподілом та емпіричним розподілом відстаней становить приблизно , що досить близько до .00.0260

Редагувати:

Замість того, щоб просто констатувати, що спостерігається вище відстань Бхаттачарія ( ) досить близька до , я думаю, що це хороший приклад, коли моделювання стане в нагоді. Питання зараз таке: як спостерігається вище відстань Бхаттачарія порівняно з типовими відстанями Бхаттачарія, якщо кожне положення впорядкованого набору є рівномірним щодо букв? Давайте генеруємо таких упорядкованих наборів та обчислимо кожну їх відстань Бхаттачарія від очікуваного геометричного розподілу.0 10 , 0000.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

Для повноти наступне зображення є гістограмою змодельованих дистанцій Бхаттачарія. Я думаю, що важливо усвідомити, що ви ніколи не будете дотримуватися відстані Bhattacharyya оскільки замовлений набір має кінцеву довжину. Вище максимальна відстань між будь-якими двома входженнями листа становить не більше .9990999

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


Схоже, ви на самому початку припускаєте, що розподіл літер є багаточленом з однаковою ймовірністю для кожної літери. Що робити, якщо розподіл має неоднакові ймовірності для букв? - Чи буде геометричним очікуваний розподіл відстаней між випадковістю для кожної літери? І з яким параметром?
ttnphns

З неоднаковими ймовірностями для кожної літери відстань між появами кожної літери все ще є геометричною. Однак параметр змінюється залежно від літери, і для кожної літери він дорівнює ймовірності позиції в упорядкованому наборі, що містить цю букву.
припускаєтьсянормальне

1
Мені подобається ваш підхід. Чи не було б більш реалістичним вважати, що кількість кожної літери є фіксованою і що замовлення оформляється рівномірно серед усіх можливих замовлень? На жаль, я не знаю, що таке розподіл у такому випадку. Будь-яка ідея?
gui11aume

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

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

7

Саме те, що ви описуєте, було кодифіковане в процедуру, яку називають тестом Runs. Освоїти це не складно. Ви можете знайти його в багатьох джерелах на статистичних тестах, наприклад, у вікіпедії або Настільному інституті. стандартів і технологій або YouTube .


+1. @Alan, тест Рунсу також називають тестом Вальда – Вулфовіца - для вас відомо.
ttnphns

Проблема тесту запуску полягає в тому, що це стосується лише дихотомічних або дихотомізованих даних.
ttnphns

0

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

Неофіційно можна сказати, що послідовність букв «незграбність» (згідно з вашим прикладом) буде більш щільно стискатися, якщо піддаватись алгоритму стиснення загального призначення - тобто zip-файл, що містить необроблений текст, буде меншим. Так само "незграбне" зображення (скажімо, декількох більярдних кульок на звичайній зеленій байці) буде стискати набагато ефективніше - наприклад, створити менший файл jpeg - ніж більш різноманітне зображення (наприклад, зображення групи людей ). Звичайно, інформаційний вміст (він же негативна ентропія або "негентропія") таких даних має різні формальні визначення, незалежні від конкретних алгоритмів стиснення.

Одним із прикладів випадку, коли інформаційно-теоретичний захід може бути більш показовим, ніж класичні статистичні аналізи, наведені вище, якщо ви зацікавлені у виявленні "незграбності" на кількох (або всіх) рівнях дозволу. У прикладі вашого текстового рядка, якщо на початку послідовності було багато "A", то не дуже багато груп "A", а потім періодично більше купірування і меншої купірування в міру продовження послідовності, то можна сказати, незграбність існує в декількох резолюціях - те, що може бути дуже природно зафіксовано інформаційно-теоретичними заходами.

(Редагувати) Мені здається, що ваше занепокоєння тим, що це може бути смішним питанням, коли насправді дослідження "незграбності" - під виглядом інформації та (негативної) ентропії - життєво інформує нас про повсякденне функціонування сучасного життя (Інтернет, мобільний зв’язок, сама мова) та природа Всесвіту (чорні діри, утворення галактик, інтерпретація Космічного фонового випромінювання, визначення того, що "живе") слід відповісти приказкою, що "дурних питань немає , лише дурні відповіді "[нерозподілена цитата].

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.