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.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)
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.
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 0p = 1 / 260∞ sebagai distribusi menjadi semakin berbeda.
Bagaimana d.flat
dari 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
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 .
sumber
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].
sumber