Ukuran standar dari clumpiness?

13

Saya punya banyak data dan saya ingin melakukan sesuatu yang tampaknya sangat sederhana. Dalam kumpulan data yang besar ini, saya tertarik pada seberapa banyak elemen tertentu berkumpul bersama. Katakanlah data saya adalah kumpulan yang diatur seperti ini: {A, C, B, D, A, Z, T, C ...}. Katakanlah saya ingin tahu apakah A cenderung ditemukan tepat di sebelah satu sama lain, dan bukannya secara acak (atau lebih merata) didistribusikan di seluruh set. Ini adalah properti yang saya sebut "clumpiness".

Sekarang, adakah pengukuran sederhana data "clumpiness"? Yaitu, beberapa statistik yang akan memberi tahu saya seberapa jauh dari As didistribusikan secara acak? Dan jika tidak ada cara sederhana untuk melakukan ini, kira-kira seperti apa susahnya, kira-kira? Setiap petunjuk sangat dihargai!

Alan H.
sumber

Jawaban:

14

Sebagai contoh, misalkan Anda memiliki set yang dipesan di mana setiap posisi memiliki probabilitas yang sama untuk menjadi salah satu huruf kecil dalam alfabet. Dalam hal ini saya akan membuat set yang diurutkan berisi elemen.1000

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

Ternyata jika masing-masing posisi dari himpunan yang diperintahkan mengikuti distribusi seragam di atas huruf kecil alfabet, maka jarak antara dua kemunculan huruf yang sama mengikuti distribusi geometris dengan parameter . Mengingat informasi ini, mari kita hitung jarak antara kemunculan berurutan dari huruf yang sama.hal=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)

Mari kita lihat histogram jarak antara kemunculan huruf yang sama dan bandingkan dengan fungsi massa probabilitas yang terkait dengan distribusi geometris yang disebutkan di atas.

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)

Titik-titik merah mewakili fungsi massa probabilitas aktual dari jarak yang kita harapkan jika masing-masing posisi himpunan yang diperintahkan mengikuti distribusi seragam pada huruf-huruf dan palang histogram mewakili fungsi massa probabilitas empiris dari jarak yang terkait dengan yang dipesan. set.

masukkan deskripsi gambar di sini

Semoga gambar di atas meyakinkan bahwa distribusi geometrik sesuai.

Sekali lagi, jika setiap posisi set memerintahkan mengikuti distribusi seragam atas surat-surat, kita akan mengharapkan jarak antara kejadian dari surat yang sama untuk mengikuti distribusi geometrik dengan parameter . Jadi seberapa miripkah distribusi jarak yang diharapkan dan distribusi perbedaan empiris? The Bhattacharyya Jarak antara dua distribusi diskrit adalah 0hal=1/260 sebagai distribusi menjadi semakin berbeda.

Bagaimana d.flatdari atas dibandingkan dengan distribusi geometris yang diharapkan dalam hal Bhattacharyya Distance?

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

EDIT:

0,026010,000 set yang dipesan tersebut dan menghitung masing-masing Jarak Bhattacharyya mereka dari distribusi geometris yang diharapkan.

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

Sekarang kita dapat menghitung probabilitas mengamati Jarak Bhattacharyya yang diamati di atas, atau satu yang lebih ekstrem, jika himpunan yang diperintahkan dibuat sedemikian rupa sehingga masing-masing posisinya mengikuti distribusi yang seragam atas huruf-huruf tersebut.

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

masukkan deskripsi gambar di sini

