2016-06-26 3 views
0

Среднее расстояние каждой переменной можно рассчитать, используя приведенную ниже формулу. Здесь d представляет среднее расстояние интересующей переменной с ее родительскими переменными. p и q означают условные вероятности этой переменной для разных состояний ее родителей, i обозначает разные состояния дочернего узла, а n обозначает количество состояний множества родительских узлов.Среднее расстояние каждой переменной

average distance between variables

Ниже приведен пример с двумя государственными родителями. Example matrix То, что я пытаюсь вычислить это:

Average {[(0.8286-0.6308)^2],[(0.1364-0.2347)^2],...,[(0.0017-0.0049)^2]} 
    =0.0107 

Когда у меня есть более чем 3 состояния мне нужно найти:

Average {[(a-b)^2+(a-c)^2+(b-c)^2)],.... 

Я пробовал:

 x1<-c(0.8286,0.1364,0.0300,0.0033,0.0017) 

     x2<-c(0.6308,0.2347,0.0807,0.0489,0.0049) 

     dist(rbind(x1,x2)) 

Но это просто дайте мне евклидову расстояние.

ответ

1

Извините, у меня возникло недоразумение. Теперь это то, что вы действительно можете сделать:

d <- function(mat) { 
    ind <- as.numeric(combn(nrow(mat), 2)) 
    n <- length(ind)/2 
    mean(apply(mat, 2, function(x) {y <- x[ind]; sum((y[seq(from = 1, length = n, by = 2)] - y[seq(from = 2, length = n, by = 2)])^2)}))/n 
    } 

Пример Предположим, у вас есть вероятность таблицы:

set.seed(0); mat <- matrix(runif(20), 4, 5) 

#   [,1]  [,2]  [,3]  [,4]  [,5] 
# [1,] 0.8966972 0.9082078 0.66079779 0.1765568 0.4976992 
# [2,] 0.2655087 0.2016819 0.62911404 0.6870228 0.7176185 
# [3,] 0.3721239 0.8983897 0.06178627 0.3841037 0.9919061 
# [4,] 0.5728534 0.9446753 0.20597457 0.7698414 0.3800352 

d(mat) # 0.1775407 

Для примера данных 2 состояния:

x1<-c(0.8286,0.1364,0.0300,0.0033,0.0017) 
x2<-c(0.6308,0.2347,0.0807,0.0489,0.0049) 
d(rbind(x1,x2)) # 0.01068956 
+0

Благодарим за ответ. –

+0

Ты отлично поработал. :) –

0

Если я неправильно вопрос ответ просто

mean((x1-x2)^2) 

Доказательство:

> (x1-x2)^2 
[1] 0.03912484 0.00966289 0.00257049 0.00207936 0.00001024 

> 0.8286-0.6308 
[1] 0.1978 
> 0.1978^2 
[1] 0.03912484