Załóżmy na przykład, że masz uporządkowany zestaw, w którym każda pozycja ma jednakowe prawdopodobieństwo, że będzie jedną z małych liter alfabetu. W tym przypadku sprawię, że zamówiony zestaw będzie zawierał elementów.1000
# generate a possible sequence of letters
s <- sample(x = letters, size = 1000, replace = TRUE)
Okazuje się, że jeśli każda z pozycji uporządkowanego zbioru ma równomierny rozkład na małe litery alfabetu, to odległość między dwoma wystąpieniami tej samej litery ma rozkład geometryczny z parametrem . W świetle tych informacji obliczmy odległość między kolejnymi wystąpieniami tej samej litery.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)
Spójrzmy na histogram odległości między wystąpieniami tej samej litery i porównajmy go z funkcją masy prawdopodobieństwa związaną z wyżej wspomnianym rozkładem geometrycznym.
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)
Czerwone kropki reprezentują rzeczywistą funkcję masy prawdopodobieństwa odległości, której moglibyśmy oczekiwać, gdyby każda z pozycji uporządkowanego zbioru miała równomierny rozkład na litery, a słupki histogramu reprezentują empiryczną funkcję masy prawdopodobieństwa odległości związanej z uporządkowanym zestaw.
Mam nadzieję, że powyższy obraz przekonuje, że rozkład geometryczny jest odpowiedni.
Ponownie, jeśli każda pozycja uporządkowanego zestawu ma jednolity rozkład na litery, spodziewalibyśmy się, że odległość między wystąpieniami tej samej litery będzie podążać za rozkładem geometrycznym z parametrem . Jak więc podobny jest oczekiwany rozkład odległości i empiryczny rozkład różnic? Odległość bhattacharyya dwóch odrębnych rozkładów jest gdy dystrybucje są dokładnie takie same, a raczej jako dystrybucje stają się coraz bardziej różne.0 ∞p = 1 / 260∞
Jak d.flat
z góry porównuje się z oczekiwanym rozkładem geometrycznym pod względem odległości 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)
Odległość bhattacharyya między oczekiwaną rozkładu geometrycznego i emprirical dystrybucji odległości wynosi około , który jest dość blisko do .00,0260
EDYTOWAĆ:
Zamiast po prostu stwierdzić, że obserwowana powyżej odległość Bhattacharyya ( ) jest dość bliska , myślę, że jest to dobry przykład, kiedy przydaje się symulacja. Pytanie brzmi teraz: W jaki sposób zaobserwowana powyżej odległość Bhattacharyya porównuje się do typowych odległości Bhattacharyya zaobserwowanych, jeśli każda pozycja uporządkowanego zestawu jest jednolita na literach? Wygenerujmy takich uporządkowanych zestawów i obliczmy ich odległości Bhattacharyya na podstawie oczekiwanego rozkładu geometrycznego.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))
Teraz możemy obliczyć prawdopodobieństwo zaobserwowania obserwowanej powyżej odległości Bhattacharyya, lub jeszcze jednej skrajności, jeśli uporządkowany zbiór został wygenerowany w taki sposób, że każda jego pozycja ma jednolity rozkład na litery.
p <- ifelse(b.dist <= mean(dist.bhat), sum(dist.bhat <= b.dist) / length(dist.bhat),
sum(dist.bhat > b.dist) / length(dist.bhat))
W tym przypadku prawdopodobieństwo wynosi około .0,38
Dla kompletności poniższy obraz jest histogramem symulowanych Odległości Bhattacharyya. Myślę, że ważne jest, aby zdać sobie sprawę, że nigdy nie zaobserwujesz odległości Bhattacharyya równej ponieważ zamówiony zestaw ma skończoną długość. Powyżej maksymalna odległość między dowolnymi dwoma wystąpieniami litery wynosi maksymalnie .9990999