dianggap normal
sumber
Sepertinya Anda mengasumsikan pada awalnya bahwa distribusi huruf bersifat multinomial dengan probabilitas yang sama untuk setiap huruf. Bagaimana jika distribusinya memiliki probabilitas yang tidak sama untuk surat? - Apakah distribusi jarak yang diharapkan antar kejadian untuk setiap huruf tetap geometris? Dan dengan parameter apa?
ttnphns
Dengan probabilitas yang tidak sama untuk setiap huruf, jarak antara kemunculan setiap huruf masih geometris. Namun, parameternya bervariasi berdasarkan hurufnya, dan untuk setiap huruf itu sama dengan probabilitas suatu posisi dalam set yang diurutkan yang mengandung huruf itu.
Diasumsikan normal
1
Saya suka pendekatan Anda. Bukankah lebih realistis untuk mengasumsikan bahwa jumlah setiap huruf adalah tetap dan bahwa pemesanan ditarik secara seragam di antara semua kemungkinan pemesanan? Sayangnya saya tidak tahu apa distribusinya. Ada ide?
gui11aume
@ gui11aume Itu pemikiran yang menarik. Apakah Anda mengacu pada semacam pendekatan pengujian permutasi di mana kami meng-permute set yang diobservasi berkali-kali dan melihat seberapa mirip set yang diperintahkan asli dengan permutasi menggunakan beberapa statistik?
Diasumsikan normal
Ya, itulah yang ada dalam pikiran saya. Anda kemudian dapat menggunakan jarak Bhattacharyya atau divergensi Kullback-Leibler untuk mengukur keberangkatan dari pencampuran penuh.
gui11aume
7

Apa yang Anda gambarkan telah dikodifikasikan ke dalam prosedur yang disebut Runs Test. Tidak rumit untuk dikuasai. Anda dapat menemukannya di banyak sumber pada tes statistik, misalnya, wikipedia atau Nat'l Instit. Standar dan Teknologi atau YouTube .

rolando2
sumber
+1. @ Alan, tes Runs juga disebut uji Wald – Wolfowitz - untuk Anda ketahui.
ttnphns
Masalah dengan tes berjalan adalah bahwa itu hanya untuk data dikotomi atau dikotomi.
ttnphns
0

Jika Anda tertarik pada perspektif yang sedikit berbeda tentang ini, Anda mungkin ingin melihat primer tentang teori informasi - bidang matematika yang menarik dalam komputasi, pemrosesan gambar / video / audio, teori komunikasi dan (mungkin lebih mengejutkan) fisika dan kosmologi (penting untuk memahami lubang hitam, serta termodinamika klasik) dan bahkan biologi.

Secara informal, kita dapat mengatakan bahwa urutan huruf "lebih padat" (seperti contoh Anda) akan lebih padat ketika mengalami algoritma kompresi tujuan umum - yaitu file zip yang berisi teks mentah akan lebih kecil. Demikian pula, gambar "rumpun" (katakanlah, dari beberapa bola biliar pada baize hijau polos) akan mengompres jauh lebih efisien - misalnya membuat file jpeg yang lebih kecil - daripada gambar yang lebih bervariasi (seperti gambar sekelompok orang) ). Tentu saja konten informasi (alias entropi negatif atau "negentropi") dari data tersebut memiliki berbagai definisi formal yang tidak tergantung pada algoritma kompresi tertentu.

Salah satu contoh kasus di mana ukuran informasi-teoretis mungkin lebih terbuka daripada analisis statistik klasik di atas adalah jika Anda tertarik untuk mengidentifikasi "clumpiness" pada beberapa (atau semua) level resolusi. Dalam contoh string teks Anda, jika ada banyak "A" yang dikelompokkan bersama di awal urutan, maka tidak banyak pengelompokan "A", dan kemudian secara berkala lebih banyak dan semakin sedikit pengelompokan sebagai urutan terus, kemudian kemegahan dapat dikatakan ada pada resolusi berganda - sesuatu yang dapat secara alami ditangkap oleh langkah-langkah teoritis informasi.

(Sunting) Terlintas di benak saya bahwa kekhawatiran Anda bahwa ini mungkin pertanyaan yang konyol, padahal sebenarnya studi tentang "clumpiness" - dalam kedok informasi dan (neg) entropi - sangat memberi tahu kami tentang operasi sehari-hari kehidupan modern (internet, komunikasi seluler, bahasa itu sendiri) dan sifat alam semesta (lubang hitam, pembentukan galaksi, interpretasi dari Radiasi Latar Belakang Kosmik, menentukan apa yang "hidup") harus dijawab dengan pepatah bahwa "tidak ada pertanyaan bodoh , hanya jawaban bodoh "[kutipan tanpa atribut].

Barney Pitt
sumber