예를 들어, 각 위치가 알파벳의 소문자 일 가능성이 동일한 순서 집합을 가정합니다. 이 경우 정렬 된 세트에 요소가 포함되도록합니다 .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)
빨간색 점은 정렬 된 세트의 각 위치가 문자에 대해 균일 한 분포를 따르고 막대 그래프의 막대가 정렬 된 거리와 관련된 거리의 경험적 확률 질량 함수를 나타내는 경우 예상되는 거리의 실제 확률 질량 함수를 나타냅니다. 세트.
위의 이미지가 기하 분포가 적절하다는 것을 확신시켜주기를 바랍니다.
P = 1 / 260∞
어떻게 d.flat
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)
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))
이제 우리는 위의 관측 된 Bhattacharyya 거리를 관찰 할 확률을 계산할 수 있습니다. 또는 순서가 지정된 집합이 각 위치가 문자에 대한 균일 한 분포를 따르는 방식으로 생성 된 경우 더 극단입니다.
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